<?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>145935</bug_id>
          
          <creation_ts>2015-06-12 12:11:59 -0700</creation_ts>
          <short_desc>Fix minor ES6 compliance issue in RegExp.prototype.toString and optimize performance a little</short_desc>
          <delta_ts>2015-06-12 18:42:55 -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>JavaScriptCore</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>ljharb</cc>
    
    <cc>msaboff</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1101668</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 12:11:59 -0700</bug_when>
    <thetext>Fix minor ES6 compliance issue in RegExp.prototype.toString and optimize performance a little</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101669</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 12:12:54 -0700</bug_when>
    <thetext>My first cut at a patch doesn’t have a regression test because I don’t know where to put it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101670</commentid>
    <comment_count>2</comment_count>
      <attachid>254813</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 12:15:08 -0700</bug_when>
    <thetext>Created attachment 254813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101671</commentid>
    <comment_count>3</comment_count>
      <attachid>254813</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 12:15:48 -0700</bug_when>
    <thetext>Comment on attachment 254813
Patch

Don’t really want to get this reviewed until I add a test for the behavior change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101672</commentid>
    <comment_count>4</comment_count>
    <who name="Jordan Harband">ljharb</who>
    <bug_when>2015-06-12 12:16:19 -0700</bug_when>
    <thetext>LGTM, thanks for cleaning up my patch too!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101673</commentid>
    <comment_count>5</comment_count>
      <attachid>254814</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 12:17:48 -0700</bug_when>
    <thetext>Created attachment 254814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101765</commentid>
    <comment_count>6</comment_count>
      <attachid>254844</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 18:12:30 -0700</bug_when>
    <thetext>Created attachment 254844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101766</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 18:13:26 -0700</bug_when>
    <thetext>Now this has a test. Added a few people who might review the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101767</commentid>
    <comment_count>8</comment_count>
      <attachid>254844</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-06-12 18:23:36 -0700</bug_when>
    <thetext>Comment on attachment 254844
Patch

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

&gt; Source/JavaScriptCore/runtime/RegExpPrototype.cpp:140
&gt; +typedef char FlagsString[3 + 1]; // 3 different flags and a null character terminator

I&apos;d use std::array for this.

&gt; Source/JavaScriptCore/runtime/RegExpPrototype.cpp:142
&gt; +static inline void getFlags(ExecState* exec, JSObject* regexp, FlagsString&amp; flags)

I don&apos;t think this needs to use the get pattern - it can just return a FlagsString (if FlagsString were an std::array that is).

&gt; Source/JavaScriptCore/runtime/RegExpPrototype.cpp:159
&gt; +    flags[index] = 0;

I&apos;d assert that index &lt; sizeof(FlagsString) here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101768</commentid>
    <comment_count>9</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-06-12 18:26:24 -0700</bug_when>
    <thetext>(In reply to comment #8)

&gt; &gt; Source/JavaScriptCore/runtime/RegExpPrototype.cpp:142
&gt; &gt; +static inline void getFlags(ExecState* exec, JSObject* regexp, FlagsString&amp; flags)
&gt; 
&gt; I don&apos;t think this needs to use the get pattern - it can just return a
&gt; FlagsString (if FlagsString were an std::array that is).
&gt; 

I just tested, and if a function returns an std::array&lt;char, 4&gt;, the compiler will just put the entire value in a register - no memory access needed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101770</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 18:35:44 -0700</bug_when>
    <thetext>Committed r185528: &lt;http://trac.webkit.org/changeset/185528&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101771</commentid>
    <comment_count>11</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-06-12 18:38:48 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Committed r185528: &lt;http://trac.webkit.org/changeset/185528&gt;

I think you need to initialize std::array (You can use std::fill for example).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101774</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 18:42:55 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Committed r185528: &lt;http://trac.webkit.org/changeset/185528&gt;
&gt; 
&gt; I think you need to initialize std::array (You can use std::fill for
&gt; example).

I don’t think I do.

If there is an exception, the return value is ignored.

If the array is used, we initialize the characters in the string and the null character terminator. We don&apos;t need to initialize the rest of the array.

Might need to initialize it if we use some strict memory debugger tool or validator perhaps.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254813</attachid>
            <date>2015-06-12 12:15:08 -0700</date>
            <delta_ts>2015-06-12 12:17:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145935-20150612121437.patch</filename>
            <type>text/plain</type>
            <size>4788</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NDgwYTIxZjdjM2Y2Njk4MDY5OTAzYmVjYzlmMTY1YzY5OTNhY2ZkLi5kOTJjMjhjMjA3ZTc1MWFh
ZTc4NjJjYjBjZGFkNzk4OWYyZmUxNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNS0wNi0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgRml4IG1pbm9yIEVTNiBjb21wbGlhbmNlIGlzc3VlIGluIFJlZ0V4cC5wcm90b3R5
cGUudG9TdHJpbmcgYW5kIG9wdGltaXplIHBlcmZvcm1hbmNlIGEgbGl0dGxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU5MzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0RmxhZ3MpOiBBdm9pZCBtZW1vcnkgYWxsb2Nh
dGlvbiBmb3IgdGhlIGZsYWdzIHN0cmluZyBieSByZXR1cm5pbmcgaXQgaW4gYSBjaGFyYWN0ZXIK
KyAgICAgICAgYnVmZmVyIGluc3RlYWQgb2YgY29uc3RydWN0aW5nIGEgV1RGOjpTdHJpbmcgZm9y
IGl0LgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNUb1N0cmluZyk6IFJlcXVpcmUgb25s
eSB0aGF0IHRoZSB0aGlzIHZhbHVlIGJlIGFuIG9iamVjdDsgZG9uJ3QgcmVxdWlyZQorICAgICAg
ICB0aGF0IGl0IGlzIGFjdHVhbGx5IGEgcmVndWxhciBleHByZXNzaW9uIG9iamVjdC4gVGhpcyBp
cyBjb3ZlcmVkIGluIHRoZSBFUzYgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgQWxzbyByZW1vdmVk
IGNvbW1lbnQgYWJvdXQgdGhlICIvKD86KS8iIHRyaWNrIHNpbmNlIHRoYXQgaXMgbm93IHRoZSBy
ZXBzb25zaWJpbGl0eSBvZiB0aGUKKyAgICAgICAgZ2V0dGVyIGZvciB0aGUgInNvdXJjZSIgcHJv
cGVydHkuIFVwZGF0ZWQgdG8gdXNlIGdldEZsYWdzIHNvIHdlIGRvIG9uZSBsZXNzIG1lbW9yeSBh
bGxvY2F0aW9uLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlckZsYWdzKTogQ2hhZ25l
ZCB0byB1c2UgZ2V0RmxhZ3MgaW5zdGVhZCBvZiB0aGUgb2xkIGZsYWdzU3RyaW5nLgorCiAyMDE1
LTA2LTEyICBCYXNpbGUgQ2xlbWVudCAgPGJhc2lsZV9jbGVtZW50QGFwcGxlLmNvbT4KIAogICAg
ICAgICBERkcgT2JqZWN0IEFsbG9jYXRpb24gU2lua2luZyBzaG91bGQgbm90IGNvbnNpZGVyIEdl
dENsb3N1cmVWYXIgYXMgZXNjYXBlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggODRhNzE2MzkxZGRiZTExZGE3ZDI1MTRjMTg0
ZGUyZmI2MWE2NWUwNy4uZGE2MWZmOGI1OTg0NmVjZjA4ODZhNWFlZGEyM2IyNTUxZTE1MGI2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUu
Y3BwCkBAIC0xMzcsMzcgKzEzNywzNSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJl
Z0V4cFByb3RvRnVuY0NvbXBpbGUoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgU3RyaW5nIGZsYWdz
U3RyaW5nKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QqIHJlZ2V4cCkKLXsKLSAgICBjaGFyIGZs
YWdzWzRdID0geyAwLCAwLCAwLCAwIH07Ci0gICAgaW50IGluZGV4ID0gMDsKK2NvbnN0IHVuc2ln
bmVkIGZsYWdzTWF4TGVuZ3RoID0gMyArIDE7IC8vIDMgZGlmZmVyZW50IGZsYWdzIGFuZCBhIG51
bGwgY2hhcmFjdGVyIHRlcm1pbmF0b3IKIAorc3RhdGljIGlubGluZSB2b2lkIGdldEZsYWdzKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHJlZ2V4cCwgY2hhciAoJmZsYWdzKVtmbGFnc01heExl
bmd0aF0pCit7CiAgICAgSlNWYWx1ZSBnbG9iYWxWYWx1ZSA9IHJlZ2V4cC0+Z2V0KGV4ZWMsIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5nbG9iYWwpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm47CiAgICAgSlNWYWx1
ZSBpZ25vcmVDYXNlVmFsdWUgPSByZWdleHAtPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkuaWdub3JlQ2FzZSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJldHVybjsKICAgICBKU1ZhbHVlIG11bHRpbGluZVZh
bHVlID0gcmVnZXhwLT5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLm11bHRpbGluZSk7
Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAKKyAgICB1bnNpZ25lZCBpbmRleCA9IDA7CiAgICAgaWYgKGdsb2JhbFZhbHVlLnRvQm9vbGVh
bihleGVjKSkKICAgICAgICAgZmxhZ3NbaW5kZXgrK10gPSAnZyc7CiAgICAgaWYgKGlnbm9yZUNh
c2VWYWx1ZS50b0Jvb2xlYW4oZXhlYykpCiAgICAgICAgIGZsYWdzW2luZGV4KytdID0gJ2knOwog
ICAgIGlmIChtdWx0aWxpbmVWYWx1ZS50b0Jvb2xlYW4oZXhlYykpCi0gICAgICAgIGZsYWdzW2lu
ZGV4XSA9ICdtJzsKLSAgICByZXR1cm4gU3RyaW5nKGZsYWdzKTsKKyAgICAgICAgZmxhZ3NbaW5k
ZXgrK10gPSAnbSc7CisgICAgZmxhZ3NbaW5kZXhdID0gMDsKIH0KIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRo
aXNWYWx1ZS5pbmhlcml0cyhSZWdFeHBPYmplY3Q6OmluZm8oKSkpCisgICAgaWYgKCF0aGlzVmFs
dWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAK
LSAgICBSZWdFeHBPYmplY3QqIHRoaXNPYmplY3QgPSBhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUp
OworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gYXNPYmplY3QodGhpc1ZhbHVlKTsKIAogICAg
IFN0cmluZ1JlY3Vyc2lvbkNoZWNrZXIgY2hlY2tlcihleGVjLCB0aGlzT2JqZWN0KTsKICAgICBp
ZiAoSlNWYWx1ZSBlYXJseVJldHVyblZhbHVlID0gY2hlY2tlci5lYXJseVJldHVyblZhbHVlKCkp
CkBAIC0xODAsMTIgKzE3OCwxMiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4
cFByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAKLSAgICBTdHJpbmcgZmxhZ3MgPSBmbGFnc1N0cmluZyhleGVjLCB0aGlzT2JqZWN0KTsKKyAg
ICBjaGFyIGZsYWdzW2ZsYWdzTWF4TGVuZ3RoXTsKKyAgICBnZXRGbGFncyhleGVjLCB0aGlzT2Jq
ZWN0LCBmbGFncyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgLy8gSWYgc291cmNlIGlz
IGVtcHR5LCB1c2UgIi8oPzopLyIgdG8gYXZvaWQgY29sbGlkaW5nIHdpdGggY29tbWVudCBzeW50
YXgKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhl
YywgIi8iLCBzb3VyY2UsICIvIiwgZmxhZ3MpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgJy8nLCBzb3VyY2UsICcvJywgZmxhZ3MpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlckdsb2Jh
bChFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yMTksMTYgKzIxNywxNiBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyRmxhZ3MoRXhlY1N0YXRlKiBleGVjKQogewog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlz
VmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5
cGVFcnJvcihleGVjKSk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwog
Ci0gICAgU3RyaW5nIGZsYWdzID0gZmxhZ3NTdHJpbmcoZXhlYywgYXNPYmplY3QodGhpc1ZhbHVl
KSk7CisgICAgY2hhciBmbGFnc1tmbGFnc01heExlbmd0aF07CisgICAgZ2V0RmxhZ3MoZXhlYywg
YXNPYmplY3QodGhpc1ZhbHVlKSwgZmxhZ3MpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgZmxhZ3MpKTsKIH0KIAotCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBl
bmRMaW5lVGVybWluYXRvckVzY2FwZShTdHJpbmdCdWlsZGVyJiwgQ2hhcmFjdGVyVHlwZSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254814</attachid>
            <date>2015-06-12 12:17:48 -0700</date>
            <delta_ts>2015-06-12 18:12:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145935-20150612121717.patch</filename>
            <type>text/plain</type>
            <size>4753</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NDgwYTIxZjdjM2Y2Njk4MDY5OTAzYmVjYzlmMTY1YzY5OTNhY2ZkLi5kOTJjMjhjMjA3ZTc1MWFh
ZTc4NjJjYjBjZGFkNzk4OWYyZmUxNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNS0wNi0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgRml4IG1pbm9yIEVTNiBjb21wbGlhbmNlIGlzc3VlIGluIFJlZ0V4cC5wcm90b3R5
cGUudG9TdHJpbmcgYW5kIG9wdGltaXplIHBlcmZvcm1hbmNlIGEgbGl0dGxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU5MzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0RmxhZ3MpOiBBdm9pZCBtZW1vcnkgYWxsb2Nh
dGlvbiBmb3IgdGhlIGZsYWdzIHN0cmluZyBieSByZXR1cm5pbmcgaXQgaW4gYSBjaGFyYWN0ZXIK
KyAgICAgICAgYnVmZmVyIGluc3RlYWQgb2YgY29uc3RydWN0aW5nIGEgV1RGOjpTdHJpbmcgZm9y
IGl0LgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNUb1N0cmluZyk6IFJlcXVpcmUgb25s
eSB0aGF0IHRoZSB0aGlzIHZhbHVlIGJlIGFuIG9iamVjdDsgZG9uJ3QgcmVxdWlyZQorICAgICAg
ICB0aGF0IGl0IGlzIGFjdHVhbGx5IGEgcmVndWxhciBleHByZXNzaW9uIG9iamVjdC4gVGhpcyBp
cyBjb3ZlcmVkIGluIHRoZSBFUzYgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgQWxzbyByZW1vdmVk
IGNvbW1lbnQgYWJvdXQgdGhlICIvKD86KS8iIHRyaWNrIHNpbmNlIHRoYXQgaXMgbm93IHRoZSBy
ZXBzb25zaWJpbGl0eSBvZiB0aGUKKyAgICAgICAgZ2V0dGVyIGZvciB0aGUgInNvdXJjZSIgcHJv
cGVydHkuIFVwZGF0ZWQgdG8gdXNlIGdldEZsYWdzIHNvIHdlIGRvIG9uZSBsZXNzIG1lbW9yeSBh
bGxvY2F0aW9uLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlckZsYWdzKTogQ2hhZ25l
ZCB0byB1c2UgZ2V0RmxhZ3MgaW5zdGVhZCBvZiB0aGUgb2xkIGZsYWdzU3RyaW5nLgorCiAyMDE1
LTA2LTEyICBCYXNpbGUgQ2xlbWVudCAgPGJhc2lsZV9jbGVtZW50QGFwcGxlLmNvbT4KIAogICAg
ICAgICBERkcgT2JqZWN0IEFsbG9jYXRpb24gU2lua2luZyBzaG91bGQgbm90IGNvbnNpZGVyIEdl
dENsb3N1cmVWYXIgYXMgZXNjYXBlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggODRhNzE2MzkxZGRiZTExZGE3ZDI1MTRjMTg0
ZGUyZmI2MWE2NWUwNy4uNDUyMTA1OTMxMDJhNGFiYzA4ZDNhZDU1ZDMzMWNmOTJmOWM2Yzc0NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUu
Y3BwCkBAIC0xMzcsMzcgKzEzNywzNSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJl
Z0V4cFByb3RvRnVuY0NvbXBpbGUoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgU3RyaW5nIGZsYWdz
U3RyaW5nKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QqIHJlZ2V4cCkKLXsKLSAgICBjaGFyIGZs
YWdzWzRdID0geyAwLCAwLCAwLCAwIH07Ci0gICAgaW50IGluZGV4ID0gMDsKK3R5cGVkZWYgY2hh
ciBGbGFnc1N0cmluZ1szICsgMV07IC8vIDMgZGlmZmVyZW50IGZsYWdzIGFuZCBhIG51bGwgY2hh
cmFjdGVyIHRlcm1pbmF0b3IKIAorc3RhdGljIGlubGluZSB2b2lkIGdldEZsYWdzKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIHJlZ2V4cCwgRmxhZ3NTdHJpbmcmIGZsYWdzKQorewogICAgIEpT
VmFsdWUgZ2xvYmFsVmFsdWUgPSByZWdleHAtPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkuZ2xvYmFsKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVy
biBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIEpTVmFsdWUgaWdub3JlQ2FzZVZhbHVl
ID0gcmVnZXhwLT5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmlnbm9yZUNhc2UpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
ICAgICAgICByZXR1cm47CiAgICAgSlNWYWx1ZSBtdWx0aWxpbmVWYWx1ZSA9IHJlZ2V4cC0+Z2V0
KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5tdWx0aWxpbmUpOwotICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCisgICAgdW5zaWduZWQg
aW5kZXggPSAwOwogICAgIGlmIChnbG9iYWxWYWx1ZS50b0Jvb2xlYW4oZXhlYykpCiAgICAgICAg
IGZsYWdzW2luZGV4KytdID0gJ2cnOwogICAgIGlmIChpZ25vcmVDYXNlVmFsdWUudG9Cb29sZWFu
KGV4ZWMpKQogICAgICAgICBmbGFnc1tpbmRleCsrXSA9ICdpJzsKICAgICBpZiAobXVsdGlsaW5l
VmFsdWUudG9Cb29sZWFuKGV4ZWMpKQotICAgICAgICBmbGFnc1tpbmRleF0gPSAnbSc7Ci0gICAg
cmV0dXJuIFN0cmluZyhmbGFncyk7CisgICAgICAgIGZsYWdzW2luZGV4KytdID0gJ20nOworICAg
IGZsYWdzW2luZGV4XSA9IDA7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVn
RXhwUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMo
UmVnRXhwT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCi0gICAgUmVnRXhwT2JqZWN0
KiB0aGlzT2JqZWN0ID0gYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKTsKKyAgICBKU09iamVjdCog
dGhpc09iamVjdCA9IGFzT2JqZWN0KHRoaXNWYWx1ZSk7CiAKICAgICBTdHJpbmdSZWN1cnNpb25D
aGVja2VyIGNoZWNrZXIoZXhlYywgdGhpc09iamVjdCk7CiAgICAgaWYgKEpTVmFsdWUgZWFybHlS
ZXR1cm5WYWx1ZSA9IGNoZWNrZXIuZWFybHlSZXR1cm5WYWx1ZSgpKQpAQCAtMTgwLDEyICsxNzgs
MTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNUb1N0cmlu
ZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgU3RyaW5nIGZs
YWdzID0gZmxhZ3NTdHJpbmcoZXhlYywgdGhpc09iamVjdCk7CisgICAgRmxhZ3NTdHJpbmcgZmxh
Z3M7CisgICAgZ2V0RmxhZ3MoZXhlYywgdGhpc09iamVjdCwgZmxhZ3MpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIAotICAgIC8vIElmIHNvdXJjZSBpcyBlbXB0eSwgdXNlICIvKD86KS8iIHRvIGF2
b2lkIGNvbGxpZGluZyB3aXRoIGNvbW1lbnQgc3ludGF4Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc01ha2VOb250cml2aWFsU3RyaW5nKGV4ZWMsICIvIiwgc291cmNlLCAiLyIsIGZsYWdz
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc01ha2VOb250cml2aWFsU3RyaW5nKGV4
ZWMsICcvJywgc291cmNlLCAnLycsIGZsYWdzKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjE5
LDE2ICsyMTcsMTYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dl
dHRlckZsYWdzKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3IoZXhlYykpOworICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAotICAgIFN0cmluZyBmbGFncyA9IGZsYWdz
U3RyaW5nKGV4ZWMsIGFzT2JqZWN0KHRoaXNWYWx1ZSkpOworICAgIEZsYWdzU3RyaW5nIGZsYWdz
OworICAgIGdldEZsYWdzKGV4ZWMsIGFzT2JqZWN0KHRoaXNWYWx1ZSksIGZsYWdzKTsKICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4
ZWMsIGZsYWdzKSk7CiB9CiAKLQogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CiBz
dGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kTGluZVRlcm1pbmF0b3JFc2NhcGUoU3RyaW5nQnVpbGRl
ciYsIENoYXJhY3RlclR5cGUpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254844</attachid>
            <date>2015-06-12 18:12:30 -0700</date>
            <delta_ts>2015-06-12 18:23:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145935-20150612181159.patch</filename>
            <type>text/plain</type>
            <size>9833</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NDgwYTIxZjdjM2Y2Njk4MDY5OTAzYmVjYzlmMTY1YzY5OTNhY2ZkLi5iNzcyZjc0MjUzNDMwNzE5
ZDlkYjFhMTVjYjBiYzM3YjQxNjM2ZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNS0wNi0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgRml4IG1pbm9yIEVTNiBjb21wbGlhbmNlIGlzc3VlIGluIFJlZ0V4cC5wcm90b3R5
cGUudG9TdHJpbmcgYW5kIG9wdGltaXplIHBlcmZvcm1hbmNlIGEgbGl0dGxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU5MzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBqcy9yZWdleHAtdG9T
dHJpbmcuaHRtbAorCisgICAgICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpnZXRGbGFncyk6IEF2b2lkIG1lbW9yeSBhbGxvY2F0aW9uIGZvciB0aGUgZmxh
Z3Mgc3RyaW5nIGJ5IHJldHVybmluZyBpdCBpbiBhIGNoYXJhY3RlcgorICAgICAgICBidWZmZXIg
aW5zdGVhZCBvZiBjb25zdHJ1Y3RpbmcgYSBXVEY6OlN0cmluZyBmb3IgaXQuCisgICAgICAgIChK
U0M6OnJlZ0V4cFByb3RvRnVuY1RvU3RyaW5nKTogUmVxdWlyZSBvbmx5IHRoYXQgdGhlIHRoaXMg
dmFsdWUgYmUgYW4gb2JqZWN0OyBkb24ndCByZXF1aXJlCisgICAgICAgIHRoYXQgaXQgaXMgYWN0
dWFsbHkgYSByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0LiBUaGlzIGlzIGNvdmVyZWQgaW4gdGhl
IEVTNiBzcGVjaWZpY2F0aW9uLgorICAgICAgICBBbHNvIHJlbW92ZWQgY29tbWVudCBhYm91dCB0
aGUgIi8oPzopLyIgdHJpY2sgc2luY2UgdGhhdCBpcyBub3cgdGhlIHJlcHNvbnNpYmlsaXR5IG9m
IHRoZQorICAgICAgICBnZXR0ZXIgZm9yIHRoZSAic291cmNlIiBwcm9wZXJ0eS4gVXBkYXRlZCB0
byB1c2UgZ2V0RmxhZ3Mgc28gd2UgZG8gb25lIGxlc3MgbWVtb3J5IGFsbG9jYXRpb24uCisgICAg
ICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0dGVyRmxhZ3MpOiBDaGFnbmVkIHRvIHVzZSBnZXRGbGFn
cyBpbnN0ZWFkIG9mIHRoZSBvbGQgZmxhZ3NTdHJpbmcuCisKIDIwMTUtMDYtMTIgIEJhc2lsZSBD
bGVtZW50ICA8YmFzaWxlX2NsZW1lbnRAYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBPYmplY3Qg
QWxsb2NhdGlvbiBTaW5raW5nIHNob3VsZCBub3QgY29uc2lkZXIgR2V0Q2xvc3VyZVZhciBhcyBl
c2NhcGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90
eXBlLmNwcAppbmRleCA4NGE3MTYzOTFkZGJlMTFkYTdkMjUxNGMxODRkZTJmYjYxYTY1ZTA3Li40
NTIxMDU5MzEwMmE0YWJjMDhkM2FkNTVkMzMxY2Y5MmY5YzZjNzQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTEzNywzNyAr
MTM3LDM1IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jQ29t
cGlsZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBTdHJpbmcgZmxhZ3NTdHJpbmcoRXhlY1N0YXRl
ICpleGVjLCBKU09iamVjdCogcmVnZXhwKQotewotICAgIGNoYXIgZmxhZ3NbNF0gPSB7IDAsIDAs
IDAsIDAgfTsKLSAgICBpbnQgaW5kZXggPSAwOwordHlwZWRlZiBjaGFyIEZsYWdzU3RyaW5nWzMg
KyAxXTsgLy8gMyBkaWZmZXJlbnQgZmxhZ3MgYW5kIGEgbnVsbCBjaGFyYWN0ZXIgdGVybWluYXRv
cgogCitzdGF0aWMgaW5saW5lIHZvaWQgZ2V0RmxhZ3MoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogcmVnZXhwLCBGbGFnc1N0cmluZyYgZmxhZ3MpCit7CiAgICAgSlNWYWx1ZSBnbG9iYWxWYWx1
ZSA9IHJlZ2V4cC0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5nbG9iYWwpOwogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAg
ICAgICByZXR1cm47CiAgICAgSlNWYWx1ZSBpZ25vcmVDYXNlVmFsdWUgPSByZWdleHAtPmdldChl
eGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaWdub3JlQ2FzZSk7CiAgICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJldHVybjsK
ICAgICBKU1ZhbHVlIG11bHRpbGluZVZhbHVlID0gcmVnZXhwLT5nZXQoZXhlYywgZXhlYy0+cHJv
cGVydHlOYW1lcygpLm11bHRpbGluZSk7Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQot
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKKyAgICB1bnNpZ25lZCBpbmRleCA9IDA7CiAgICAg
aWYgKGdsb2JhbFZhbHVlLnRvQm9vbGVhbihleGVjKSkKICAgICAgICAgZmxhZ3NbaW5kZXgrK10g
PSAnZyc7CiAgICAgaWYgKGlnbm9yZUNhc2VWYWx1ZS50b0Jvb2xlYW4oZXhlYykpCiAgICAgICAg
IGZsYWdzW2luZGV4KytdID0gJ2knOwogICAgIGlmIChtdWx0aWxpbmVWYWx1ZS50b0Jvb2xlYW4o
ZXhlYykpCi0gICAgICAgIGZsYWdzW2luZGV4XSA9ICdtJzsKLSAgICByZXR1cm4gU3RyaW5nKGZs
YWdzKTsKKyAgICAgICAgZmxhZ3NbaW5kZXgrK10gPSAnbSc7CisgICAgZmxhZ3NbaW5kZXhdID0g
MDsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNUb1N0
cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50
aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhSZWdFeHBPYmplY3Q6Omlu
Zm8oKSkpCisgICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKLSAgICBSZWdFeHBPYmplY3QqIHRoaXNPYmplY3QgPSBh
c1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gYXNP
YmplY3QodGhpc1ZhbHVlKTsKIAogICAgIFN0cmluZ1JlY3Vyc2lvbkNoZWNrZXIgY2hlY2tlcihl
eGVjLCB0aGlzT2JqZWN0KTsKICAgICBpZiAoSlNWYWx1ZSBlYXJseVJldHVyblZhbHVlID0gY2hl
Y2tlci5lYXJseVJldHVyblZhbHVlKCkpCkBAIC0xODAsMTIgKzE3OCwxMiBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBTdHJpbmcgZmxhZ3MgPSBmbGFnc1N0cmlu
ZyhleGVjLCB0aGlzT2JqZWN0KTsKKyAgICBGbGFnc1N0cmluZyBmbGFnczsKKyAgICBnZXRGbGFn
cyhleGVjLCB0aGlzT2JqZWN0LCBmbGFncyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAg
Ly8gSWYgc291cmNlIGlzIGVtcHR5LCB1c2UgIi8oPzopLyIgdG8gYXZvaWQgY29sbGlkaW5nIHdp
dGggY29tbWVudCBzeW50YXgKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRy
aXZpYWxTdHJpbmcoZXhlYywgIi8iLCBzb3VyY2UsICIvIiwgZmxhZ3MpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgJy8nLCBzb3VyY2Us
ICcvJywgZmxhZ3MpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQ
cm90b0dldHRlckdsb2JhbChFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yMTksMTYgKzIxNywxNiBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyRmxhZ3MoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
CiAgICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZSh0aHJvd1R5cGVFcnJvcihleGVjKSk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwogCi0gICAgU3RyaW5nIGZsYWdzID0gZmxhZ3NTdHJpbmcoZXhlYywgYXNP
YmplY3QodGhpc1ZhbHVlKSk7CisgICAgRmxhZ3NTdHJpbmcgZmxhZ3M7CisgICAgZ2V0RmxhZ3Mo
ZXhlYywgYXNPYmplY3QodGhpc1ZhbHVlKSwgZmxhZ3MpOwogICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgZmxhZ3MpKTsKIH0K
IAotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIHN0YXRpYyBpbmxpbmUgdm9p
ZCBhcHBlbmRMaW5lVGVybWluYXRvckVzY2FwZShTdHJpbmdCdWlsZGVyJiwgQ2hhcmFjdGVyVHlw
ZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA0MjM4Y2JkYTkxYWVjZTI5ZDA2YTJkMjdkMjM3ZDliNzA3MjFjOTc2Li4w
N2QwZTQ1NjAyOWMwNjQyMDhlZjQ5MDk4MzBmZDAzZWQ0ZTYyMTU2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTUtMDYtMTIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCBtaW5vciBFUzYgY29tcGxpYW5jZSBpc3N1ZSBpbiBSZWdFeHAucHJvdG90eXBlLnRv
U3RyaW5nIGFuZCBvcHRpbWl6ZSBwZXJmb3JtYW5jZSBhIGxpdHRsZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1OTM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9yZWdleHAtdG9TdHJpbmctZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdleHAtdG9TdHJpbmcuaHRtbDogQWRk
ZWQuCisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL3JlZ2V4cC10b1N0cmluZy5qczogQWRkZWQu
CisKIDIwMTUtMDYtMTIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxODU0OTIuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9yZWdleHAtdG9TdHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
anMvcmVnZXhwLXRvU3RyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWUzZWZhYWU3N2Vl
NTE2YmUzZjc3OGVjNzdjYzI4MjI3ODE4MTUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvcmVnZXhwLXRvU3RyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitUZXN0
IFJlZ0V4cCN0b1N0cmluZworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cC5wcm90b3R5cGUsICd0b1N0cmlu
ZycpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoUmVnRXhwLnByb3RvdHlwZSwgJ3RvU3RyaW5nJykuZW51bWVyYWJsZSBpcyBmYWxzZQor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cC5wcm90b3R5cGUsICd0
b1N0cmluZycpLmdldCBpcyB1bmRlZmluZWQKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihSZWdFeHAucHJvdG90eXBlLCAndG9TdHJpbmcnKS5zZXQgaXMgdW5kZWZpbmVkCitQ
QVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cC5wcm90b3R5
cGUsICd0b1N0cmluZycpLnZhbHVlIGlzICdmdW5jdGlvbicKK1BBU1MgUmVnRXhwLnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKG5ldyBSZWdFeHApIGlzICcvKD86KS8nCitQQVNTIFJlZ0V4cC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChuZXcgUmVnRXhwKCdhJykpIGlzICcvYS8nCitQQVNTIFJlZ0V4
cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXcgUmVnRXhwKCdcXFxcJykpIGlzICcvXFxcXC8n
CitQQVNTIFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh7fSkgaXMgJy91bmRlZmluZWQv
JworUEFTUyBSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoe3NvdXJjZTogJ2hpJ30pIGlz
ICcvaGkvJworUEFTUyBSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeyBfX3Byb3RvX186
IHsgc291cmNlOiAneW8nIH0gfSkgaXMgJy95by8nCitQQVNTIFJlZ0V4cC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbCh7c291cmNlOiAnJ30pIGlzICcvLycKK1BBU1MgUmVnRXhwLnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHtzb3VyY2U6ICcvJ30pIGlzICcvLy8nCitQQVNTIFJlZ0V4cC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbCh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCitQQVNTIFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChudWxsKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBSZWdFeHAucHJvdG90eXBl
LnRvU3RyaW5nLmNhbGwoZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCitQQVNTIFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0cnVlKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBSZWdFeHAucHJvdG90eXBlLnRvU3Ry
aW5nLmNhbGwoMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
UmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKDAuNSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KK1BBU1MgUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKCd4
JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdleHAtdG9TdHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ2V4cC10b1N0
cmluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiMWFjY2VmMzE1MDczZDc4ZDhiODZkZDdkOTRhYTEyZDNj
Y2M0N2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdleHAtdG9TdHJpbmcu
aHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvcmVnZXhwLXRvU3RyaW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtdG9TdHJpbmcu
anMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXRvU3RyaW5nLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRhMDgxMWMwMWJiOWUwZDgzMDcyNjc3MWZkMjQ5ZDc1MjM5MTI4MjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXRvU3RyaW5nLmpz
CkBAIC0wLDAgKzEsMjUgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IFJlZ0V4cCN0b1N0cmluZycpOwor
CitzaG91bGRCZSgiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAucHJvdG90
eXBlLCAndG9TdHJpbmcnKS5jb25maWd1cmFibGUiLCAidHJ1ZSIpOworc2hvdWxkQmUoIk9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwLnByb3RvdHlwZSwgJ3RvU3RyaW5nJyku
ZW51bWVyYWJsZSIsICJmYWxzZSIpOworc2hvdWxkQmUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoUmVnRXhwLnByb3RvdHlwZSwgJ3RvU3RyaW5nJykuZ2V0IiwgInVuZGVmaW5lZCIp
Oworc2hvdWxkQmUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwLnByb3Rv
dHlwZSwgJ3RvU3RyaW5nJykuc2V0IiwgInVuZGVmaW5lZCIpOworc2hvdWxkQmUoInR5cGVvZiBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cC5wcm90b3R5cGUsICd0b1N0cmlu
ZycpLnZhbHVlIiwgIidmdW5jdGlvbiciKTsKKworc2hvdWxkQmUoIlJlZ0V4cC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChuZXcgUmVnRXhwKSIsICInLyg/OikvJyIpOworc2hvdWxkQmUoIlJlZ0V4
cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXcgUmVnRXhwKCdhJykpIiwgIicvYS8nIik7Citz
aG91bGRCZSgiUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5ldyBSZWdFeHAoJ1xcXFxc
XFxcJykpIiwgIicvXFxcXFxcXFwvJyIpOworCitzaG91bGRCZSgiUmVnRXhwLnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHt9KSIsICInL3VuZGVmaW5lZC8nIik7CitzaG91bGRCZSgiUmVnRXhwLnBy
b3RvdHlwZS50b1N0cmluZy5jYWxsKHtzb3VyY2U6ICdoaSd9KSIsICInL2hpLyciKTsKK3Nob3Vs
ZEJlKCJSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeyBfX3Byb3RvX186IHsgc291cmNl
OiAneW8nIH0gfSkiLCAiJy95by8nIik7CitzaG91bGRCZSgiUmVnRXhwLnByb3RvdHlwZS50b1N0
cmluZy5jYWxsKHtzb3VyY2U6ICcnfSkiLCAiJy8vJyIpOworc2hvdWxkQmUoIlJlZ0V4cC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbCh7c291cmNlOiAnLyd9KSIsICInLy8vJyIpOworCitzaG91bGRU
aHJvdygiUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHVuZGVmaW5lZCkiKTsKK3Nob3Vs
ZFRocm93KCJSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobnVsbCkiKTsKK3Nob3VsZFRo
cm93KCJSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZmFsc2UpIik7CitzaG91bGRUaHJv
dygiUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRydWUpIik7CitzaG91bGRUaHJvdygi
UmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKDApIik7CitzaG91bGRUaHJvdygiUmVnRXhw
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKDAuNSkiKTsKK3Nob3VsZFRocm93KCJSZWdFeHAucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwoJ3gnKSIpOwo=
</data>
<flag name="review"
          id="279849"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>