<?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>121849</bug_id>
          
          <creation_ts>2013-09-24 11:28:49 -0700</creation_ts>
          <short_desc>Implement symbol name hashing for WebGL shaders</short_desc>
          <delta_ts>2014-05-01 10:08:02 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>126832</blocked>
    
    <blocked>132430</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>noam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>932637</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-09-24 11:28:49 -0700</bug_when>
    <thetext>ANGLE provides the feature to do symbol name translation for everything. This is handy if lower-level GL drivers do not like compiling shaders that redefine built-in symbol names (e.g. &quot;sin&quot;). This causes us to fail the Khronos test conformance/glsl/misc/shader-with-non-reserved-words.html on some hardware.

Turn on the name mapping. I have some complaints with the technique that ANGLE provides, but a combination of our 32bit hash plus incrementing number should be fine.
https://code.google.com/p/angleproject/issues/detail?id=474

&lt;rdar://problem/15036575&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932642</commentid>
    <comment_count>1</comment_count>
      <attachid>212486</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-09-24 11:37:44 -0700</bug_when>
    <thetext>Created attachment 212486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932666</commentid>
    <comment_count>2</comment_count>
      <attachid>212489</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-09-24 12:30:49 -0700</bug_when>
    <thetext>Created attachment 212489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932670</commentid>
    <comment_count>3</comment_count>
      <attachid>212490</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-09-24 12:37:08 -0700</bug_when>
    <thetext>Created attachment 212490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932674</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-09-24 12:43:32 -0700</bug_when>
    <thetext>Committed r156352: &lt;http://trac.webkit.org/changeset/156352&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212486</attachid>
            <date>2013-09-24 11:37:44 -0700</date>
            <delta_ts>2013-09-24 12:30:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121849-20130924113743.patch</filename>
            <type>text/plain</type>
            <size>8720</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTYzOTEyMWI1ZGJmYjI3
MzY5Njc5M2Y1YWIxM2M4ZmMwODg4YzJjYy4uOGQ1ZmJkMjYwNDZlZGQ3NDY5MzlkOWE5N2U4MGVj
YWYyNTNlYjdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEzLTA5LTI0ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAorICAgICAgICBJbXBsZW1lbnQgc3ltYm9sIG5h
bWUgaGFzaGluZyBmb3IgV2ViR0wgc2hhZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVHVybiBvbiBBTkdMRSdzIHN5bWJvbCBuYW1lIG1hcHBpbmcg
Zm9yIHNoYWRlciBwcm9ncmFtcy4KKyAgICAgICAgVGhpcyBhdm9pZHMgY29tcGlsYXRpb24gZmFp
bHVyZXMgKG9yIHdvcnNlLCBjcmFzaGVycykKKyAgICAgICAgb24gc29tZSBoYXJkd2FyZSB0aGF0
IGRvZXNuJ3QgbGlrZSBpdCB3aGVuIHNoYWRlcnMgcmVkZWZpbmUKKyAgICAgICAgc3ltYm9scyBs
aWtlICJzaW4iLCBldmVuIHRob3VnaCB0aGF0IGlzIHZhbGlkLgorCisgICAgICAgIFRoZSB3YXkg
QU5HTEUgZXhwb3NlcyB0aGlzIGlzIHZpYSBzZXR0aW5nIGEgcG9pbnRlcgorICAgICAgICB0byBh
IGNoYXIqIC0+IHVpbnQ2NF90IGhhc2ggZnVuY3Rpb24uIFNpbmNlIHdlIG9ubHkgaGF2ZQorICAg
ICAgICBhIDMyLWJpdCBoYXNoIGluIFdlYktpdCwgSSBjb21iaW5lIHRoZSAzMi1iaXQgdmFsdWUg
d2l0aAorICAgICAgICBhIGNvdW50ZXIgdmFsdWUgdGhhdCBleGlzdHMgb3ZlciB0aGUgbGlmZXRp
bWUgb2YgYSBHQzNEIGNvbnRleHQuCisgICAgICAgIEJlZm9yZSBjYWxsaW5nIEFOR0xFLCBJIHBv
aW50IHRoZSBnbG9iYWwgaGFzaCBtYXAgdG8gdGhlIGxvY2FsCisgICAgICAgIGhhc2ggbWFwLCBh
bmQgdGhlbiBjbGVhbiB1cCBhZnRlciB3ZSdyZSBkb25lLiBUaGlzIGludHJvZHVjZXMKKyAgICAg
ICAgYSBtZW1vcnkgaGl0LCBpbiB0aGF0IHRoZSBzeW1ib2wgdGFibGUgd2lsbCBidWlsZCB1cCB1
bnRpbAorICAgICAgICB0aGUgY29udGV4dCBpcyByZWxlYXNlZC4KKworICAgICAgICBDb3ZlcmVk
IGJ5IEtocm9ub3MgV2ViR0wgdGVzdHMsIGluY2x1ZGluZworICAgICAgICBjb25mb3JtYW5jZS9n
bHNsL21pc2Mvc2hhZGVyLXdpdGgtbm9uLXJlc2VydmVkLXdvcmRzLmh0bWwKKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6IERlZmluZSBhIFNoYWRlck5h
bWVIYXNoIHR5cGUsCisgICAgICAgIGFuZCBhZGQgYW4gT3duUHRyIHRvIG9uZSBhcyBhIG1lbWJl
ciB2YXJpYWJsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmFtZUhhc2hGb3JT
aGFkZXIpOiBHbG9iYWwgZnVuY3Rpb24gdXNlZCBmb3IgQU5HTEUgaGFzaGluZy4KKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjb21waWxlU2hhZGVyKTogU2V0IHVwIHRoZSBB
TkdMRSBwcm9wZXJ0aWVzLAorICAgICAgICBwb2ludCB0byB0aGUgbG9jYWwgaGFzaCBtYXAsIGFu
ZCBjYWxsIGNvbXBpbGUvdHJhbnNsYXRlLgorCisyMDEzLTA5LTI0ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KKwogICAgICAgICBVc2UgbWFwcGVkIG5hbWUgaW4gYXR0cmlidXRlIGxv
Y2F0aW9uIGJpbmRpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMTg0NwogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTUwNjc1MjY+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApp
bmRleCA5ODU0ZWEzZGQwZWQ2ZTVlZmZhOTFiMTEzNzBhOGRjZjBjMTk2NGYwLi5mMjU5OTc4NzA4
M2M0MmUyYjQxMjExYTliYzIyMGVmMTQzOTMzYWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKQEAgLTEwOCw2ICsxMDgs
OCBAQCBjbGFzcyBQbGF0Zm9ybUNvbnRleHRDYWlybzsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsK
ICNlbmRpZgogCit0eXBlZGVmIFdURjo6SGFzaE1hcDxXVEY6OlN0cmluZywgdWludDY0X3Q+IFNo
YWRlck5hbWVIYXNoOworCiBzdHJ1Y3QgQWN0aXZlSW5mbyB7CiAgICAgU3RyaW5nIG5hbWU7CiAg
ICAgR0MzRGVudW0gdHlwZTsKQEAgLTEwMjQsNiArMTAyNiw4IEBAIHByaXZhdGU6CiAgICAgU3Ry
aW5nIG9yaWdpbmFsU3ltYm9sTmFtZShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEFOR0xFU2hh
ZGVyU3ltYm9sVHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAogICAgIEFOR0xFV2ViS2l0QnJp
ZGdlIG1fY29tcGlsZXI7CisKKyAgICBPd25QdHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNoTWFw
Rm9yU2hhZGVyczsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgKFBMQVRG
T1JNKFFUKSAmJiBkZWZpbmVkKFFUX09QRU5HTF9FU18yKSkgfHwgKChQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oV0lOKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IDA1M2M1
MjNmZmFiM2ExOTU1MTAwZDc4ZTcwOThiY2ZjNzNmZmIyOWEuLmUxMTcxMGRkMDhlYjM3YjEyNjli
NzYwMTM5ZWQ4MjBhYzhlZjlkNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNE
T3BlbkdMQ29tbW9uLmNwcApAQCAtNjcsNiArNjcsNTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitzdGF0aWMgU2hhZGVyTmFtZUhhc2gqIGN1cnJlbnROYW1lSGFzaE1hcEZvclNoYWRlcjsK
KworLy8gSGFzaCBmdW5jdGlvbiB1c2VkIGJ5IHRoZSBBTkdMRSB0cmFuc2xhdG9yL2NvbXBpbGVy
IHRvIGRvCisvLyBzeW1ib2wgbmFtZSBtYW5nbGluZy4gU2luY2UgdGhpcyBpcyBhIHN0YXRpYyBt
ZXRob2QsIGJlZm9yZQorLy8gY2FsbGluZyBjb21waWxlU2hhZGVyIHdlIHNldCBjdXJyZW50TmFt
ZUhhc2hNYXBGb3JTaGFkZXIKKy8vIHRvIHBvaW50IHRvIHRoZSBtYXAga2VwdCBieSB0aGUgY3Vy
cmVudCBpbnN0YW5jZSBvZiBHcmFwaGljc0NvbnRleHQzRC4KKworc3RhdGljIHVpbnQ2NF90IG5h
bWVIYXNoRm9yU2hhZGVyKGNvbnN0IGNoYXIqIG5hbWUsIHNpemVfdCBsZW5ndGgpCit7CisgICAg
aWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gTG9vayB1cCBuYW1lIGlu
IG91ciBsb2NhbCBtYXAuCisgICAgaWYgKGN1cnJlbnROYW1lSGFzaE1hcEZvclNoYWRlcikgewor
ICAgICAgICBTaGFkZXJOYW1lSGFzaDo6aXRlcmF0b3IgcmVzdWx0ID0gY3VycmVudE5hbWVIYXNo
TWFwRm9yU2hhZGVyLT5maW5kKG5hbWUpOworICAgICAgICBpZiAocmVzdWx0ICE9IGN1cnJlbnRO
YW1lSGFzaE1hcEZvclNoYWRlci0+ZW5kKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LT52
YWx1ZTsKKyAgICB9CisKKyAgICBMQ2hhciogdG1wTmFtZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8TENo
YXIqPihjb25zdF9jYXN0PGNoYXIqPihuYW1lKSk7CisgICAgc2l6ZV90IHRtcExlbmd0aCA9IGxl
bmd0aDsKKworICAgIC8vIFN0cmluZ0hhc2hlciByZXF1aXJlcyBsZW5ndGhzIHRvIGJlIG11bHRp
cGxlcyBvZiB0d28uCisgICAgaWYgKGxlbmd0aCAlIDIpIHsKKyAgICAgICAgdG1wTGVuZ3RoID0g
bGVuZ3RoICsgMTsKKyAgICAgICAgdG1wTmFtZSA9IHN0YXRpY19jYXN0PExDaGFyKj4oZmFzdE1h
bGxvYyh0bXBMZW5ndGggKyAxKSk7CisgICAgICAgIG1lbWNweSh0bXBOYW1lLCBuYW1lLCBsZW5n
dGgpOworICAgICAgICB0bXBOYW1lW2xlbmd0aF0gPSAneCc7CisgICAgICAgIHRtcE5hbWVbbGVu
Z3RoICsgMV0gPSAnXDAnOworICAgIH0KKworICAgIHVuc2lnbmVkIGhhc2hWYWx1ZSA9IFN0cmlu
Z0hhc2hlcjo6aGFzaE1lbW9yeSh0bXBOYW1lLCB0bXBMZW5ndGgpOworCisgICAgaWYgKGxlbmd0
aCAlIDIpCisgICAgICAgIGZhc3RGcmVlKHRtcE5hbWUpOworCisgICAgLy8gQ29udmVydCB0aGUg
MzItYml0IGhhc2ggZnJvbSBTdHJpbmdIYXNoZXIgaW50byBhIDY0LWJpdCByZXN1bHQKKyAgICAv
LyBieSBzaGlmdGluZyB0aGVuIGFkZGluZyBvdXIgbG9jYWxseSBpbmNyZW1lbnRlZCB2YWx1ZS4g
T3ZlcmZsb3cgd291bGQKKyAgICAvLyBvbmx5IGJlIGEgcHJvYmxlbSBpZiB3ZSdyZSBhbHJlYWR5
IGhhc2hpbmcgdG8gdGhlIHNhbWUgdmFsdWUgKGFuZAorICAgIC8vIHdlJ3JlIGhvcGluZyB0aGF0
IG92ZXIgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb250ZXh0IHdlCisgICAgLy8gZG9uJ3QgaGF2ZSB0
aGF0IG1hbnkgc3ltYm9scykuCisKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaENvdW50ID0gMDsK
KyAgICB1aW50NjRfdCByZXN1bHQgPSBoYXNoVmFsdWU7CisgICAgcmVzdWx0ID0gKHJlc3VsdCA8
PCAzMikgKyAoKytoYXNoQ291bnQpOworCisgICAgY3VycmVudE5hbWVIYXNoTWFwRm9yU2hhZGVy
LT5zZXQobmFtZSwgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBQYXNzUmVmUHRy
PEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlRm9yQ3VycmVudEdM
Q29udGV4dCgpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gYWRv
cHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dDNEKEF0dHJpYnV0ZXMoKSwgMCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlJlbmRlclRvQ3VycmVudEdMQ29udGV4dCkpOwpAQCAtNDQzLDE1ICs0OTMsMzMgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29tcGlsZVNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHNo
YWRlcikKICAgICBBU1NFUlQoc2hhZGVyKTsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAor
ICAgIC8vIFR1cm4gb24gbmFtZSBtYXBwaW5nLiBEdWUgdG8gdGhlIHdheSBBTkdMRSBuYW1lIGhh
c2hpbmcgd29ya3MsIHdlCisgICAgLy8gcG9pbnQgYSBnbG9iYWwgaGFzaG1hcCB0byB0aGUgbWFw
IG93bmVkIGJ5IHRoaXMgY29udGV4dC4KKyAgICBTaEJ1aWx0SW5SZXNvdXJjZXMgQU5HTEVSZXNv
dXJjZXMgPSBtX2NvbXBpbGVyLmdldFJlc291cmNlcygpOworICAgIFNoSGFzaEZ1bmN0aW9uNjQg
cHJldmlvdXNIYXNoRnVuY3Rpb24gPSBBTkdMRVJlc291cmNlcy5IYXNoRnVuY3Rpb247CisgICAg
QU5HTEVSZXNvdXJjZXMuSGFzaEZ1bmN0aW9uID0gbmFtZUhhc2hGb3JTaGFkZXI7CisKKyAgICBp
ZiAoIW5hbWVIYXNoTWFwRm9yU2hhZGVycykKKyAgICAgICAgbmFtZUhhc2hNYXBGb3JTaGFkZXJz
ID0gYWRvcHRQdHIobmV3IFNoYWRlck5hbWVIYXNoKTsKKyAgICBjdXJyZW50TmFtZUhhc2hNYXBG
b3JTaGFkZXIgPSBuYW1lSGFzaE1hcEZvclNoYWRlcnMuZ2V0KCk7CisgICAgbV9jb21waWxlci5z
ZXRSZXNvdXJjZXMoQU5HTEVSZXNvdXJjZXMpOworCiAgICAgU3RyaW5nIHRyYW5zbGF0ZWRTaGFk
ZXJTb3VyY2UgPSBtX2V4dGVuc2lvbnMtPmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShz
aGFkZXIpOwogCisgICAgQU5HTEVSZXNvdXJjZXMuSGFzaEZ1bmN0aW9uID0gcHJldmlvdXNIYXNo
RnVuY3Rpb247CisgICAgbV9jb21waWxlci5zZXRSZXNvdXJjZXMoQU5HTEVSZXNvdXJjZXMpOwor
ICAgIGN1cnJlbnROYW1lSGFzaE1hcEZvclNoYWRlciA9IG51bGxwdHI7CisKICAgICBpZiAoIXRy
YW5zbGF0ZWRTaGFkZXJTb3VyY2UubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNv
bnN0IENTdHJpbmcmIHRyYW5zbGF0ZWRTaGFkZXJDU3RyaW5nID0gdHJhbnNsYXRlZFNoYWRlclNv
dXJjZS51dGY4KCk7CiAgICAgY29uc3QgY2hhciogdHJhbnNsYXRlZFNoYWRlclB0ciA9IHRyYW5z
bGF0ZWRTaGFkZXJDU3RyaW5nLmRhdGEoKTsKICAgICBpbnQgdHJhbnNsYXRlZFNoYWRlckxlbmd0
aCA9IHRyYW5zbGF0ZWRTaGFkZXJDU3RyaW5nLmxlbmd0aCgpOwotICAgIAorCisgICAgTE9HKFdl
YkdMLCAiLS0tIGJlZ2luIG9yaWdpbmFsIHNoYWRlciBzb3VyY2UgLS0tXG4lc1xuLS0tIGVuZCBv
cmlnaW5hbCBzaGFkZXIgc291cmNlIC0tLVxuIiwgZ2V0U2hhZGVyU291cmNlKHNoYWRlcikudXRm
OCgpLmRhdGEoKSk7CisgICAgTE9HKFdlYkdMLCAiLS0tIGJlZ2luIHRyYW5zbGF0ZWQgc2hhZGVy
IHNvdXJjZSAtLS1cbiVzXG4tLS0gZW5kIHRyYW5zbGF0ZWQgc2hhZGVyIHNvdXJjZSAtLS0iLCB0
cmFuc2xhdGVkU2hhZGVyUHRyKTsKKwogICAgIDo6Z2xTaGFkZXJTb3VyY2Uoc2hhZGVyLCAxLCAm
dHJhbnNsYXRlZFNoYWRlclB0ciwgJnRyYW5zbGF0ZWRTaGFkZXJMZW5ndGgpOwogICAgIAogICAg
IDo6Z2xDb21waWxlU2hhZGVyKHNoYWRlcik7CkBAIC00NjAsMzIgKzUyOCwyOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQog
ICAgIAogICAgIDo6Z2xHZXRTaGFkZXJpdihzaGFkZXIsIENPTVBJTEVfU1RBVFVTLCAmR0xDb21w
aWxlU3VjY2Vzcyk7CiAKKyAgICBTaGFkZXJTb3VyY2VNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IG1f
c2hhZGVyU291cmNlTWFwLmZpbmQoc2hhZGVyKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRDo6U2hh
ZGVyU291cmNlRW50cnkmIGVudHJ5ID0gcmVzdWx0LT52YWx1ZTsKKwogICAgIC8vIFBvcHVsYXRl
IHRoZSBzaGFkZXIgbG9nCiAgICAgR0xpbnQgbGVuZ3RoID0gMDsKICAgICA6OmdsR2V0U2hhZGVy
aXYoc2hhZGVyLCBHTF9JTkZPX0xPR19MRU5HVEgsICZsZW5ndGgpOwogCiAgICAgaWYgKGxlbmd0
aCkgewotICAgICAgICBTaGFkZXJTb3VyY2VNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IG1fc2hhZGVy
U291cmNlTWFwLmZpbmQoc2hhZGVyKTsKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OlNoYWRl
clNvdXJjZUVudHJ5JiBlbnRyeSA9IHJlc3VsdC0+dmFsdWU7Ci0KICAgICAgICAgR0xzaXplaSBz
aXplID0gMDsKICAgICAgICAgYXV0byBpbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxHTGNoYXJbXT4o
bGVuZ3RoKTsKICAgICAgICAgOjpnbEdldFNoYWRlckluZm9Mb2coc2hhZGVyLCBsZW5ndGgsICZz
aXplLCBpbmZvLmdldCgpKTsKIAogICAgICAgICBlbnRyeS5sb2cgPSBpbmZvLmdldCgpOwotCi0g
ICAgICAgIGlmIChHTENvbXBpbGVTdWNjZXNzICE9IEdMX1RSVUUpIHsKLSAgICAgICAgICAgIGVu
dHJ5LmlzVmFsaWQgPSBmYWxzZTsKLSAgICAgICAgICAgIExPRyhXZWJHTCwgIkVycm9yOiBzaGFk
ZXIgdHJhbnNsYXRvciBwcm9kdWNlZCBhIHNoYWRlciB0aGF0IE9wZW5HTCB3b3VsZCBub3QgY29t
cGlsZS4iKTsKLSAgICAgICAgICAgIExPRyhXZWJHTCwgIi0tLSBiZWdpbiBvcmlnaW5hbCBzaGFk
ZXIgc291cmNlIC0tLVxuJXNcbi0tLSBlbmQgb3JpZ2luYWwgc2hhZGVyIHNvdXJjZSAtLS1cbiIs
IGdldFNoYWRlclNvdXJjZShzaGFkZXIpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgTE9H
KFdlYkdMLCAiLS0tIGJlZ2luIHRyYW5zbGF0ZWQgc2hhZGVyIHNvdXJjZSAtLS1cbiVzXG4tLS0g
ZW5kIHRyYW5zbGF0ZWQgc2hhZGVyIHNvdXJjZSAtLS0iLCB0cmFuc2xhdGVkU2hhZGVyUHRyKTsK
LSAgICAgICAgfQogICAgIH0KLSAgICAKKworICAgIGlmIChHTENvbXBpbGVTdWNjZXNzICE9IEdM
X1RSVUUpIHsKKyAgICAgICAgZW50cnkuaXNWYWxpZCA9IGZhbHNlOworICAgICAgICBMT0coV2Vi
R0wsICJFcnJvcjogc2hhZGVyIHRyYW5zbGF0b3IgcHJvZHVjZWQgYSBzaGFkZXIgdGhhdCBPcGVu
R0wgd291bGQgbm90IGNvbXBpbGUuIik7CiAjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkgJiYgIWRl
ZmluZWQoTkRFQlVHKQotICAgIGlmIChHTENvbXBpbGVTdWNjZXNzICE9IEdMX1RSVUUpCiAgICAg
ICAgIEJCTE9HKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpMb2dMZXZlbFdhcm4sICJUaGUgc2hhZGVy
IHZhbGlkYXRlZCwgYnV0IGRpZG4ndCBjb21waWxlLlxuIik7CiAjZW5kaWYKKyAgICB9CiB9CiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RpbnQgeCwgR0MzRGlu
dCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212489</attachid>
            <date>2013-09-24 12:30:49 -0700</date>
            <delta_ts>2013-09-24 12:37:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121849-20130924123048.patch</filename>
            <type>text/plain</type>
            <size>8264</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTYzOTEyMWI1ZGJmYjI3
MzY5Njc5M2Y1YWIxM2M4ZmMwODg4YzJjYy4uOGQ1ZmJkMjYwNDZlZGQ3NDY5MzlkOWE5N2U4MGVj
YWYyNTNlYjdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEzLTA5LTI0ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAorICAgICAgICBJbXBsZW1lbnQgc3ltYm9sIG5h
bWUgaGFzaGluZyBmb3IgV2ViR0wgc2hhZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVHVybiBvbiBBTkdMRSdzIHN5bWJvbCBuYW1lIG1hcHBpbmcg
Zm9yIHNoYWRlciBwcm9ncmFtcy4KKyAgICAgICAgVGhpcyBhdm9pZHMgY29tcGlsYXRpb24gZmFp
bHVyZXMgKG9yIHdvcnNlLCBjcmFzaGVycykKKyAgICAgICAgb24gc29tZSBoYXJkd2FyZSB0aGF0
IGRvZXNuJ3QgbGlrZSBpdCB3aGVuIHNoYWRlcnMgcmVkZWZpbmUKKyAgICAgICAgc3ltYm9scyBs
aWtlICJzaW4iLCBldmVuIHRob3VnaCB0aGF0IGlzIHZhbGlkLgorCisgICAgICAgIFRoZSB3YXkg
QU5HTEUgZXhwb3NlcyB0aGlzIGlzIHZpYSBzZXR0aW5nIGEgcG9pbnRlcgorICAgICAgICB0byBh
IGNoYXIqIC0+IHVpbnQ2NF90IGhhc2ggZnVuY3Rpb24uIFNpbmNlIHdlIG9ubHkgaGF2ZQorICAg
ICAgICBhIDMyLWJpdCBoYXNoIGluIFdlYktpdCwgSSBjb21iaW5lIHRoZSAzMi1iaXQgdmFsdWUg
d2l0aAorICAgICAgICBhIGNvdW50ZXIgdmFsdWUgdGhhdCBleGlzdHMgb3ZlciB0aGUgbGlmZXRp
bWUgb2YgYSBHQzNEIGNvbnRleHQuCisgICAgICAgIEJlZm9yZSBjYWxsaW5nIEFOR0xFLCBJIHBv
aW50IHRoZSBnbG9iYWwgaGFzaCBtYXAgdG8gdGhlIGxvY2FsCisgICAgICAgIGhhc2ggbWFwLCBh
bmQgdGhlbiBjbGVhbiB1cCBhZnRlciB3ZSdyZSBkb25lLiBUaGlzIGludHJvZHVjZXMKKyAgICAg
ICAgYSBtZW1vcnkgaGl0LCBpbiB0aGF0IHRoZSBzeW1ib2wgdGFibGUgd2lsbCBidWlsZCB1cCB1
bnRpbAorICAgICAgICB0aGUgY29udGV4dCBpcyByZWxlYXNlZC4KKworICAgICAgICBDb3ZlcmVk
IGJ5IEtocm9ub3MgV2ViR0wgdGVzdHMsIGluY2x1ZGluZworICAgICAgICBjb25mb3JtYW5jZS9n
bHNsL21pc2Mvc2hhZGVyLXdpdGgtbm9uLXJlc2VydmVkLXdvcmRzLmh0bWwKKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6IERlZmluZSBhIFNoYWRlck5h
bWVIYXNoIHR5cGUsCisgICAgICAgIGFuZCBhZGQgYW4gT3duUHRyIHRvIG9uZSBhcyBhIG1lbWJl
ciB2YXJpYWJsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmFtZUhhc2hGb3JT
aGFkZXIpOiBHbG9iYWwgZnVuY3Rpb24gdXNlZCBmb3IgQU5HTEUgaGFzaGluZy4KKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjb21waWxlU2hhZGVyKTogU2V0IHVwIHRoZSBB
TkdMRSBwcm9wZXJ0aWVzLAorICAgICAgICBwb2ludCB0byB0aGUgbG9jYWwgaGFzaCBtYXAsIGFu
ZCBjYWxsIGNvbXBpbGUvdHJhbnNsYXRlLgorCisyMDEzLTA5LTI0ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KKwogICAgICAgICBVc2UgbWFwcGVkIG5hbWUgaW4gYXR0cmlidXRlIGxv
Y2F0aW9uIGJpbmRpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMTg0NwogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTUwNjc1MjY+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApp
bmRleCA5ODU0ZWEzZGQwZWQ2ZTVlZmZhOTFiMTEzNzBhOGRjZjBjMTk2NGYwLi5mMjU5OTc4NzA4
M2M0MmUyYjQxMjExYTliYzIyMGVmMTQzOTMzYWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKQEAgLTEwOCw2ICsxMDgs
OCBAQCBjbGFzcyBQbGF0Zm9ybUNvbnRleHRDYWlybzsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsK
ICNlbmRpZgogCit0eXBlZGVmIFdURjo6SGFzaE1hcDxXVEY6OlN0cmluZywgdWludDY0X3Q+IFNo
YWRlck5hbWVIYXNoOworCiBzdHJ1Y3QgQWN0aXZlSW5mbyB7CiAgICAgU3RyaW5nIG5hbWU7CiAg
ICAgR0MzRGVudW0gdHlwZTsKQEAgLTEwMjQsNiArMTAyNiw4IEBAIHByaXZhdGU6CiAgICAgU3Ry
aW5nIG9yaWdpbmFsU3ltYm9sTmFtZShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEFOR0xFU2hh
ZGVyU3ltYm9sVHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAogICAgIEFOR0xFV2ViS2l0QnJp
ZGdlIG1fY29tcGlsZXI7CisKKyAgICBPd25QdHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNoTWFw
Rm9yU2hhZGVyczsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgKFBMQVRG
T1JNKFFUKSAmJiBkZWZpbmVkKFFUX09QRU5HTF9FU18yKSkgfHwgKChQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oV0lOKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IDA1M2M1
MjNmZmFiM2ExOTU1MTAwZDc4ZTcwOThiY2ZjNzNmZmIyOWEuLmE3ZGRmNTdhMzY0ZGQ4OGQwZDM0
ODEzODljNmQ3Y2E1ODE3YTczMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNE
T3BlbkdMQ29tbW9uLmNwcApAQCAtNjcsNiArNjcsNDEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitzdGF0aWMgU2hhZGVyTmFtZUhhc2gqIGN1cnJlbnROYW1lSGFzaE1hcEZvclNoYWRlcjsK
KworLy8gSGFzaCBmdW5jdGlvbiB1c2VkIGJ5IHRoZSBBTkdMRSB0cmFuc2xhdG9yL2NvbXBpbGVy
IHRvIGRvCisvLyBzeW1ib2wgbmFtZSBtYW5nbGluZy4gU2luY2UgdGhpcyBpcyBhIHN0YXRpYyBt
ZXRob2QsIGJlZm9yZQorLy8gY2FsbGluZyBjb21waWxlU2hhZGVyIHdlIHNldCBjdXJyZW50TmFt
ZUhhc2hNYXBGb3JTaGFkZXIKKy8vIHRvIHBvaW50IHRvIHRoZSBtYXAga2VwdCBieSB0aGUgY3Vy
cmVudCBpbnN0YW5jZSBvZiBHcmFwaGljc0NvbnRleHQzRC4KKworc3RhdGljIHVpbnQ2NF90IG5h
bWVIYXNoRm9yU2hhZGVyKGNvbnN0IGNoYXIqIG5hbWUsIHNpemVfdCBsZW5ndGgpCit7CisgICAg
aWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gTG9vayB1cCBuYW1lIGlu
IG91ciBsb2NhbCBtYXAuCisgICAgaWYgKGN1cnJlbnROYW1lSGFzaE1hcEZvclNoYWRlcikgewor
ICAgICAgICBTaGFkZXJOYW1lSGFzaDo6aXRlcmF0b3IgcmVzdWx0ID0gY3VycmVudE5hbWVIYXNo
TWFwRm9yU2hhZGVyLT5maW5kKG5hbWUpOworICAgICAgICBpZiAocmVzdWx0ICE9IGN1cnJlbnRO
YW1lSGFzaE1hcEZvclNoYWRlci0+ZW5kKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LT52
YWx1ZTsKKyAgICB9CisKKyAgICBDU3RyaW5nIG5hbWVBc0NTdHJpbmcgPSBDU3RyaW5nKG5hbWUp
OworICAgIHVuc2lnbmVkIGhhc2hWYWx1ZSA9IG5hbWVBc0NTdHJpbmcuaGFzaCgpOworCisgICAg
Ly8gQ29udmVydCB0aGUgMzItYml0IGhhc2ggZnJvbSBDU3RyaW5nOjpoYXNoIGludG8gYSA2NC1i
aXQgcmVzdWx0CisgICAgLy8gYnkgc2hpZnRpbmcgdGhlbiBhZGRpbmcgdGhlIHNpemUgb2Ygb3Vy
IHRhYmxlLiBPdmVyZmxvdyB3b3VsZAorICAgIC8vIG9ubHkgYmUgYSBwcm9ibGVtIGlmIHdlJ3Jl
IGFscmVhZHkgaGFzaGluZyB0byB0aGUgc2FtZSB2YWx1ZSAoYW5kCisgICAgLy8gd2UncmUgaG9w
aW5nIHRoYXQgb3ZlciB0aGUgbGlmZXRpbWUgb2YgdGhlIGNvbnRleHQgd2UKKyAgICAvLyBkb24n
dCBoYXZlIHRoYXQgbWFueSBzeW1ib2xzKS4KKworICAgIHVpbnQ2NF90IHJlc3VsdCA9IGhhc2hW
YWx1ZTsKKyAgICByZXN1bHQgPSAocmVzdWx0IDw8IDMyKSArIChjdXJyZW50TmFtZUhhc2hNYXBG
b3JTaGFkZXItPnNpemUoKSArIDEpOworCisgICAgY3VycmVudE5hbWVIYXNoTWFwRm9yU2hhZGVy
LT5zZXQobmFtZSwgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBQYXNzUmVmUHRy
PEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlRm9yQ3VycmVudEdM
Q29udGV4dCgpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gYWRv
cHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dDNEKEF0dHJpYnV0ZXMoKSwgMCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlJlbmRlclRvQ3VycmVudEdMQ29udGV4dCkpOwpAQCAtNDQzLDE1ICs0NzgsMzMgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29tcGlsZVNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHNo
YWRlcikKICAgICBBU1NFUlQoc2hhZGVyKTsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAor
ICAgIC8vIFR1cm4gb24gbmFtZSBtYXBwaW5nLiBEdWUgdG8gdGhlIHdheSBBTkdMRSBuYW1lIGhh
c2hpbmcgd29ya3MsIHdlCisgICAgLy8gcG9pbnQgYSBnbG9iYWwgaGFzaG1hcCB0byB0aGUgbWFw
IG93bmVkIGJ5IHRoaXMgY29udGV4dC4KKyAgICBTaEJ1aWx0SW5SZXNvdXJjZXMgQU5HTEVSZXNv
dXJjZXMgPSBtX2NvbXBpbGVyLmdldFJlc291cmNlcygpOworICAgIFNoSGFzaEZ1bmN0aW9uNjQg
cHJldmlvdXNIYXNoRnVuY3Rpb24gPSBBTkdMRVJlc291cmNlcy5IYXNoRnVuY3Rpb247CisgICAg
QU5HTEVSZXNvdXJjZXMuSGFzaEZ1bmN0aW9uID0gbmFtZUhhc2hGb3JTaGFkZXI7CisKKyAgICBp
ZiAoIW5hbWVIYXNoTWFwRm9yU2hhZGVycykKKyAgICAgICAgbmFtZUhhc2hNYXBGb3JTaGFkZXJz
ID0gYWRvcHRQdHIobmV3IFNoYWRlck5hbWVIYXNoKTsKKyAgICBjdXJyZW50TmFtZUhhc2hNYXBG
b3JTaGFkZXIgPSBuYW1lSGFzaE1hcEZvclNoYWRlcnMuZ2V0KCk7CisgICAgbV9jb21waWxlci5z
ZXRSZXNvdXJjZXMoQU5HTEVSZXNvdXJjZXMpOworCiAgICAgU3RyaW5nIHRyYW5zbGF0ZWRTaGFk
ZXJTb3VyY2UgPSBtX2V4dGVuc2lvbnMtPmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShz
aGFkZXIpOwogCisgICAgQU5HTEVSZXNvdXJjZXMuSGFzaEZ1bmN0aW9uID0gcHJldmlvdXNIYXNo
RnVuY3Rpb247CisgICAgbV9jb21waWxlci5zZXRSZXNvdXJjZXMoQU5HTEVSZXNvdXJjZXMpOwor
ICAgIGN1cnJlbnROYW1lSGFzaE1hcEZvclNoYWRlciA9IG51bGxwdHI7CisKICAgICBpZiAoIXRy
YW5zbGF0ZWRTaGFkZXJTb3VyY2UubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNv
bnN0IENTdHJpbmcmIHRyYW5zbGF0ZWRTaGFkZXJDU3RyaW5nID0gdHJhbnNsYXRlZFNoYWRlclNv
dXJjZS51dGY4KCk7CiAgICAgY29uc3QgY2hhciogdHJhbnNsYXRlZFNoYWRlclB0ciA9IHRyYW5z
bGF0ZWRTaGFkZXJDU3RyaW5nLmRhdGEoKTsKICAgICBpbnQgdHJhbnNsYXRlZFNoYWRlckxlbmd0
aCA9IHRyYW5zbGF0ZWRTaGFkZXJDU3RyaW5nLmxlbmd0aCgpOwotICAgIAorCisgICAgTE9HKFdl
YkdMLCAiLS0tIGJlZ2luIG9yaWdpbmFsIHNoYWRlciBzb3VyY2UgLS0tXG4lc1xuLS0tIGVuZCBv
cmlnaW5hbCBzaGFkZXIgc291cmNlIC0tLVxuIiwgZ2V0U2hhZGVyU291cmNlKHNoYWRlcikudXRm
OCgpLmRhdGEoKSk7CisgICAgTE9HKFdlYkdMLCAiLS0tIGJlZ2luIHRyYW5zbGF0ZWQgc2hhZGVy
IHNvdXJjZSAtLS1cbiVzXG4tLS0gZW5kIHRyYW5zbGF0ZWQgc2hhZGVyIHNvdXJjZSAtLS0iLCB0
cmFuc2xhdGVkU2hhZGVyUHRyKTsKKwogICAgIDo6Z2xTaGFkZXJTb3VyY2Uoc2hhZGVyLCAxLCAm
dHJhbnNsYXRlZFNoYWRlclB0ciwgJnRyYW5zbGF0ZWRTaGFkZXJMZW5ndGgpOwogICAgIAogICAg
IDo6Z2xDb21waWxlU2hhZGVyKHNoYWRlcik7CkBAIC00NjAsMzIgKzUxMywyOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQog
ICAgIAogICAgIDo6Z2xHZXRTaGFkZXJpdihzaGFkZXIsIENPTVBJTEVfU1RBVFVTLCAmR0xDb21w
aWxlU3VjY2Vzcyk7CiAKKyAgICBTaGFkZXJTb3VyY2VNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IG1f
c2hhZGVyU291cmNlTWFwLmZpbmQoc2hhZGVyKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRDo6U2hh
ZGVyU291cmNlRW50cnkmIGVudHJ5ID0gcmVzdWx0LT52YWx1ZTsKKwogICAgIC8vIFBvcHVsYXRl
IHRoZSBzaGFkZXIgbG9nCiAgICAgR0xpbnQgbGVuZ3RoID0gMDsKICAgICA6OmdsR2V0U2hhZGVy
aXYoc2hhZGVyLCBHTF9JTkZPX0xPR19MRU5HVEgsICZsZW5ndGgpOwogCiAgICAgaWYgKGxlbmd0
aCkgewotICAgICAgICBTaGFkZXJTb3VyY2VNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IG1fc2hhZGVy
U291cmNlTWFwLmZpbmQoc2hhZGVyKTsKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OlNoYWRl
clNvdXJjZUVudHJ5JiBlbnRyeSA9IHJlc3VsdC0+dmFsdWU7Ci0KICAgICAgICAgR0xzaXplaSBz
aXplID0gMDsKICAgICAgICAgYXV0byBpbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxHTGNoYXJbXT4o
bGVuZ3RoKTsKICAgICAgICAgOjpnbEdldFNoYWRlckluZm9Mb2coc2hhZGVyLCBsZW5ndGgsICZz
aXplLCBpbmZvLmdldCgpKTsKIAogICAgICAgICBlbnRyeS5sb2cgPSBpbmZvLmdldCgpOwotCi0g
ICAgICAgIGlmIChHTENvbXBpbGVTdWNjZXNzICE9IEdMX1RSVUUpIHsKLSAgICAgICAgICAgIGVu
dHJ5LmlzVmFsaWQgPSBmYWxzZTsKLSAgICAgICAgICAgIExPRyhXZWJHTCwgIkVycm9yOiBzaGFk
ZXIgdHJhbnNsYXRvciBwcm9kdWNlZCBhIHNoYWRlciB0aGF0IE9wZW5HTCB3b3VsZCBub3QgY29t
cGlsZS4iKTsKLSAgICAgICAgICAgIExPRyhXZWJHTCwgIi0tLSBiZWdpbiBvcmlnaW5hbCBzaGFk
ZXIgc291cmNlIC0tLVxuJXNcbi0tLSBlbmQgb3JpZ2luYWwgc2hhZGVyIHNvdXJjZSAtLS1cbiIs
IGdldFNoYWRlclNvdXJjZShzaGFkZXIpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgTE9H
KFdlYkdMLCAiLS0tIGJlZ2luIHRyYW5zbGF0ZWQgc2hhZGVyIHNvdXJjZSAtLS1cbiVzXG4tLS0g
ZW5kIHRyYW5zbGF0ZWQgc2hhZGVyIHNvdXJjZSAtLS0iLCB0cmFuc2xhdGVkU2hhZGVyUHRyKTsK
LSAgICAgICAgfQogICAgIH0KLSAgICAKKworICAgIGlmIChHTENvbXBpbGVTdWNjZXNzICE9IEdM
X1RSVUUpIHsKKyAgICAgICAgZW50cnkuaXNWYWxpZCA9IGZhbHNlOworICAgICAgICBMT0coV2Vi
R0wsICJFcnJvcjogc2hhZGVyIHRyYW5zbGF0b3IgcHJvZHVjZWQgYSBzaGFkZXIgdGhhdCBPcGVu
R0wgd291bGQgbm90IGNvbXBpbGUuIik7CiAjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkgJiYgIWRl
ZmluZWQoTkRFQlVHKQotICAgIGlmIChHTENvbXBpbGVTdWNjZXNzICE9IEdMX1RSVUUpCiAgICAg
ICAgIEJCTE9HKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpMb2dMZXZlbFdhcm4sICJUaGUgc2hhZGVy
IHZhbGlkYXRlZCwgYnV0IGRpZG4ndCBjb21waWxlLlxuIik7CiAjZW5kaWYKKyAgICB9CiB9CiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RpbnQgeCwgR0MzRGlu
dCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212490</attachid>
            <date>2013-09-24 12:37:08 -0700</date>
            <delta_ts>2013-09-24 12:39:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121849-20130924123708.patch</filename>
            <type>text/plain</type>
            <size>8280</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTYzOTEyMWI1ZGJmYjI3
MzY5Njc5M2Y1YWIxM2M4ZmMwODg4YzJjYy4uOGQ1ZmJkMjYwNDZlZGQ3NDY5MzlkOWE5N2U4MGVj
YWYyNTNlYjdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEzLTA5LTI0ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAorICAgICAgICBJbXBsZW1lbnQgc3ltYm9sIG5h
bWUgaGFzaGluZyBmb3IgV2ViR0wgc2hhZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVHVybiBvbiBBTkdMRSdzIHN5bWJvbCBuYW1lIG1hcHBpbmcg
Zm9yIHNoYWRlciBwcm9ncmFtcy4KKyAgICAgICAgVGhpcyBhdm9pZHMgY29tcGlsYXRpb24gZmFp
bHVyZXMgKG9yIHdvcnNlLCBjcmFzaGVycykKKyAgICAgICAgb24gc29tZSBoYXJkd2FyZSB0aGF0
IGRvZXNuJ3QgbGlrZSBpdCB3aGVuIHNoYWRlcnMgcmVkZWZpbmUKKyAgICAgICAgc3ltYm9scyBs
aWtlICJzaW4iLCBldmVuIHRob3VnaCB0aGF0IGlzIHZhbGlkLgorCisgICAgICAgIFRoZSB3YXkg
QU5HTEUgZXhwb3NlcyB0aGlzIGlzIHZpYSBzZXR0aW5nIGEgcG9pbnRlcgorICAgICAgICB0byBh
IGNoYXIqIC0+IHVpbnQ2NF90IGhhc2ggZnVuY3Rpb24uIFNpbmNlIHdlIG9ubHkgaGF2ZQorICAg
ICAgICBhIDMyLWJpdCBoYXNoIGluIFdlYktpdCwgSSBjb21iaW5lIHRoZSAzMi1iaXQgdmFsdWUg
d2l0aAorICAgICAgICBhIGNvdW50ZXIgdmFsdWUgdGhhdCBleGlzdHMgb3ZlciB0aGUgbGlmZXRp
bWUgb2YgYSBHQzNEIGNvbnRleHQuCisgICAgICAgIEJlZm9yZSBjYWxsaW5nIEFOR0xFLCBJIHBv
aW50IHRoZSBnbG9iYWwgaGFzaCBtYXAgdG8gdGhlIGxvY2FsCisgICAgICAgIGhhc2ggbWFwLCBh
bmQgdGhlbiBjbGVhbiB1cCBhZnRlciB3ZSdyZSBkb25lLiBUaGlzIGludHJvZHVjZXMKKyAgICAg
ICAgYSBtZW1vcnkgaGl0LCBpbiB0aGF0IHRoZSBzeW1ib2wgdGFibGUgd2lsbCBidWlsZCB1cCB1
bnRpbAorICAgICAgICB0aGUgY29udGV4dCBpcyByZWxlYXNlZC4KKworICAgICAgICBDb3ZlcmVk
IGJ5IEtocm9ub3MgV2ViR0wgdGVzdHMsIGluY2x1ZGluZworICAgICAgICBjb25mb3JtYW5jZS9n
bHNsL21pc2Mvc2hhZGVyLXdpdGgtbm9uLXJlc2VydmVkLXdvcmRzLmh0bWwKKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6IERlZmluZSBhIFNoYWRlck5h
bWVIYXNoIHR5cGUsCisgICAgICAgIGFuZCBhZGQgYW4gT3duUHRyIHRvIG9uZSBhcyBhIG1lbWJl
ciB2YXJpYWJsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmFtZUhhc2hGb3JT
aGFkZXIpOiBHbG9iYWwgZnVuY3Rpb24gdXNlZCBmb3IgQU5HTEUgaGFzaGluZy4KKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjb21waWxlU2hhZGVyKTogU2V0IHVwIHRoZSBB
TkdMRSBwcm9wZXJ0aWVzLAorICAgICAgICBwb2ludCB0byB0aGUgbG9jYWwgaGFzaCBtYXAsIGFu
ZCBjYWxsIGNvbXBpbGUvdHJhbnNsYXRlLgorCisyMDEzLTA5LTI0ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KKwogICAgICAgICBVc2UgbWFwcGVkIG5hbWUgaW4gYXR0cmlidXRlIGxv
Y2F0aW9uIGJpbmRpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMTg0NwogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTUwNjc1MjY+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApp
bmRleCA5ODU0ZWEzZGQwZWQ2ZTVlZmZhOTFiMTEzNzBhOGRjZjBjMTk2NGYwLi43YTU4YjU4YzFk
YjlmNzM5YjhkOWUzNDU4MWQ1OWYwMjI0NjZmOWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKQEAgLTEwOCw2ICsxMDgs
OCBAQCBjbGFzcyBQbGF0Zm9ybUNvbnRleHRDYWlybzsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsK
ICNlbmRpZgogCit0eXBlZGVmIFdURjo6SGFzaE1hcDxDU3RyaW5nLCB1aW50NjRfdD4gU2hhZGVy
TmFtZUhhc2g7CisKIHN0cnVjdCBBY3RpdmVJbmZvIHsKICAgICBTdHJpbmcgbmFtZTsKICAgICBH
QzNEZW51bSB0eXBlOwpAQCAtMTAyNCw2ICsxMDI2LDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcg
b3JpZ2luYWxTeW1ib2xOYW1lKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgQU5HTEVTaGFkZXJT
eW1ib2xUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCiAgICAgQU5HTEVXZWJLaXRCcmlkZ2Ug
bV9jb21waWxlcjsKKworICAgIE93blB0cjxTaGFkZXJOYW1lSGFzaD4gbmFtZUhhc2hNYXBGb3JT
aGFkZXJzOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShCTEFDS0JFUlJZKSB8fCAoUExBVEZPUk0o
UVQpICYmIGRlZmluZWQoUVRfT1BFTkdMX0VTXzIpKSB8fCAoKFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oRUZMKSB8fCBQTEFURk9STShXSU4pKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggMDUzYzUyM2Zm
YWIzYTE5NTUxMDBkNzhlNzA5OGJjZmM3M2ZmYjI5YS4uZGEyMGFhNDlkOWZhODM1Y2RiMGE2YjI4
MDkzYjNkNDI4Y2Q0ZTY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0xDb21tb24uY3BwCkBAIC02Nyw2ICs2Nyw0MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K3N0YXRpYyBTaGFkZXJOYW1lSGFzaCogY3VycmVudE5hbWVIYXNoTWFwRm9yU2hhZGVyOworCisv
LyBIYXNoIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIEFOR0xFIHRyYW5zbGF0b3IvY29tcGlsZXIgdG8g
ZG8KKy8vIHN5bWJvbCBuYW1lIG1hbmdsaW5nLiBTaW5jZSB0aGlzIGlzIGEgc3RhdGljIG1ldGhv
ZCwgYmVmb3JlCisvLyBjYWxsaW5nIGNvbXBpbGVTaGFkZXIgd2Ugc2V0IGN1cnJlbnROYW1lSGFz
aE1hcEZvclNoYWRlcgorLy8gdG8gcG9pbnQgdG8gdGhlIG1hcCBrZXB0IGJ5IHRoZSBjdXJyZW50
IGluc3RhbmNlIG9mIEdyYXBoaWNzQ29udGV4dDNELgorCitzdGF0aWMgdWludDY0X3QgbmFtZUhh
c2hGb3JTaGFkZXIoY29uc3QgY2hhciogbmFtZSwgc2l6ZV90IGxlbmd0aCkKK3sKKyAgICBpZiAo
IWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBDU3RyaW5nIG5hbWVBc0NTdHJpbmcg
PSBDU3RyaW5nKG5hbWUpOworCisgICAgLy8gTG9vayB1cCBuYW1lIGluIG91ciBsb2NhbCBtYXAu
CisgICAgaWYgKGN1cnJlbnROYW1lSGFzaE1hcEZvclNoYWRlcikgeworICAgICAgICBTaGFkZXJO
YW1lSGFzaDo6aXRlcmF0b3IgcmVzdWx0ID0gY3VycmVudE5hbWVIYXNoTWFwRm9yU2hhZGVyLT5m
aW5kKG5hbWVBc0NTdHJpbmcpOworICAgICAgICBpZiAocmVzdWx0ICE9IGN1cnJlbnROYW1lSGFz
aE1hcEZvclNoYWRlci0+ZW5kKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LT52YWx1ZTsK
KyAgICB9CisKKyAgICB1bnNpZ25lZCBoYXNoVmFsdWUgPSBuYW1lQXNDU3RyaW5nLmhhc2goKTsK
KworICAgIC8vIENvbnZlcnQgdGhlIDMyLWJpdCBoYXNoIGZyb20gQ1N0cmluZzo6aGFzaCBpbnRv
IGEgNjQtYml0IHJlc3VsdAorICAgIC8vIGJ5IHNoaWZ0aW5nIHRoZW4gYWRkaW5nIHRoZSBzaXpl
IG9mIG91ciB0YWJsZS4gT3ZlcmZsb3cgd291bGQKKyAgICAvLyBvbmx5IGJlIGEgcHJvYmxlbSBp
ZiB3ZSdyZSBhbHJlYWR5IGhhc2hpbmcgdG8gdGhlIHNhbWUgdmFsdWUgKGFuZAorICAgIC8vIHdl
J3JlIGhvcGluZyB0aGF0IG92ZXIgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb250ZXh0IHdlCisgICAg
Ly8gZG9uJ3QgaGF2ZSB0aGF0IG1hbnkgc3ltYm9scykuCisKKyAgICB1aW50NjRfdCByZXN1bHQg
PSBoYXNoVmFsdWU7CisgICAgcmVzdWx0ID0gKHJlc3VsdCA8PCAzMikgKyAoY3VycmVudE5hbWVI
YXNoTWFwRm9yU2hhZGVyLT5zaXplKCkgKyAxKTsKKworICAgIGN1cnJlbnROYW1lSGFzaE1hcEZv
clNoYWRlci0+c2V0KG5hbWVBc0NTdHJpbmcsIHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKwogUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNy
ZWF0ZUZvckN1cnJlbnRHTENvbnRleHQoKQogewogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQz
RD4gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHQzRChBdHRyaWJ1dGVzKCks
IDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJUb0N1cnJlbnRHTENvbnRleHQpKTsKQEAgLTQ0
MywxNSArNDc5LDMzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvbXBpbGVTaGFkZXIoUGxh
dGZvcm0zRE9iamVjdCBzaGFkZXIpCiAgICAgQVNTRVJUKHNoYWRlcik7CiAgICAgbWFrZUNvbnRl
eHRDdXJyZW50KCk7CiAKKyAgICAvLyBUdXJuIG9uIG5hbWUgbWFwcGluZy4gRHVlIHRvIHRoZSB3
YXkgQU5HTEUgbmFtZSBoYXNoaW5nIHdvcmtzLCB3ZQorICAgIC8vIHBvaW50IGEgZ2xvYmFsIGhh
c2htYXAgdG8gdGhlIG1hcCBvd25lZCBieSB0aGlzIGNvbnRleHQuCisgICAgU2hCdWlsdEluUmVz
b3VyY2VzIEFOR0xFUmVzb3VyY2VzID0gbV9jb21waWxlci5nZXRSZXNvdXJjZXMoKTsKKyAgICBT
aEhhc2hGdW5jdGlvbjY0IHByZXZpb3VzSGFzaEZ1bmN0aW9uID0gQU5HTEVSZXNvdXJjZXMuSGFz
aEZ1bmN0aW9uOworICAgIEFOR0xFUmVzb3VyY2VzLkhhc2hGdW5jdGlvbiA9IG5hbWVIYXNoRm9y
U2hhZGVyOworCisgICAgaWYgKCFuYW1lSGFzaE1hcEZvclNoYWRlcnMpCisgICAgICAgIG5hbWVI
YXNoTWFwRm9yU2hhZGVycyA9IGFkb3B0UHRyKG5ldyBTaGFkZXJOYW1lSGFzaCk7CisgICAgY3Vy
cmVudE5hbWVIYXNoTWFwRm9yU2hhZGVyID0gbmFtZUhhc2hNYXBGb3JTaGFkZXJzLmdldCgpOwor
ICAgIG1fY29tcGlsZXIuc2V0UmVzb3VyY2VzKEFOR0xFUmVzb3VyY2VzKTsKKwogICAgIFN0cmlu
ZyB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gbV9leHRlbnNpb25zLT5nZXRUcmFuc2xhdGVkU2hh
ZGVyU291cmNlQU5HTEUoc2hhZGVyKTsKIAorICAgIEFOR0xFUmVzb3VyY2VzLkhhc2hGdW5jdGlv
biA9IHByZXZpb3VzSGFzaEZ1bmN0aW9uOworICAgIG1fY29tcGlsZXIuc2V0UmVzb3VyY2VzKEFO
R0xFUmVzb3VyY2VzKTsKKyAgICBjdXJyZW50TmFtZUhhc2hNYXBGb3JTaGFkZXIgPSBudWxscHRy
OworCiAgICAgaWYgKCF0cmFuc2xhdGVkU2hhZGVyU291cmNlLmxlbmd0aCgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBjb25zdCBDU3RyaW5nJiB0cmFuc2xhdGVkU2hhZGVyQ1N0cmluZyA9IHRy
YW5zbGF0ZWRTaGFkZXJTb3VyY2UudXRmOCgpOwogICAgIGNvbnN0IGNoYXIqIHRyYW5zbGF0ZWRT
aGFkZXJQdHIgPSB0cmFuc2xhdGVkU2hhZGVyQ1N0cmluZy5kYXRhKCk7CiAgICAgaW50IHRyYW5z
bGF0ZWRTaGFkZXJMZW5ndGggPSB0cmFuc2xhdGVkU2hhZGVyQ1N0cmluZy5sZW5ndGgoKTsKLSAg
ICAKKworICAgIExPRyhXZWJHTCwgIi0tLSBiZWdpbiBvcmlnaW5hbCBzaGFkZXIgc291cmNlIC0t
LVxuJXNcbi0tLSBlbmQgb3JpZ2luYWwgc2hhZGVyIHNvdXJjZSAtLS1cbiIsIGdldFNoYWRlclNv
dXJjZShzaGFkZXIpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhXZWJHTCwgIi0tLSBiZWdpbiB0
cmFuc2xhdGVkIHNoYWRlciBzb3VyY2UgLS0tXG4lc1xuLS0tIGVuZCB0cmFuc2xhdGVkIHNoYWRl
ciBzb3VyY2UgLS0tIiwgdHJhbnNsYXRlZFNoYWRlclB0cik7CisKICAgICA6OmdsU2hhZGVyU291
cmNlKHNoYWRlciwgMSwgJnRyYW5zbGF0ZWRTaGFkZXJQdHIsICZ0cmFuc2xhdGVkU2hhZGVyTGVu
Z3RoKTsKICAgICAKICAgICA6OmdsQ29tcGlsZVNoYWRlcihzaGFkZXIpOwpAQCAtNDYwLDMyICs1
MTQsMjggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29tcGlsZVNoYWRlcihQbGF0Zm9ybTNE
T2JqZWN0IHNoYWRlcikKICAgICAKICAgICA6OmdsR2V0U2hhZGVyaXYoc2hhZGVyLCBDT01QSUxF
X1NUQVRVUywgJkdMQ29tcGlsZVN1Y2Nlc3MpOwogCisgICAgU2hhZGVyU291cmNlTWFwOjppdGVy
YXRvciByZXN1bHQgPSBtX3NoYWRlclNvdXJjZU1hcC5maW5kKHNoYWRlcik7CisgICAgR3JhcGhp
Y3NDb250ZXh0M0Q6OlNoYWRlclNvdXJjZUVudHJ5JiBlbnRyeSA9IHJlc3VsdC0+dmFsdWU7CisK
ICAgICAvLyBQb3B1bGF0ZSB0aGUgc2hhZGVyIGxvZwogICAgIEdMaW50IGxlbmd0aCA9IDA7CiAg
ICAgOjpnbEdldFNoYWRlcml2KHNoYWRlciwgR0xfSU5GT19MT0dfTEVOR1RILCAmbGVuZ3RoKTsK
IAogICAgIGlmIChsZW5ndGgpIHsKLSAgICAgICAgU2hhZGVyU291cmNlTWFwOjppdGVyYXRvciBy
ZXN1bHQgPSBtX3NoYWRlclNvdXJjZU1hcC5maW5kKHNoYWRlcik7Ci0gICAgICAgIEdyYXBoaWNz
Q29udGV4dDNEOjpTaGFkZXJTb3VyY2VFbnRyeSYgZW50cnkgPSByZXN1bHQtPnZhbHVlOwotCiAg
ICAgICAgIEdMc2l6ZWkgc2l6ZSA9IDA7CiAgICAgICAgIGF1dG8gaW5mbyA9IHN0ZDo6bWFrZV91
bmlxdWU8R0xjaGFyW10+KGxlbmd0aCk7CiAgICAgICAgIDo6Z2xHZXRTaGFkZXJJbmZvTG9nKHNo
YWRlciwgbGVuZ3RoLCAmc2l6ZSwgaW5mby5nZXQoKSk7CiAKICAgICAgICAgZW50cnkubG9nID0g
aW5mby5nZXQoKTsKLQotICAgICAgICBpZiAoR0xDb21waWxlU3VjY2VzcyAhPSBHTF9UUlVFKSB7
Ci0gICAgICAgICAgICBlbnRyeS5pc1ZhbGlkID0gZmFsc2U7Ci0gICAgICAgICAgICBMT0coV2Vi
R0wsICJFcnJvcjogc2hhZGVyIHRyYW5zbGF0b3IgcHJvZHVjZWQgYSBzaGFkZXIgdGhhdCBPcGVu
R0wgd291bGQgbm90IGNvbXBpbGUuIik7Ci0gICAgICAgICAgICBMT0coV2ViR0wsICItLS0gYmVn
aW4gb3JpZ2luYWwgc2hhZGVyIHNvdXJjZSAtLS1cbiVzXG4tLS0gZW5kIG9yaWdpbmFsIHNoYWRl
ciBzb3VyY2UgLS0tXG4iLCBnZXRTaGFkZXJTb3VyY2Uoc2hhZGVyKS51dGY4KCkuZGF0YSgpKTsK
LSAgICAgICAgICAgIExPRyhXZWJHTCwgIi0tLSBiZWdpbiB0cmFuc2xhdGVkIHNoYWRlciBzb3Vy
Y2UgLS0tXG4lc1xuLS0tIGVuZCB0cmFuc2xhdGVkIHNoYWRlciBzb3VyY2UgLS0tIiwgdHJhbnNs
YXRlZFNoYWRlclB0cik7Ci0gICAgICAgIH0KICAgICB9Ci0gICAgCisKKyAgICBpZiAoR0xDb21w
aWxlU3VjY2VzcyAhPSBHTF9UUlVFKSB7CisgICAgICAgIGVudHJ5LmlzVmFsaWQgPSBmYWxzZTsK
KyAgICAgICAgTE9HKFdlYkdMLCAiRXJyb3I6IHNoYWRlciB0cmFuc2xhdG9yIHByb2R1Y2VkIGEg
c2hhZGVyIHRoYXQgT3BlbkdMIHdvdWxkIG5vdCBjb21waWxlLiIpOwogI2lmIFBMQVRGT1JNKEJM
QUNLQkVSUlkpICYmICFkZWZpbmVkKE5ERUJVRykKLSAgICBpZiAoR0xDb21waWxlU3VjY2VzcyAh
PSBHTF9UUlVFKQogICAgICAgICBCQkxPRyhCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TG9nTGV2ZWxX
YXJuLCAiVGhlIHNoYWRlciB2YWxpZGF0ZWQsIGJ1dCBkaWRuJ3QgY29tcGlsZS5cbiIpOwogI2Vu
ZGlmCisgICAgfQogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjb3B5VGV4SW1hZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBH
QzNEaW50IGJvcmRlcikK
</data>
<flag name="review"
          id="234728"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>