<?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>122486</bug_id>
          
          <creation_ts>2013-10-07 21:59:47 -0700</creation_ts>
          <short_desc>Video -&gt; pixel buffer output should not manage color spaces</short_desc>
          <delta_ts>2013-10-08 13:33:30 -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>Media</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>937368</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-07 21:59:47 -0700</bug_when>
    <thetext>Pixel output from video (drawn into a canvas or uploaded to WebGL) should not attempt to manage the color space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937369</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-10-07 22:00:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/15172914&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937372</commentid>
    <comment_count>2</comment_count>
      <attachid>213653</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-07 22:06:22 -0700</bug_when>
    <thetext>Created attachment 213653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937377</commentid>
    <comment_count>3</comment_count>
      <attachid>213653</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-07 22:21:58 -0700</bug_when>
    <thetext>Comment on attachment 213653
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:866
&gt; +    RetainPtr&lt;CGImageRef&gt; image = adoptCF(CGImageCreateCopyWithColorSpace(rawImage, CGColorSpaceCreateDeviceRGB()));

You&apos;re leaking the colorspace I think?

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:1284
&gt; +        static CGColorSpaceRef deviceRGB = CGColorSpaceCreateDeviceRGB();

Wat. Maybe use deviceColorSpaceRef() in both of these places instead and avoid the leak/unnecessary static :D (you may have to include GraphicsContextCG.h, but that&apos;s definitely OK in this file).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937378</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-07 22:24:05 -0700</bug_when>
    <thetext>As a more general comment... what if the video is legitimately tagged with an unusual color space? Can you only do this retagging if the video&apos;s current colorspace == the &quot;default&quot; (GenericRGB I think you said today?). Similar to what imageWithColorSpace does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937609</commentid>
    <comment_count>5</comment_count>
      <attachid>213703</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-08 11:45:16 -0700</bug_when>
    <thetext>Created attachment 213703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937611</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-08 11:56:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; As a more general comment... what if the video is legitimately tagged with an unusual color space? Can you only do this retagging if the video&apos;s current colorspace == the &quot;default&quot; (GenericRGB I think you said today?). Similar to what imageWithColorSpace does.

I think we&apos;ll produce incorrect results in that case, but that&apos;s better than now, where we are producing incorrect results in every case.

The good news is that video elements should still display correctly. This is only affecting pixel reads from video.

My possibly incorrect hope is that if we move the engine to sRGB, then this code could probably be removed. The problem at the moment is that the pixels are being interpreted as sRGB but then lose that information (either when drawn into a canvas or uploaded to the GPU directly).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937612</commentid>
    <comment_count>7</comment_count>
      <attachid>213704</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-08 11:59:01 -0700</bug_when>
    <thetext>Created attachment 213704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937626</commentid>
    <comment_count>8</comment_count>
      <attachid>213704</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-08 12:49:23 -0700</bug_when>
    <thetext>Comment on attachment 213704
Patch

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

Indeed, hopefully this will all get cleaned up in the near future. r+ if one of the media folks agree for now.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:866
&gt; +    CGImageRef rawImage = [m_imageGenerator.get() copyCGImageAtTime:CMTimeMakeWithSeconds(time, 600) actualTime:nil error:nil];

Vaguely intrigued why this isn&apos;t a retainptr too but there&apos;s really no reason for it to be!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937632</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-10-08 13:01:02 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 213704 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=213704&amp;action=review
&gt; 
&gt; Indeed, hopefully this will all get cleaned up in the near future. r+ if one of the media folks agree for now.

I&apos;m fine with it, though I&apos;d prefer to wrap the bare pointers with RetainPtrs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937640</commentid>
    <comment_count>10</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-08 13:14:12 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 213704 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=213704&amp;action=review
&gt; &gt; 
&gt; &gt; Indeed, hopefully this will all get cleaned up in the near future. r+ if one of the media folks agree for now.
&gt; 
&gt; I&apos;m fine with it, though I&apos;d prefer to wrap the bare pointers with RetainPtrs.

I&apos;ll do that, but it seems like extra work in this case, or at least extra code.

- add RetainPtr&lt;CGImageRef&gt; over just CGImageRef
- add adoptCF
- add .get()
- remove CGImageRelease</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937654</commentid>
    <comment_count>11</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-08 13:33:30 -0700</bug_when>
    <thetext>Committed r157133: &lt;http://trac.webkit.org/changeset/157133&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213653</attachid>
            <date>2013-10-07 22:06:22 -0700</date>
            <delta_ts>2013-10-08 11:45:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122486-20131008160621.patch</filename>
            <type>text/plain</type>
            <size>8298</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3MDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRiYTc2ZGM5MDFmY2I1
OWYwMDg4YWNjNzI0MDdjMzM0NWUzNjFkYS4uMjRkNDMyNjc4NjQ3N2NiYzhlZTI0NzdhZWQ4MmNh
MjgyZDI2ZWI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTEwLTA3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyAtPiBwaXhlbCBidWZm
ZXIgb3V0cHV0IHNob3VsZCBub3QgbWFuYWdlIGNvbG9yIHNwYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNDg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT24gTWFjLCB3aGVuIHdlIGRyYXcgYSB2
aWRlbyBpbnRvIGEgY2FudmFzIG9yIFdlYkdMLCB0aGUKKyAgICAgICAgb3V0cHV0IG9mIHRoZSB2
aWRlbyBzaG91bGQgbm90IGJlIGNvbG9yIG1hbmFnZWQuIEluc3RlYWQsIGxlYXZlIGl0CisgICAg
ICAgIGFzIERldmljZVJHQiBzbyB0aGF0IGl0IG1hdGNoZXMgb3RoZXIgY29sb3JzIGluIHRob3Nl
IGVsZW1lbnRzLgorICAgICAgICBXZSdsbCBob3BlZnVsbHkgc29sdmUgdGhpcyBwcm9wZXJseSBz
b29uIC0gbWFraW5nIGV2ZXJ5dGhpbmcgc1JHQi4KKworICAgICAgICBUZXN0OiBtZWRpYS92aWRl
by1jYW52YXMtZHJhd2luZy1vdXRwdXQuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmNyZWF0ZUltYWdlRm9yVGltZUluUmVjdCk6IFBhc3Mgb24KKyAgICAgICAgYSBDR0ltYWdlUmVm
IHZpYSBDR0ltYWdlQ3JlYXRlQ29weVdpdGhDb2xvclNwYWNlIHJhdGhlciB0aGFuIHRoZSByYXcg
ZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KTogVGVsbCBDb3JlSW1hZ2UKKyAgICAgICAgdG8gYWxs
b2NhdGUgYSBwaXhlbCBidWZmZXIgdGhhdCBpcyB1bm1hbmFnZWQuCisKIDIwMTMtMTAtMDcgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gRHJhd2luZyB2
aWRlbyBpbnRvIGNhbnZhcyBkb2Vzbid0IHdvcmsgb24gdGhlIGZpcnN0IGF0dGVtcHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCmluZGV4IDhiZGQ0NTYyNTBmZTkzZjBkMDk3NDRkZTc5NTQzNjBjYzY5
ZGE4NjUuLmVhY2I0YjYwNWQxMGNiYzE1OTlkNWUwZTdiMjVlMGUzNGQzMTA4MWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQpAQCAtODYyLDcgKzg2Miw5IEBAIFJldGFpblB0cjxDR0ltYWdlUmVm
PiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJ
blJlCiAjZW5kaWYKIAogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldE1heGltdW1TaXpl
OkNHU2l6ZShyZWN0LnNpemUoKSldOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSA9
IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1hZ2VBdFRpbWU6Q01UaW1l
TWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0dWFsVGltZTpuaWwgZXJyb3I6bmlsXSk7Cisg
ICAgQ0dJbWFnZVJlZiByYXdJbWFnZSA9IFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0lt
YWdlQXRUaW1lOkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmls
IGVycm9yOm5pbF07CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gYWRvcHRDRihD
R0ltYWdlQ3JlYXRlQ29weVdpdGhDb2xvclNwYWNlKHJhd0ltYWdlLCBDR0NvbG9yU3BhY2VDcmVh
dGVEZXZpY2VSR0IoKSkpOworICAgIENHSW1hZ2VSZWxlYXNlKHJhd0ltYWdlKTsKIAogI2lmICFM
T0dfRElTQUJMRUQKICAgICBkb3VibGUgZHVyYXRpb24gPSBtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKSAtIHN0YXJ0OwpAQCAtMTI3OSw3ICsxMjgxLDggQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRl
eHQqIGMKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250
ZXh0KTsKICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRlKHJlY3QueCgpLCByZWN0LnkoKSArIHJl
Y3QuaGVpZ2h0KCkpOwogICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoMS4wZiwgLTEu
MGYpKTsKLSAgICAgICAgUmV0YWluUHRyPENJSW1hZ2U+IGltYWdlID0gYWRvcHROUyhbW0NJSW1h
Z2UgYWxsb2NdIGluaXRXaXRoQ1ZJbWFnZUJ1ZmZlcjptX2xhc3RJbWFnZS5nZXQoKV0pOworICAg
ICAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGRldmljZVJHQiA9IENHQ29sb3JTcGFjZUNyZWF0
ZURldmljZVJHQigpOworICAgICAgICBSZXRhaW5QdHI8Q0lJbWFnZT4gaW1hZ2UgPSBhZG9wdE5T
KFtbQ0lJbWFnZSBhbGxvY10gaW5pdFdpdGhDVkltYWdlQnVmZmVyOm1fbGFzdEltYWdlLmdldCgp
IG9wdGlvbnM6QHsga0NJSW1hZ2VDb2xvclNwYWNlIDogKGlkKWRldmljZVJHQiB9XSk7CiAKICAg
ICAgICAgLy8gY2lDb250ZXh0IGRvZXMgbm90IHVzZSBhIFJldGFpblB0ciBmb3IgcmVzdWx0cyBv
ZiBjb250ZXh0V2l0aENHQ29udGV4dDosIGFzIHRoZSByZXR1cm5lZCB2YWx1ZQogICAgICAgICAv
LyBpcyBhdXRvcmVsZWFzZWQsIGFuZCB0aGVyZSBpcyBubyBub24tYXV0b3JlbGVhc2VkIHZlcnNp
b24gb2YgdGhhdCBmdW5jdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmOGVkODE5YmQ4MTc2NTY2M2ZhNGJlMmZkYTQ5
ZGQyNjZlNzkxY2RjLi4wOWM1MTBkMzJjOThjNWI2ZDc3OTAzZGUzZTYwNTNkMWQxYjU5MGViIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMTAtMDcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgorCisgICAgICAgIFZpZGVvIC0+IHBpeGVsIGJ1ZmZlciBvdXRwdXQgc2hvdWxkIG5v
dCBtYW5hZ2UgY29sb3Igc3BhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjI0ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIG1lZGlhL3ZpZGVvLWNhbnZhcy1kcmF3aW5nLW91dHB1dC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWNhbnZhcy1kcmF3aW5nLW91dHB1
dC5odG1sOiBBZGRlZC4KKwogMjAxMy0xMC0wNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTWFjXSBEcmF3aW5nIHZpZGVvIGludG8gY2FudmFzIGRvZXNuJ3Qg
d29yayBvbiB0aGUgZmlyc3QgYXR0ZW1wdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
dmlkZW8tY2FudmFzLWRyYXdpbmctb3V0cHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLWNhbnZhcy1kcmF3aW5nLW91dHB1dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDY1YTllYzA1NWM0MDAwMWZjMDg1ZDUwOGZlNWE5NzBkMzcwZDlmYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNhbnZhcy1kcmF3aW5nLW91dHB1dC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxOSBAQAorRVZFTlQoY2FucGxheXRocm91Z2gpCitFVkVOVChzZWVr
ZWQpCitTYXcgY2xvc2UgZW5vdWdoIHRvICgxOTQsIDE5MywgMTQpIGF0ICg0MCwgMTY1KSBPSwor
U2F3IGNsb3NlIGVub3VnaCB0byAoMTcsIDE5NywgMTk1KSBhdCAoNTYsIDE2NSkgT0sKK1NhdyBj
bG9zZSBlbm91Z2ggdG8gKDIwLCAyMDAsIDE4KSBhdCAoNzMsIDE2NSkgT0sKK0VWRU5UKHNlZWtl
ZCkKK1NhdyBjbG9zZSBlbm91Z2ggdG8gKDE5NCwgMTkzLCAxNCkgYXQgKDQwLCAxNjUpIE9LCitT
YXcgY2xvc2UgZW5vdWdoIHRvICgxNywgMTk3LCAxOTUpIGF0ICg1NiwgMTY1KSBPSworU2F3IGNs
b3NlIGVub3VnaCB0byAoMjAsIDIwMCwgMTgpIGF0ICg3MywgMTY1KSBPSworRVZFTlQoc2Vla2Vk
KQorU2F3IGNsb3NlIGVub3VnaCB0byAoMTk0LCAxOTMsIDE0KSBhdCAoNDAsIDE2NSkgT0sKK1Nh
dyBjbG9zZSBlbm91Z2ggdG8gKDE3LCAxOTcsIDE5NSkgYXQgKDU2LCAxNjUpIE9LCitTYXcgY2xv
c2UgZW5vdWdoIHRvICgyMCwgMjAwLCAxOCkgYXQgKDczLCAxNjUpIE9LCitFVkVOVChzZWVrZWQp
CitTYXcgY2xvc2UgZW5vdWdoIHRvICgxOTQsIDE5MywgMTQpIGF0ICg0MCwgMTY1KSBPSworU2F3
IGNsb3NlIGVub3VnaCB0byAoMTcsIDE5NywgMTk1KSBhdCAoNTYsIDE2NSkgT0sKK1NhdyBjbG9z
ZSBlbm91Z2ggdG8gKDIwLCAyMDAsIDE4KSBhdCAoNzMsIDE2NSkgT0sKK0VORCBPRiBURVNUCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNhbnZhcy1kcmF3aW5nLW91dHB1
dC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY2FudmFzLWRyYXdpbmctb3V0cHV0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGFiZTQ5NmM4ZDM0MzA4OTcwMGVjZTNlYmQzZjI2Y2RkNDE4ZDI5Nwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNhbnZhcy1kcmF3aW5n
LW91dHB1dC5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8dGl0bGU+RHJhd2luZyB0byBjYW52YXMgdXNpbmcgdmlkZW88L3RpdGxlPgorICAgICAgICA8
c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgICAgdmFyIHZpZGVvOworICAgICAgICAgICAgdmFyIG51bWJlck9mU2Vla3MgPSA0Owor
CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRSZXN1bHRzID0gWworICAgICAgICAgICAgICAgIC8v
IFt4LCB5LCByLCBnLCBiXQorICAgICAgICAgICAgICAgIFs0MCwgMTY1LCAxOTQsIDE5MywgMTRd
LCAvLyB5ZWxsb3cKKyAgICAgICAgICAgICAgICBbNTYsIDE2NSwgMTcsIDE5NywgMTk1XSwgLy8g
Ymx1ZS9jeWFuCisgICAgICAgICAgICAgICAgWzczLCAxNjUsIDIwLCAyMDAsIDE4XSwgLy8gZ3Jl
ZW4KKyAgICAgICAgICAgIF07CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZnVuY3Rpb24gY2hlY2tDb2xvckF0TG9jYXRpb24oY3R4LCB4LCB5LCByLCBnLCBi
LCB0b2xlcmFuY2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9
IGN0eC5nZXRJbWFnZURhdGEoeCwgeSwgMSwgMSkuZGF0YTsKKyAgICAgICAgICAgICAgICBpZiAo
TWF0aC5hYnMoYnVmZmVyWzBdIC0gcikgPCB0b2xlcmFuY2UKKyAgICAgICAgICAgICAgICAgICAg
JiYgTWF0aC5hYnMoYnVmZmVyWzFdIC0gZykgPCB0b2xlcmFuY2UKKyAgICAgICAgICAgICAgICAg
ICAgJiYgTWF0aC5hYnMoYnVmZmVyWzJdIC0gYikgPCB0b2xlcmFuY2UpCisgICAgICAgICAgICAg
ICAgICAgIGxvZ1Jlc3VsdCh0cnVlLCAiU2F3IGNsb3NlIGVub3VnaCB0byAoIiArIHIgKyAiLCAi
ICsgZyArICIsICIgKyBiICsgIikgYXQgKCIgKyB4ICsgIiwgIiArIHkgKyAiKSIpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbG9nUmVzdWx0KGZhbHNlLCAiRXhw
ZWN0ZWQgKCIgKyByICsgIiwgIiArIGcgKyAiLCAiICsgYiArICIpIGF0ICgiICsgeCArICIsICIg
KyB5ICsgIikgYnV0IHNhdyAoIiArIGJ1ZmZlclswXSArICIsICIgKyBidWZmZXJbMV0gKyAiLCAi
ICsgYnVmZmVyWzJdICsgIikiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rp
b24gZHJhd0FuZEluc2VydEZyYW1lKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2
YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgICAgICAg
ICAgICAgY2FudmFzLndpZHRoID0gdmlkZW8udmlkZW9XaWR0aDsKKyAgICAgICAgICAgICAgICBj
YW52YXMuaGVpZ2h0ID0gdmlkZW8udmlkZW9IZWlnaHQ7CisgICAgICAgICAgICAgICAgdmFyIGN0
eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1h
Z2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbnZhc2VzJykuYXBwZW5kQ2hpbGQoY2Fu
dmFzKTsKKworICAgICAgICAgICAgICAgIC8vIFRoZSB0ZXN0IHZpZGVvIGhhcyBhIG51bWJlciBv
ZiBjb2xvcmVkIHNxdWFyZXMuCisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgYSBmZXcgb2YgdGhl
bS4KKyAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdHMuZm9yRWFjaChmdW5jdGlvbiAodmFs
dWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tDb2xvckF0TG9jYXRpb24oY3R4LCB2YWx1
ZVswXSwgdmFsdWVbMV0sIHZhbHVlWzJdLCB2YWx1ZVszXSwgdmFsdWVbNF0sIDIpOworICAgICAg
ICAgICAgICAgIH0pCisKKyAgICAgICAgICAgICAgICAvLyBTZWVrIGEgZmV3IHRpbWVzLiBXZSBl
eGVyY2lzZSBkaWZmZXJlbnQgY29kZSBwYXRocworICAgICAgICAgICAgICAgIC8vIGZvciB0aGUg
Zmlyc3QgZmV3IGFuZCB0aGVuIHN1YnNlcXVlbnQgZHJhd0ltYWdlIGNhbGxzLgorICAgICAgICAg
ICAgICAgIGlmICgtLW51bWJlck9mU2Vla3MpIHsKKyAgICAgICAgICAgICAgICAgICAgdmlkZW8u
Y3VycmVudFRpbWUgKz0gMC41OworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBjYW5wbGF5dGhyb3VnaCgpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgdmlkZW8uY3VycmVudFRpbWUgPSAxOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnY2Fu
cGxheXRocm91Z2gnLCBjYW5wbGF5dGhyb3VnaCk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2
ZW50KCdzZWVrZWQnLCBkcmF3QW5kSW5zZXJ0RnJhbWUpOworICAgICAgICAgICAgICAgIHZpZGVv
LnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJ2NvbnRlbnQvdGVzdCcpOworICAgICAgICAg
ICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5q
cz48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAg
ICAgICAgPHZpZGVvIGlkPSJ2aWRlbyI+PC92aWRlbz4KKyAgICAgICAgPGRpdiBpZD0iY2FudmFz
ZXMiPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213703</attachid>
            <date>2013-10-08 11:45:16 -0700</date>
            <delta_ts>2013-10-08 11:58:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122486-20131009054514.patch</filename>
            <type>text/plain</type>
            <size>8972</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3MDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRiYTc2ZGM5MDFmY2I1
OWYwMDg4YWNjNzI0MDdjMzM0NWUzNjFkYS4uMjRkNDMyNjc4NjQ3N2NiYzhlZTI0NzdhZWQ4MmNh
MjgyZDI2ZWI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTEwLTA3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyAtPiBwaXhlbCBidWZm
ZXIgb3V0cHV0IHNob3VsZCBub3QgbWFuYWdlIGNvbG9yIHNwYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNDg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT24gTWFjLCB3aGVuIHdlIGRyYXcgYSB2
aWRlbyBpbnRvIGEgY2FudmFzIG9yIFdlYkdMLCB0aGUKKyAgICAgICAgb3V0cHV0IG9mIHRoZSB2
aWRlbyBzaG91bGQgbm90IGJlIGNvbG9yIG1hbmFnZWQuIEluc3RlYWQsIGxlYXZlIGl0CisgICAg
ICAgIGFzIERldmljZVJHQiBzbyB0aGF0IGl0IG1hdGNoZXMgb3RoZXIgY29sb3JzIGluIHRob3Nl
IGVsZW1lbnRzLgorICAgICAgICBXZSdsbCBob3BlZnVsbHkgc29sdmUgdGhpcyBwcm9wZXJseSBz
b29uIC0gbWFraW5nIGV2ZXJ5dGhpbmcgc1JHQi4KKworICAgICAgICBUZXN0OiBtZWRpYS92aWRl
by1jYW52YXMtZHJhd2luZy1vdXRwdXQuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmNyZWF0ZUltYWdlRm9yVGltZUluUmVjdCk6IFBhc3Mgb24KKyAgICAgICAgYSBDR0ltYWdlUmVm
IHZpYSBDR0ltYWdlQ3JlYXRlQ29weVdpdGhDb2xvclNwYWNlIHJhdGhlciB0aGFuIHRoZSByYXcg
ZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KTogVGVsbCBDb3JlSW1hZ2UKKyAgICAgICAgdG8gYWxs
b2NhdGUgYSBwaXhlbCBidWZmZXIgdGhhdCBpcyB1bm1hbmFnZWQuCisKIDIwMTMtMTAtMDcgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gRHJhd2luZyB2
aWRlbyBpbnRvIGNhbnZhcyBkb2Vzbid0IHdvcmsgb24gdGhlIGZpcnN0IGF0dGVtcHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCmluZGV4IDhiZGQ0NTYyNTBmZTkzZjBkMDk3NDRkZTc5NTQzNjBjYzY5
ZGE4NjUuLjc1ZThmODU0Yjg0YzYwYmFhNWYxMjg3NDQzNGM5OWJhM2UwN2FmMzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQpAQCAtODYyLDcgKzg2MiwxMSBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1l
SW5SZQogI2VuZGlmCiAKICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRNYXhpbXVtU2l6
ZTpDR1NpemUocmVjdC5zaXplKCkpXTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2Ug
PSBhZG9wdENGKFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOkNNVGlt
ZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOwor
ICAgIENHSW1hZ2VSZWYgcmF3SW1hZ2UgPSBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJ
bWFnZUF0VGltZTpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxUaW1lOm5p
bCBlcnJvcjpuaWxdOworICAgIENHQ29sb3JTcGFjZVJlZiBkZXZpY2VSR0IgPSBDR0NvbG9yU3Bh
Y2VDcmVhdGVEZXZpY2VSR0IoKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBh
ZG9wdENGKENHSW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UsIGRldmljZVJH
QikpOworICAgIENHQ29sb3JTcGFjZVJlbGVhc2UoZGV2aWNlUkdCKTsKKyAgICBDR0ltYWdlUmVs
ZWFzZShyYXdJbWFnZSk7CiAKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgZG91YmxlIGR1cmF0aW9u
ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzdGFydDsKQEAgLTEyNzksNyArMTI4
Myw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRo
VmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0KiBjCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0
ZShyZWN0LngoKSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsKICAgICAgICAgY29udGV4dC0+
c2NhbGUoRmxvYXRTaXplKDEuMGYsIC0xLjBmKSk7Ci0gICAgICAgIFJldGFpblB0cjxDSUltYWdl
PiBpbWFnZSA9IGFkb3B0TlMoW1tDSUltYWdlIGFsbG9jXSBpbml0V2l0aENWSW1hZ2VCdWZmZXI6
bV9sYXN0SW1hZ2UuZ2V0KCldKTsKKyAgICAgICAgQ0dDb2xvclNwYWNlUmVmIGRldmljZVJHQiA9
IENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigpOworICAgICAgICBSZXRhaW5QdHI8Q0lJbWFn
ZT4gaW1hZ2UgPSBhZG9wdE5TKFtbQ0lJbWFnZSBhbGxvY10gaW5pdFdpdGhDVkltYWdlQnVmZmVy
Om1fbGFzdEltYWdlLmdldCgpIG9wdGlvbnM6QHsga0NJSW1hZ2VDb2xvclNwYWNlIDogKGlkKWRl
dmljZVJHQiB9XSk7CiAKICAgICAgICAgLy8gY2lDb250ZXh0IGRvZXMgbm90IHVzZSBhIFJldGFp
blB0ciBmb3IgcmVzdWx0cyBvZiBjb250ZXh0V2l0aENHQ29udGV4dDosIGFzIHRoZSByZXR1cm5l
ZCB2YWx1ZQogICAgICAgICAvLyBpcyBhdXRvcmVsZWFzZWQsIGFuZCB0aGVyZSBpcyBubyBub24t
YXV0b3JlbGVhc2VkIHZlcnNpb24gb2YgdGhhdCBmdW5jdGlvbi4KQEAgLTEyODcsNiArMTI5Miw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlk
ZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0KiBjCiAgICAgICAgIENHUmVjdCBvdXRwdXRSZWN0ID0g
eyBDR1BvaW50WmVybywgcmVjdC5zaXplKCkgfTsKICAgICAgICAgQ0dSZWN0IGltYWdlUmVjdCA9
IENHUmVjdE1ha2UoMCwgMCwgQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKG1fbGFzdEltYWdlLmdldCgp
KSwgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChtX2xhc3RJbWFnZS5nZXQoKSkpOwogICAgICAgICBb
Y2lDb250ZXh0IGRyYXdJbWFnZTppbWFnZS5nZXQoKSBpblJlY3Q6b3V0cHV0UmVjdCBmcm9tUmVj
dDppbWFnZVJlY3RdOworICAgICAgICBDR0NvbG9yU3BhY2VSZWxlYXNlKGRldmljZVJHQik7CiAK
ICAgICAgICAgLy8gSWYgd2UgaGF2ZSBjcmVhdGVkIGFuIEFWQXNzZXRJbWFnZUdlbmVyYXRvciBp
biB0aGUgcGFzdCBkdWUgdG8gbV92aWRlb091dHB1dCBub3QgaGF2aW5nIGFuIGF2YWlsYWJsZQog
ICAgICAgICAvLyB2aWRlbyBmcmFtZSwgZGVzdHJveSBpdCBub3cgdGhhdCBpdCBpcyBubyBsb25n
ZXIgbmVlZGVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGY4ZWQ4MTliZDgxNzY1NjYzZmE0YmUyZmRhNDlkZDI2NmU3OTFj
ZGMuLjA5YzUxMGQzMmM5OGM1YjZkNzc5MDNkZTNlNjA1M2QxZDFiNTkwZWIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxMy0xMC0wNyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisK
KyAgICAgICAgVmlkZW8gLT4gcGl4ZWwgYnVmZmVyIG91dHB1dCBzaG91bGQgbm90IG1hbmFnZSBj
b2xvciBzcGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMjQ4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogbWVkaWEvdmlkZW8tY2FudmFzLWRyYXdpbmctb3V0cHV0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogbWVkaWEvdmlkZW8tY2FudmFzLWRyYXdpbmctb3V0cHV0Lmh0bWw6IEFk
ZGVkLgorCiAyMDEzLTEwLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtNYWNdIERyYXdpbmcgdmlkZW8gaW50byBjYW52YXMgZG9lc24ndCB3b3JrIG9uIHRo
ZSBmaXJzdCBhdHRlbXB0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW52
YXMtZHJhd2luZy1vdXRwdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
Y2FudmFzLWRyYXdpbmctb3V0cHV0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjVhOWVjMDU1
YzQwMDAxZmMwODVkNTA4ZmU1YTk3MGQzNzBkOWZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tY2FudmFzLWRyYXdpbmctb3V0cHV0LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE5IEBACitFVkVOVChjYW5wbGF5dGhyb3VnaCkKK0VWRU5UKHNlZWtlZCkKK1NhdyBj
bG9zZSBlbm91Z2ggdG8gKDE5NCwgMTkzLCAxNCkgYXQgKDQwLCAxNjUpIE9LCitTYXcgY2xvc2Ug
ZW5vdWdoIHRvICgxNywgMTk3LCAxOTUpIGF0ICg1NiwgMTY1KSBPSworU2F3IGNsb3NlIGVub3Vn
aCB0byAoMjAsIDIwMCwgMTgpIGF0ICg3MywgMTY1KSBPSworRVZFTlQoc2Vla2VkKQorU2F3IGNs
b3NlIGVub3VnaCB0byAoMTk0LCAxOTMsIDE0KSBhdCAoNDAsIDE2NSkgT0sKK1NhdyBjbG9zZSBl
bm91Z2ggdG8gKDE3LCAxOTcsIDE5NSkgYXQgKDU2LCAxNjUpIE9LCitTYXcgY2xvc2UgZW5vdWdo
IHRvICgyMCwgMjAwLCAxOCkgYXQgKDczLCAxNjUpIE9LCitFVkVOVChzZWVrZWQpCitTYXcgY2xv
c2UgZW5vdWdoIHRvICgxOTQsIDE5MywgMTQpIGF0ICg0MCwgMTY1KSBPSworU2F3IGNsb3NlIGVu
b3VnaCB0byAoMTcsIDE5NywgMTk1KSBhdCAoNTYsIDE2NSkgT0sKK1NhdyBjbG9zZSBlbm91Z2gg
dG8gKDIwLCAyMDAsIDE4KSBhdCAoNzMsIDE2NSkgT0sKK0VWRU5UKHNlZWtlZCkKK1NhdyBjbG9z
ZSBlbm91Z2ggdG8gKDE5NCwgMTkzLCAxNCkgYXQgKDQwLCAxNjUpIE9LCitTYXcgY2xvc2UgZW5v
dWdoIHRvICgxNywgMTk3LCAxOTUpIGF0ICg1NiwgMTY1KSBPSworU2F3IGNsb3NlIGVub3VnaCB0
byAoMjAsIDIwMCwgMTgpIGF0ICg3MywgMTY1KSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY2FudmFzLWRyYXdpbmctb3V0cHV0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW52YXMtZHJhd2luZy1vdXRwdXQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40YWJlNDk2YzhkMzQzMDg5NzAwZWNlM2ViZDNmMjZjZGQ0MThkMjk3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY2FudmFzLWRyYXdpbmctb3V0cHV0Lmh0
bWwKQEAgLTAsMCArMSw3NiBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5E
cmF3aW5nIHRvIGNhbnZhcyB1c2luZyB2aWRlbzwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3Jj
PW1lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB2
YXIgdmlkZW87CisgICAgICAgICAgICB2YXIgbnVtYmVyT2ZTZWVrcyA9IDQ7CisKKyAgICAgICAg
ICAgIHZhciBleHBlY3RlZFJlc3VsdHMgPSBbCisgICAgICAgICAgICAgICAgLy8gW3gsIHksIHIs
IGcsIGJdCisgICAgICAgICAgICAgICAgWzQwLCAxNjUsIDE5NCwgMTkzLCAxNF0sIC8vIHllbGxv
dworICAgICAgICAgICAgICAgIFs1NiwgMTY1LCAxNywgMTk3LCAxOTVdLCAvLyBibHVlL2N5YW4K
KyAgICAgICAgICAgICAgICBbNzMsIDE2NSwgMjAsIDIwMCwgMThdLCAvLyBncmVlbgorICAgICAg
ICAgICAgXTsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
dW5jdGlvbiBjaGVja0NvbG9yQXRMb2NhdGlvbihjdHgsIHgsIHksIHIsIGcsIGIsIHRvbGVyYW5j
ZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2YXIgYnVmZmVyID0gY3R4LmdldElt
YWdlRGF0YSh4LCB5LCAxLCAxKS5kYXRhOworICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyhi
dWZmZXJbMF0gLSByKSA8IHRvbGVyYW5jZQorICAgICAgICAgICAgICAgICAgICAmJiBNYXRoLmFi
cyhidWZmZXJbMV0gLSBnKSA8IHRvbGVyYW5jZQorICAgICAgICAgICAgICAgICAgICAmJiBNYXRo
LmFicyhidWZmZXJbMl0gLSBiKSA8IHRvbGVyYW5jZSkKKyAgICAgICAgICAgICAgICAgICAgbG9n
UmVzdWx0KHRydWUsICJTYXcgY2xvc2UgZW5vdWdoIHRvICgiICsgciArICIsICIgKyBnICsgIiwg
IiArIGIgKyAiKSBhdCAoIiArIHggKyAiLCAiICsgeSArICIpIik7CisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2dSZXN1bHQoZmFsc2UsICJFeHBlY3RlZCAoIiAr
IHIgKyAiLCAiICsgZyArICIsICIgKyBiICsgIikgYXQgKCIgKyB4ICsgIiwgIiArIHkgKyAiKSBi
dXQgc2F3ICgiICsgYnVmZmVyWzBdICsgIiwgIiArIGJ1ZmZlclsxXSArICIsICIgKyBidWZmZXJb
Ml0gKyAiKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBkcmF3QW5k
SW5zZXJ0RnJhbWUoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBjYW52YXMg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICAgICAgICAgICAgICBjYW52
YXMud2lkdGggPSB2aWRlby52aWRlb1dpZHRoOworICAgICAgICAgICAgICAgIGNhbnZhcy5oZWln
aHQgPSB2aWRlby52aWRlb0hlaWdodDsKKyAgICAgICAgICAgICAgICB2YXIgY3R4ID0gY2FudmFz
LmdldENvbnRleHQoJzJkJyk7CisgICAgICAgICAgICAgICAgY3R4LmRyYXdJbWFnZSh2aWRlbywg
MCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY2FudmFzZXMnKS5hcHBlbmRDaGlsZChjYW52YXMpOworCisg
ICAgICAgICAgICAgICAgLy8gVGhlIHRlc3QgdmlkZW8gaGFzIGEgbnVtYmVyIG9mIGNvbG9yZWQg
c3F1YXJlcy4KKyAgICAgICAgICAgICAgICAvLyBDaGVjayBhIGZldyBvZiB0aGVtLgorICAgICAg
ICAgICAgICAgIGV4cGVjdGVkUmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkgeworICAg
ICAgICAgICAgICAgICAgICBjaGVja0NvbG9yQXRMb2NhdGlvbihjdHgsIHZhbHVlWzBdLCB2YWx1
ZVsxXSwgdmFsdWVbMl0sIHZhbHVlWzNdLCB2YWx1ZVs0XSwgMik7CisgICAgICAgICAgICAgICAg
fSkKKworICAgICAgICAgICAgICAgIC8vIFNlZWsgYSBmZXcgdGltZXMuIFdlIGV4ZXJjaXNlIGRp
ZmZlcmVudCBjb2RlIHBhdGhzCisgICAgICAgICAgICAgICAgLy8gZm9yIHRoZSBmaXJzdCBmZXcg
YW5kIHRoZW4gc3Vic2VxdWVudCBkcmF3SW1hZ2UgY2FsbHMuCisgICAgICAgICAgICAgICAgaWYg
KC0tbnVtYmVyT2ZTZWVrcykgeworICAgICAgICAgICAgICAgICAgICB2aWRlby5jdXJyZW50VGlt
ZSArPSAwLjU7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICB2aWRlby5jdXJyZW50VGltZSA9IDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmaW5kTWVk
aWFFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3Vn
aCcsIGNhbnBsYXl0aHJvdWdoKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ3NlZWtl
ZCcsIGRyYXdBbmRJbnNlcnRGcmFtZSk7CisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gZmlu
ZE1lZGlhRmlsZSgndmlkZW8nLCAnY29udGVudC90ZXN0Jyk7CisgICAgICAgICAgICB9CisgICAg
ICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgICAgICA8dmlk
ZW8gaWQ9InZpZGVvIj48L3ZpZGVvPgorICAgICAgICA8ZGl2IGlkPSJjYW52YXNlcyI+PC9kaXY+
CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213704</attachid>
            <date>2013-10-08 11:59:01 -0700</date>
            <delta_ts>2013-10-08 12:49:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122486-20131009055859.patch</filename>
            <type>text/plain</type>
            <size>8472</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3MDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRiYTc2ZGM5MDFmY2I1
OWYwMDg4YWNjNzI0MDdjMzM0NWUzNjFkYS4uMjRkNDMyNjc4NjQ3N2NiYzhlZTI0NzdhZWQ4MmNh
MjgyZDI2ZWI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTEwLTA3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyAtPiBwaXhlbCBidWZm
ZXIgb3V0cHV0IHNob3VsZCBub3QgbWFuYWdlIGNvbG9yIHNwYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNDg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT24gTWFjLCB3aGVuIHdlIGRyYXcgYSB2
aWRlbyBpbnRvIGEgY2FudmFzIG9yIFdlYkdMLCB0aGUKKyAgICAgICAgb3V0cHV0IG9mIHRoZSB2
aWRlbyBzaG91bGQgbm90IGJlIGNvbG9yIG1hbmFnZWQuIEluc3RlYWQsIGxlYXZlIGl0CisgICAg
ICAgIGFzIERldmljZVJHQiBzbyB0aGF0IGl0IG1hdGNoZXMgb3RoZXIgY29sb3JzIGluIHRob3Nl
IGVsZW1lbnRzLgorICAgICAgICBXZSdsbCBob3BlZnVsbHkgc29sdmUgdGhpcyBwcm9wZXJseSBz
b29uIC0gbWFraW5nIGV2ZXJ5dGhpbmcgc1JHQi4KKworICAgICAgICBUZXN0OiBtZWRpYS92aWRl
by1jYW52YXMtZHJhd2luZy1vdXRwdXQuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmNyZWF0ZUltYWdlRm9yVGltZUluUmVjdCk6IFBhc3Mgb24KKyAgICAgICAgYSBDR0ltYWdlUmVm
IHZpYSBDR0ltYWdlQ3JlYXRlQ29weVdpdGhDb2xvclNwYWNlIHJhdGhlciB0aGFuIHRoZSByYXcg
ZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KTogVGVsbCBDb3JlSW1hZ2UKKyAgICAgICAgdG8gYWxs
b2NhdGUgYSBwaXhlbCBidWZmZXIgdGhhdCBpcyB1bm1hbmFnZWQuCisKIDIwMTMtMTAtMDcgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gRHJhd2luZyB2
aWRlbyBpbnRvIGNhbnZhcyBkb2Vzbid0IHdvcmsgb24gdGhlIGZpcnN0IGF0dGVtcHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCmluZGV4IDhiZGQ0NTYyNTBmZTkzZjBkMDk3NDRkZTc5NTQzNjBjYzY5
ZGE4NjUuLmFmMTA2YThmY2VlZmUzNWQ5YjZkMjI1NGJmNTU5NTljNjA5NWJjYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiRmxvYXRDb252ZXJz
aW9uLmgiCiAjaW1wb3J0ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5o
IgorI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbXBvcnQgIkluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5
QVZGT2JqQy5oIgogI2ltcG9ydCAiVVJMLmgiCkBAIC04NjIsNyArODYzLDkgQEAgUmV0YWluUHRy
PENHSW1hZ2VSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUlt
YWdlRm9yVGltZUluUmUKICNlbmRpZgogCiAgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0
TWF4aW11bVNpemU6Q0dTaXplKHJlY3Quc2l6ZSgpKV07Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IGltYWdlID0gYWRvcHRDRihbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJbWFnZUF0
VGltZTpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxUaW1lOm5pbCBlcnJv
cjpuaWxdKTsKKyAgICBDR0ltYWdlUmVmIHJhd0ltYWdlID0gW21faW1hZ2VHZW5lcmF0b3IuZ2V0
KCkgY29weUNHSW1hZ2VBdFRpbWU6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0
dWFsVGltZTpuaWwgZXJyb3I6bmlsXTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2Ug
PSBhZG9wdENGKENHSW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UsIGRldmlj
ZVJHQkNvbG9yU3BhY2VSZWYoKSkpOworICAgIENHSW1hZ2VSZWxlYXNlKHJhd0ltYWdlKTsKIAog
I2lmICFMT0dfRElTQUJMRUQKICAgICBkb3VibGUgZHVyYXRpb24gPSBtb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoKSAtIHN0YXJ0OwpAQCAtMTI3OSw3ICsxMjgyLDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGlj
c0NvbnRleHQqIGMKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVy
KCpjb250ZXh0KTsKICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRlKHJlY3QueCgpLCByZWN0Lnko
KSArIHJlY3QuaGVpZ2h0KCkpOwogICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoMS4w
ZiwgLTEuMGYpKTsKLSAgICAgICAgUmV0YWluUHRyPENJSW1hZ2U+IGltYWdlID0gYWRvcHROUyhb
W0NJSW1hZ2UgYWxsb2NdIGluaXRXaXRoQ1ZJbWFnZUJ1ZmZlcjptX2xhc3RJbWFnZS5nZXQoKV0p
OworICAgICAgICBSZXRhaW5QdHI8Q0lJbWFnZT4gaW1hZ2UgPSBhZG9wdE5TKFtbQ0lJbWFnZSBh
bGxvY10gaW5pdFdpdGhDVkltYWdlQnVmZmVyOm1fbGFzdEltYWdlLmdldCgpIG9wdGlvbnM6QHsg
a0NJSW1hZ2VDb2xvclNwYWNlIDogKGlkKWRldmljZVJHQkNvbG9yU3BhY2VSZWYoKSB9XSk7CiAK
ICAgICAgICAgLy8gY2lDb250ZXh0IGRvZXMgbm90IHVzZSBhIFJldGFpblB0ciBmb3IgcmVzdWx0
cyBvZiBjb250ZXh0V2l0aENHQ29udGV4dDosIGFzIHRoZSByZXR1cm5lZCB2YWx1ZQogICAgICAg
ICAvLyBpcyBhdXRvcmVsZWFzZWQsIGFuZCB0aGVyZSBpcyBubyBub24tYXV0b3JlbGVhc2VkIHZl
cnNpb24gb2YgdGhhdCBmdW5jdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmOGVkODE5YmQ4MTc2NTY2M2ZhNGJlMmZk
YTQ5ZGQyNjZlNzkxY2RjLi4wOWM1MTBkMzJjOThjNWI2ZDc3OTAzZGUzZTYwNTNkMWQxYjU5MGVi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMTAtMDcgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgorCisgICAgICAgIFZpZGVvIC0+IHBpeGVsIGJ1ZmZlciBvdXRwdXQgc2hvdWxk
IG5vdCBtYW5hZ2UgY29sb3Igc3BhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjI0ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIG1lZGlhL3ZpZGVvLWNhbnZhcy1kcmF3aW5nLW91dHB1dC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWNhbnZhcy1kcmF3aW5nLW91
dHB1dC5odG1sOiBBZGRlZC4KKwogMjAxMy0xMC0wNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBEcmF3aW5nIHZpZGVvIGludG8gY2FudmFzIGRvZXNu
J3Qgd29yayBvbiB0aGUgZmlyc3QgYXR0ZW1wdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tY2FudmFzLWRyYXdpbmctb3V0cHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLWNhbnZhcy1kcmF3aW5nLW91dHB1dC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDY1YTllYzA1NWM0MDAwMWZjMDg1ZDUwOGZlNWE5NzBkMzcwZDlmYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNhbnZhcy1kcmF3aW5nLW91dHB1dC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorRVZFTlQoY2FucGxheXRocm91Z2gpCitFVkVOVChz
ZWVrZWQpCitTYXcgY2xvc2UgZW5vdWdoIHRvICgxOTQsIDE5MywgMTQpIGF0ICg0MCwgMTY1KSBP
SworU2F3IGNsb3NlIGVub3VnaCB0byAoMTcsIDE5NywgMTk1KSBhdCAoNTYsIDE2NSkgT0sKK1Nh
dyBjbG9zZSBlbm91Z2ggdG8gKDIwLCAyMDAsIDE4KSBhdCAoNzMsIDE2NSkgT0sKK0VWRU5UKHNl
ZWtlZCkKK1NhdyBjbG9zZSBlbm91Z2ggdG8gKDE5NCwgMTkzLCAxNCkgYXQgKDQwLCAxNjUpIE9L
CitTYXcgY2xvc2UgZW5vdWdoIHRvICgxNywgMTk3LCAxOTUpIGF0ICg1NiwgMTY1KSBPSworU2F3
IGNsb3NlIGVub3VnaCB0byAoMjAsIDIwMCwgMTgpIGF0ICg3MywgMTY1KSBPSworRVZFTlQoc2Vl
a2VkKQorU2F3IGNsb3NlIGVub3VnaCB0byAoMTk0LCAxOTMsIDE0KSBhdCAoNDAsIDE2NSkgT0sK
K1NhdyBjbG9zZSBlbm91Z2ggdG8gKDE3LCAxOTcsIDE5NSkgYXQgKDU2LCAxNjUpIE9LCitTYXcg
Y2xvc2UgZW5vdWdoIHRvICgyMCwgMjAwLCAxOCkgYXQgKDczLCAxNjUpIE9LCitFVkVOVChzZWVr
ZWQpCitTYXcgY2xvc2UgZW5vdWdoIHRvICgxOTQsIDE5MywgMTQpIGF0ICg0MCwgMTY1KSBPSwor
U2F3IGNsb3NlIGVub3VnaCB0byAoMTcsIDE5NywgMTk1KSBhdCAoNTYsIDE2NSkgT0sKK1NhdyBj
bG9zZSBlbm91Z2ggdG8gKDIwLCAyMDAsIDE4KSBhdCAoNzMsIDE2NSkgT0sKK0VORCBPRiBURVNU
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNhbnZhcy1kcmF3aW5nLW91
dHB1dC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY2FudmFzLWRyYXdpbmctb3V0cHV0
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGFiZTQ5NmM4ZDM0MzA4OTcwMGVjZTNlYmQzZjI2Y2RkNDE4ZDI5
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNhbnZhcy1kcmF3
aW5nLW91dHB1dC5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8dGl0bGU+RHJhd2luZyB0byBjYW52YXMgdXNpbmcgdmlkZW88L3RpdGxlPgorICAgICAg
ICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0Pgor
ICAgICAgICAgICAgdmFyIHZpZGVvOworICAgICAgICAgICAgdmFyIG51bWJlck9mU2Vla3MgPSA0
OworCisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRSZXN1bHRzID0gWworICAgICAgICAgICAgICAg
IC8vIFt4LCB5LCByLCBnLCBiXQorICAgICAgICAgICAgICAgIFs0MCwgMTY1LCAxOTQsIDE5Mywg
MTRdLCAvLyB5ZWxsb3cKKyAgICAgICAgICAgICAgICBbNTYsIDE2NSwgMTcsIDE5NywgMTk1XSwg
Ly8gYmx1ZS9jeWFuCisgICAgICAgICAgICAgICAgWzczLCAxNjUsIDIwLCAyMDAsIDE4XSwgLy8g
Z3JlZW4KKyAgICAgICAgICAgIF07CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tDb2xvckF0TG9jYXRpb24oY3R4LCB4LCB5LCByLCBn
LCBiLCB0b2xlcmFuY2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIGJ1ZmZl
ciA9IGN0eC5nZXRJbWFnZURhdGEoeCwgeSwgMSwgMSkuZGF0YTsKKyAgICAgICAgICAgICAgICBp
ZiAoTWF0aC5hYnMoYnVmZmVyWzBdIC0gcikgPCB0b2xlcmFuY2UKKyAgICAgICAgICAgICAgICAg
ICAgJiYgTWF0aC5hYnMoYnVmZmVyWzFdIC0gZykgPCB0b2xlcmFuY2UKKyAgICAgICAgICAgICAg
ICAgICAgJiYgTWF0aC5hYnMoYnVmZmVyWzJdIC0gYikgPCB0b2xlcmFuY2UpCisgICAgICAgICAg
ICAgICAgICAgIGxvZ1Jlc3VsdCh0cnVlLCAiU2F3IGNsb3NlIGVub3VnaCB0byAoIiArIHIgKyAi
LCAiICsgZyArICIsICIgKyBiICsgIikgYXQgKCIgKyB4ICsgIiwgIiArIHkgKyAiKSIpOworICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbG9nUmVzdWx0KGZhbHNlLCAi
RXhwZWN0ZWQgKCIgKyByICsgIiwgIiArIGcgKyAiLCAiICsgYiArICIpIGF0ICgiICsgeCArICIs
ICIgKyB5ICsgIikgYnV0IHNhdyAoIiArIGJ1ZmZlclswXSArICIsICIgKyBidWZmZXJbMV0gKyAi
LCAiICsgYnVmZmVyWzJdICsgIikiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVu
Y3Rpb24gZHJhd0FuZEluc2VydEZyYW1lKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgICAg
ICAgICAgICAgY2FudmFzLndpZHRoID0gdmlkZW8udmlkZW9XaWR0aDsKKyAgICAgICAgICAgICAg
ICBjYW52YXMuaGVpZ2h0ID0gdmlkZW8udmlkZW9IZWlnaHQ7CisgICAgICAgICAgICAgICAgdmFy
IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgICAgICAgICAgICAgIGN0eC5kcmF3
SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbnZhc2VzJykuYXBwZW5kQ2hpbGQo
Y2FudmFzKTsKKworICAgICAgICAgICAgICAgIC8vIFRoZSB0ZXN0IHZpZGVvIGhhcyBhIG51bWJl
ciBvZiBjb2xvcmVkIHNxdWFyZXMuCisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgYSBmZXcgb2Yg
dGhlbS4KKyAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdHMuZm9yRWFjaChmdW5jdGlvbiAo
dmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tDb2xvckF0TG9jYXRpb24oY3R4LCB2
YWx1ZVswXSwgdmFsdWVbMV0sIHZhbHVlWzJdLCB2YWx1ZVszXSwgdmFsdWVbNF0sIDIpOworICAg
ICAgICAgICAgICAgIH0pCisKKyAgICAgICAgICAgICAgICAvLyBTZWVrIGEgZmV3IHRpbWVzLiBX
ZSBleGVyY2lzZSBkaWZmZXJlbnQgY29kZSBwYXRocworICAgICAgICAgICAgICAgIC8vIGZvciB0
aGUgZmlyc3QgZmV3IGFuZCB0aGVuIHN1YnNlcXVlbnQgZHJhd0ltYWdlIGNhbGxzLgorICAgICAg
ICAgICAgICAgIGlmICgtLW51bWJlck9mU2Vla3MpIHsKKyAgICAgICAgICAgICAgICAgICAgdmlk
ZW8uY3VycmVudFRpbWUgKz0gMC41OworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiBjYW5wbGF5dGhyb3VnaCgpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgdmlkZW8uY3VycmVudFRpbWUgPSAxOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgn
Y2FucGxheXRocm91Z2gnLCBjYW5wbGF5dGhyb3VnaCk7CisgICAgICAgICAgICAgICAgd2FpdEZv
ckV2ZW50KCdzZWVrZWQnLCBkcmF3QW5kSW5zZXJ0RnJhbWUpOworICAgICAgICAgICAgICAgIHZp
ZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJ2NvbnRlbnQvdGVzdCcpOworICAgICAg
ICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVz
dC5qcz48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4K
KyAgICAgICAgPHZpZGVvIGlkPSJ2aWRlbyI+PC92aWRlbz4KKyAgICAgICAgPGRpdiBpZD0iY2Fu
dmFzZXMiPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="236101"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>