<?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>62339</bug_id>
          
          <creation_ts>2011-06-08 16:35:02 -0700</creation_ts>
          <short_desc>[chromium] Scissor rect not set for clipping layers set offscreen</short_desc>
          <delta_ts>2011-06-09 15:54:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>enne</cc>
    
    <cc>kbr</cc>
    
    <cc>nduca</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>417677</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-08 16:35:02 -0700</bug_when>
    <thetext>[chromium] Scissor rect not set for clipping layers set offscreen</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417717</commentid>
    <comment_count>1</comment_count>
      <attachid>96516</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-08 17:45:01 -0700</bug_when>
    <thetext>Created attachment 96516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417725</commentid>
    <comment_count>2</comment_count>
      <attachid>96516</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-06-08 18:05:06 -0700</bug_when>
    <thetext>Comment on attachment 96516
Patch

If Vangelis can unofficially review this I&apos;ll gladly r+ it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417742</commentid>
    <comment_count>3</comment_count>
      <attachid>96516</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-06-08 18:48:01 -0700</bug_when>
    <thetext>Comment on attachment 96516
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:980
&gt; +    setScissorToRect(layer-&gt;usesLayerScissor() ? layer-&gt;scissorRect() : targetSurfaceRect, true);

I think scissorRect handling needs to be cleaned up as it&apos;s getting more and more complicated.
In theory, setScissorToRect(targetSurfaceRect) should have the same effect a disabling scissoring  (you cannot draw outside the bounds of your render surface anyway).
So, if layer-&gt;usesLayerScissor() then enable scissoring and apply the scissor rect, otherwise disable scissoring. 

A usesLayerScissor boolean can also be added to the render surface and we can do the same query and enable/disable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417749</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-08 19:13:07 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 96516 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=96516&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:980
&gt; &gt; +    setScissorToRect(layer-&gt;usesLayerScissor() ? layer-&gt;scissorRect() : targetSurfaceRect, true);
&gt; 
&gt; I think scissorRect handling needs to be cleaned up as it&apos;s getting more and more complicated.
&gt; In theory, setScissorToRect(targetSurfaceRect) should have the same effect a disabling scissoring  (you cannot draw outside the bounds of your render surface anyway).
&gt; So, if layer-&gt;usesLayerScissor() then enable scissoring and apply the scissor rect, otherwise disable scissoring. 
&gt; 

You mean disable the scissor test completely?  I could do that.

&gt; A usesLayerScissor boolean can also be added to the render surface and we can do the same query and enable/disable.

Any idea when I should set this?  It&apos;s non-obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417758</commentid>
    <comment_count>5</comment_count>
      <attachid>96529</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-08 19:27:10 -0700</bug_when>
    <thetext>Created attachment 96529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417759</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-08 19:29:04 -0700</bug_when>
    <thetext>How&apos;s this?  I&apos;m using &quot;has an empty m_scissorRect&quot; on RenderSurfaceChromium as a proxy for &quot;should scissor&quot;.  It seems to work, at least on the maps case and on the compositing tests we currently have.  I hope that enabling/disabling the scissor test isn&apos;t significantly different perf wise than constantly setting a new scissor rect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417821</commentid>
    <comment_count>7</comment_count>
      <attachid>96529</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-06-08 22:12:43 -0700</bug_when>
    <thetext>Comment on attachment 96529
Patch

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

In addition, you need to:
1. Always call layer-&gt;setUsersLayerScissor(false) at the top of updatePropertiesAndRenderSurfaces to reset the flag
2. Remove line 697 &quot;layer-&gt;setScissorRect(IntRect());&quot;  as that was essentially telling the layer that it didn&apos;t have a scissor rect.

&gt; Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.cpp:158
&gt; +        GLC(layerRenderer()-&gt;context(), layerRenderer()-&gt;context()-&gt;disable(GraphicsContext3D::SCISSOR_TEST));

The RenderSurface&apos;s have the same issue as regular layers.  Without a flag, there&apos;s no way to tell if an empty scissor rect means don&apos;t render or don&apos;t scissor.  The render surface inherits the scissor rect of its parent layer so the logic would be:
 
if (!m_owningLayer-&gt;parent() || !m_owningLayer-&gt;parent()-&gt;usesScissor())
  disable scissor test
else
  scissorRect = m_owningLayer-&gt;parent()-&gt;scissorRect()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418184</commentid>
    <comment_count>8</comment_count>
      <attachid>96616</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-09 12:25:14 -0700</bug_when>
    <thetext>Created attachment 96616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418185</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-09 12:26:47 -0700</bug_when>
    <thetext>Patch updated w/ feedback from comment #7.  This sets layerUsesScissor on every layer in updateProperties...() which is definitely a bit of a hack, but should work as it&apos;s explicitly set to true for layers that need it.  Passes all chromium-gpu layout tests (but so did the previous patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418299</commentid>
    <comment_count>10</comment_count>
      <attachid>96616</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-06-09 14:26:32 -0700</bug_when>
    <thetext>Comment on attachment 96616
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:661
&gt; +    // FIXME: This seems like the wrong place to set this

Why do you think this is the wrong place?  Seems right to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418301</commentid>
    <comment_count>11</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-06-09 14:28:11 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Patch updated w/ feedback from comment #7.  This sets layerUsesScissor on every layer in updateProperties...() which is definitely a bit of a hack, but should work as it&apos;s explicitly set to true for layers that need it.  Passes all chromium-gpu layout tests (but so did the previous patch).

The last patch looks good to me.  Since layers can move around in the tree we need some way to reset the usesScissor bit every time we go through so resetting at the top looks like the right solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418306</commentid>
    <comment_count>12</comment_count>
      <attachid>96616</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-06-09 14:31:05 -0700</bug_when>
    <thetext>Comment on attachment 96616
Patch

r+ based on Vangelis&apos;s review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418365</commentid>
    <comment_count>13</comment_count>
      <attachid>96616</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-09 15:54:06 -0700</bug_when>
    <thetext>Comment on attachment 96616
Patch

Clearing flags on attachment: 96616

Committed r88496: &lt;http://trac.webkit.org/changeset/88496&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418366</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-09 15:54:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96516</attachid>
            <date>2011-06-08 17:45:01 -0700</date>
            <delta_ts>2011-06-08 19:27:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62339-20110608174500.patch</filename>
            <type>text/plain</type>
            <size>11138</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgzOTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZDkxMjc2ZTAyYWMyMjYzN2EyODJk
MWZhMDIxZTNiYTNlODViZDhhLi5kNDY0MTIwZGMwYWUwZGJhODJhNDY1ZjhjZWY1Zjk2NWIxMjIw
N2Y3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDYtMDggIEphbWVzIFJvYmluc29uICA8
amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbY2hyb21pdW1dIFNjaXNzb3IgcmVjdCBub3Qgc2V0IGZvciBjbGlwcGlu
ZyBsYXllcnMgc2V0IG9mZnNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjIzMzkKKworICAgICAgICBUZXN0cyB0aGF0IGEgbGF5ZXIgdGhhdCBz
aG91bGQgY2xpcCBpdHMgY2hpbGRyZW4gYWN0dWFsbHkgZG9lcyBjbGlwIGV2ZW4gd2hlbiBzY3Jv
bGxlZCBvZmZzY3JlZW4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGlu
Zy9zY2lzc29yLW91dC1vZi12aWV3cG9ydC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvc2Npc3Nvci1vdXQtb2Ytdmlld3BvcnQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYtMDggIE1p
a2UgUmVlZCAgPHJlZWRAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBS
b2JpbnNvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0LWV4
cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWRhYTg1NTVlODZjMzMwZWIyZTVlY2NmNjc2OTBkNmU0
MTI4NjA1CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyODQwCnpjbWVBU0BOPyhvbEh5YHVWQnEh
aWEweX55VXsrdllWMmE+aTAqWik9aF5obEElQFdzJGxIYG9rPG19P29UbX1uTQp6PENJaGIxNS0y
ZTZoa0EhcXxgKSVCPWUteTxXd2BXTUFIO0Ehe2h8PnxHeWEreEs/PyhJRUdacmQzKV8zQ3hlMigK
ejBmVzsyYkkrQENIS189SHhvSzw2JkNxYkpRa0g/P2dMRUAxZ01lYGExQjJseFY+QSMoUV5JSTI3
fGpLdnhuTUxHCm1qT0sjVFRyaXBvPSNtUklheDxvfHVRaj1OeGZSJmRXJDwrTWI2TXc8JjskVThB
R2pqYAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvc2Npc3Nvci1vdXQtb2Ytdmlld3BvcnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvc2Npc3Nv
ci1vdXQtb2Ytdmlld3BvcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzOTU5N2Y5Y2IwN2M1
ZDQ4YmVkMTg5ODRlYzQ3NDdmNGI0ZjM0MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9zY2lzc29yLW91dC1vZi12aWV3cG9ydC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvc2Npc3Nvci1vdXQtb2Ytdmlld3BvcnQuaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3NjaXNzb3Itb3V0
LW9mLXZpZXdwb3J0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y3OTc5Yzk0NmRlOTdiNWMwYTkzZTI2NWI5
MDlhYjIzN2NlMWVlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0Lmh0bWwKQEAgLTAsMCAr
MSwyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIFRoaXMgdGVzdCBoYXMgYSAxNnB4IHRhbGwg
ZGl2IHdpdGggb3ZlcmZsb3c6aGlkZGVuIHNldCBhbmQgYSBjaGlsZCBpbWFnZS4gIFdoZW4gdGhl
IHRlc3QgbG9hZHMgdGhlIGRpdiBpcyBzY3JvbGxlZCBvdXQgb2Ygdmlldy4KKyAgICAgVGhlIHRl
c3QgaXMgYSBwYXNzIGlmIHRoZSBpbWFnZSBkb2VzIG5vdCBhcHBlYXIuIC0tPgorPGJvZHkgc3R5
bGU9Im92ZXJmbG93OmhpZGRlbiI+Cis8Y2FudmFzIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CisgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIp
LmdldENvbnRleHQoIjJkIik7Cis8L3NjcmlwdD4KKzxkaXYgc3R5bGU9InRvcDowcHg7IGhlaWdo
dDogMTZweDsgb3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyI+CisgIDxpbWcg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTE2cHg7IiBpZD0iaSI+PC9pbWc+Cis8
L2Rpdj4KKzxicj4KKzxkaXYgc3R5bGU9ImhlaWdodDoyMDAwcHgiPjwvZGl2PgorPHNjcmlwdD4K
K3ZhciBjYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKK2Nhbi53aWR0aCA9
IGNhbi5oZWlnaHQgPSA1MDA7Cit2YXIgY3R4ID0gY2FuLmdldENvbnRleHQoIjJkIik7CitjdHgu
ZmlsbFN0eWxlID0gInJlZCI7CitjdHguZmlsbFJlY3QoMCwgMCwgNTAwLCA1MDApOworZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImkiKS5zcmMgPSBjYW4udG9EYXRhVVJMKCk7Citkb2N1bWVudC5i
b2R5LnNjcm9sbFRvcCA9IDUwOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggMGIwZmZlYzc1ZmNhODVmYjFiY2VmNWY5OGI3NTlmMDI3OGMzOTFhMC4uYWUzNmY1
ZTljMmI3ZWUyNDNlZDNlNmQwMTVjMzZiY2ZjZDEyMzE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMzIEBACisyMDExLTA2LTA4ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9t
aXVtXSBTY2lzc29yIHJlY3Qgbm90IHNldCBmb3IgY2xpcHBpbmcgbGF5ZXJzIHNldCBvZmZzY3Jl
ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzM5
CisKKyAgICAgICAgV2Ugc2V0IGEgc2Npc3NvclJlY3Qgb24gZWFjaCBsYXllciwgYnV0IG9ubHkg
bGF5ZXJzIHdpdGggbWFza3NUb0JvdW5kcyBhbmQgdGhlaXIgZGVzY2VuZGFudHMgc2hvdWxkIGFj
dHVhbGx5IHNldAorICAgICAgICBhIHNjaXNzb3IuICBMYXllcnMgdGhhdCBkaWRuJ3QgbmVlZCB0
byBzY2lzc29yIGhhZCBlbXB0eSBzY2lzc29yUmVjdHMuICBVbmZvcnR1bmF0ZWx5IGxheWVycyB3
aXRoIG1hc2tzVG9Cb3VuZHMKKyAgICAgICAgYW5kIHRoZWlyIGRlc2NlbmRhbnRzIHRoYXQgYXJl
IHNjcm9sbGVkIG9mZnNjcmVlbiBhbHNvIGVuZCB1cCB3aXRoIGFuIGVtcHR5IGNsaXBwZWQgc2Np
c3NvciByZWN0LgorCisgICAgICAgIFRoaXMgcGF0Y2ggc2V0cyBhbiBleHBsaWNpdCBiaXQgb24g
ZWFjaCBsYXllciB0aGF0IHNob3VsZCBzY2lzc29yIGFuZCB0aGVuIGNoZWNrcyB0aGF0IGJpdCBp
bnN0ZWFkIG9mIGNoZWNraW5nCisgICAgICAgIGZvciBhbiBlbXB0eSBzY2lzc29yIHJlY3QgYXQg
ZHJhdyB0aW1lLiAgUmVuZGVyU3VyZmFjZUNocm9taXVtcyBoYXZlIGRpZmZlcmVudCByZXF1aXJl
bWVudHMgZm9yCisgICAgICAgIHNldFNjaXNzb3JUb1JlY3QsIHNvIHRoZSBvbGQgYmVoYXZpb3Ig
aXMgc3RpbGwgYXZhaWxhYmxlIHdpdGggYSBmbGFnLiAgVGhpcyBjYW4gcHJvYmFibHkgYmUgY2xl
YW5lZCB1cCBtb3JlLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0
aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnVwZGF0ZVByb3BlcnRpZXNBbmRSZW5kZXJTdXJm
YWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnNldFNjaXNzb3JU
b1JlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRl
clN1cmZhY2VDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdXJmYWNlQ2hy
b21pdW06OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpDQ0xheWVySW1w
bCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRVc2VzTGF5ZXJTY2lzc29yKToK
KyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjp1c2VzTGF5ZXJTY2lzc29yKToKKwogMjAx
MS0wNi0wOCAgTWlrZSBSZWVkICA8cmVlZEBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAK
aW5kZXggNDdlZmNlYTBlZTY4NzUxMDI0NmRmNTdlMDA0YzMzZjMwMzI2YmM4ZC4uYjU1Y2ZkZDBk
MDMyNDNlNWRhYWRkNmQyNmQ4YTUzNTNiN2EwZjA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRl
cmVyQ2hyb21pdW0uY3BwCkBAIC03MjYsNiArNzI2LDggQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hy
b21pdW06OnVwZGF0ZVByb3BlcnRpZXNBbmRSZW5kZXJTdXJmYWNlcyhDQ0xheWVySW1wbCogbGF5
ZXIKIAogICAgICAgICAgICAgLy8gTGF5ZXJzIGluaGVyaXQgdGhlIHNjaXNzb3IgcmVjdCBmcm9t
IHRoZWlyIHBhcmVudC4KICAgICAgICAgICAgIGxheWVyLT5zZXRTY2lzc29yUmVjdChsYXllci0+
cGFyZW50KCktPnNjaXNzb3JSZWN0KCkpOworICAgICAgICAgICAgaWYgKGxheWVyLT5wYXJlbnQo
KS0+dXNlc0xheWVyU2Npc3NvcigpKQorICAgICAgICAgICAgICAgIGxheWVyLT5zZXRVc2VzTGF5
ZXJTY2lzc29yKHRydWUpOwogCiAgICAgICAgICAgICBsYXllci0+c2V0VGFyZ2V0UmVuZGVyU3Vy
ZmFjZShsYXllci0+cGFyZW50KCktPnRhcmdldFJlbmRlclN1cmZhY2UoKSk7CiAgICAgICAgIH0K
QEAgLTczOCw2ICs3NDAsNyBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6dXBkYXRlUHJv
cGVydGllc0FuZFJlbmRlclN1cmZhY2VzKENDTGF5ZXJJbXBsKiBsYXllcgogICAgICAgICAgICAg
aWYgKCFsYXllci0+c2Npc3NvclJlY3QoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgc2Np
c3Nvci5pbnRlcnNlY3QobGF5ZXItPnNjaXNzb3JSZWN0KCkpOwogICAgICAgICAgICAgbGF5ZXIt
PnNldFNjaXNzb3JSZWN0KHNjaXNzb3IpOworICAgICAgICAgICAgbGF5ZXItPnNldFVzZXNMYXll
clNjaXNzb3IodHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTk3Myw5ICs5NzYsOSBAQCB2
b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyKENDTGF5ZXJJbXBsKiBsYXllciwg
UmVuZGVyU3VyZmFjZUNocm9taXVtKgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2V0
U2Npc3NvclRvUmVjdChsYXllci0+c2Npc3NvclJlY3QoKSk7Ci0KICAgICBJbnRSZWN0IHRhcmdl
dFN1cmZhY2VSZWN0ID0gbV9jdXJyZW50UmVuZGVyU3VyZmFjZSA/IG1fY3VycmVudFJlbmRlclN1
cmZhY2UtPmNvbnRlbnRSZWN0KCkgOiBtX2RlZmF1bHRSZW5kZXJTdXJmYWNlLT5jb250ZW50UmVj
dCgpOworICAgIHNldFNjaXNzb3JUb1JlY3QobGF5ZXItPnVzZXNMYXllclNjaXNzb3IoKSA/IGxh
eWVyLT5zY2lzc29yUmVjdCgpIDogdGFyZ2V0U3VyZmFjZVJlY3QsIHRydWUpOworCiAgICAgSW50
UmVjdCBzY2lzc29yUmVjdCA9IGxheWVyLT5zY2lzc29yUmVjdCgpOwogICAgIGlmICghc2Npc3Nv
clJlY3QuaXNFbXB0eSgpKQogICAgICAgICB0YXJnZXRTdXJmYWNlUmVjdC5pbnRlcnNlY3Qoc2Np
c3NvclJlY3QpOwpAQCAtMTAxNCwxMSArMTAxNywxNSBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJv
bWl1bTo6ZHJhd0xheWVyKENDTGF5ZXJJbXBsKiBsYXllciwgUmVuZGVyU3VyZmFjZUNocm9taXVt
KgogCiAvLyBTZXRzIHRoZSBzY2lzc29yIHJlZ2lvbiB0byB0aGUgZ2l2ZW4gcmVjdGFuZ2xlLiBU
aGUgY29vcmRpbmF0ZSBzeXN0ZW0gZm9yIHRoZQogLy8gc2Npc3NvclJlY3QgaGFzIGl0cyBvcmln
aW4gYXQgdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUgY3VycmVudCB2aXNpYmxlIHJlY3QuCi12
b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0U2Npc3NvclRvUmVjdChjb25zdCBJbnRSZWN0
JiByZXF1ZXN0ZWRTY2lzc29yKQordm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OnNldFNjaXNz
b3JUb1JlY3QoY29uc3QgSW50UmVjdCYgcmVxdWVzdGVkUmVjdCwgYm9vbCBhbGxvd0VtcHR5KQog
ewogICAgIEludFJlY3QgY29udGVudFJlY3QgPSAobV9jdXJyZW50UmVuZGVyU3VyZmFjZSA/IG1f
Y3VycmVudFJlbmRlclN1cmZhY2UtPm1fY29udGVudFJlY3QgOiBtX2RlZmF1bHRSZW5kZXJTdXJm
YWNlLT5tX2NvbnRlbnRSZWN0KTsKIAotICAgIGNvbnN0IEludFJlY3Qgc2Npc3NvclJlY3QgPSBy
ZXF1ZXN0ZWRTY2lzc29yLmlzRW1wdHkoKSA/IGNvbnRlbnRSZWN0IDogcmVxdWVzdGVkU2Npc3Nv
cjsKKyAgICBJbnRSZWN0IHNjaXNzb3JSZWN0OworICAgIGlmICghYWxsb3dFbXB0eSAmJiByZXF1
ZXN0ZWRSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgc2Npc3NvclJlY3QgPSBjb250ZW50UmVjdDsK
KyAgICBlbHNlCisgICAgICAgIHNjaXNzb3JSZWN0ID0gcmVxdWVzdGVkUmVjdDsKIAogICAgIC8v
IFRoZSBzY2lzc29yIGNvb3JkaW5hdGVzIG11c3QgYmUgc3VwcGxpZWQgaW4gdmlld3BvcnQgc3Bh
Y2Ugc28gd2UgbmVlZCB0byBvZmZzZXQKICAgICAvLyBieSB0aGUgcmVsYXRpdmUgcG9zaXRpb24g
b2YgdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUgY3VycmVudCByZW5kZXIgc3VyZmFjZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
UmVuZGVyZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKaW5kZXggMmVlMDE5MTUyY2QyZWQ3NTNkZGIx
ZTM4ZTJjYjgxZGU3MjM1MjcxMi4uMjFmZmRmYzdiYTQ5ZDkxZTU0Yjc0YmMyNTViZDIwNWIzNDQ4
N2RkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKQEAgLTE0Miw3ICsxNDIs
NyBAQCBwdWJsaWM6CiAKICAgICBDQ0hlYWRzVXBEaXNwbGF5KiBoZWFkc1VwRGlzcGxheSgpIHsg
cmV0dXJuIG1faGVhZHNVcERpc3BsYXkuZ2V0KCk7IH0KIAotICAgIHZvaWQgc2V0U2Npc3NvclRv
UmVjdChjb25zdCBJbnRSZWN0Jik7CisgICAgdm9pZCBzZXRTY2lzc29yVG9SZWN0KGNvbnN0IElu
dFJlY3QmLCBib29sIGFsbG93RW1wdHkpOwogCiAgICAgU3RyaW5nIGxheWVyVHJlZUFzVGV4dCgp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmNwcAppbmRleCBlZmNh
ODIyZmVkNjc0NzRjMzVkZDYzZTBkNjczZDcxMTk3M2NlMjE2Li5mNjk0YjM1Y2RkNjc4MTg3NTQy
YjFlOTYzZWRmN2Q4NmI2MDgxMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1
bS5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCB2b2lkIFJlbmRlclN1cmZhY2VDaHJvbWl1bTo6ZHJh
dyhjb25zdCBJbnRSZWN0JikKICAgICBpZiAoIW1fbWFza0xheWVyICYmIG1fb3duaW5nTGF5ZXIt
PnJlcGxpY2FMYXllcigpKQogICAgICAgICByZXBsaWNhTWFza0xheWVyID0gbV9vd25pbmdMYXll
ci0+cmVwbGljYUxheWVyKCktPm1hc2tMYXllcigpOwogCi0gICAgbGF5ZXJSZW5kZXJlcigpLT5z
ZXRTY2lzc29yVG9SZWN0KG1fc2Npc3NvclJlY3QpOworICAgIGxheWVyUmVuZGVyZXIoKS0+c2V0
U2Npc3NvclRvUmVjdChtX3NjaXNzb3JSZWN0LCBmYWxzZSk7CiAKICAgICAvLyBSZWZsZWN0aW9u
IGRyYXdzIGJlZm9yZSB0aGUgbGF5ZXIuCiAgICAgaWYgKG1fb3duaW5nTGF5ZXItPnJlcGxpY2FM
YXllcigpKSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcAppbmRleCBiNDAyOTMzMzQwNmQ3YWRmZjEy
MjM5NDg0M2E1OWUzZTAyNGI1OWE0Li4zZjc0Nzc4ZDY5NDliNWIwMTJiODEwYTBhMDY1ZTUyOGY1
YjQwNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCkBAIC03MCw2ICs3MCw3IEBAIENDTGF5
ZXJJbXBsOjpDQ0xheWVySW1wbChMYXllckNocm9taXVtKiBvd25lciwgaW50IGlkKQogICAgICwg
bV9tYXNrc1RvQm91bmRzKGZhbHNlKQogICAgICwgbV9vcGFjaXR5KDEuMCkKICAgICAsIG1fcHJl
c2VydmVzM0QoZmFsc2UpCisgICAgLCBtX3VzZXNMYXllclNjaXNzb3IoZmFsc2UpCiAgICAgLCBt
X3RhcmdldFJlbmRlclN1cmZhY2UoMCkKICAgICAsIG1fZHJhd0RlcHRoKDApCiAgICAgLCBtX2Ry
YXdPcGFjaXR5KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAppbmRleCBkNTBmMGE4MmE5MTE4N2QyMzY4
MjY4NjIzYzhlYTNhZmI2ODViMmZmLi45ZTJkYTFjZmYwODU1ZTJiZmNkN2RkNzJhNzEzY2E3MTli
NDE2YjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKQEAgLTEwMCw2ICsxMDAsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXMzRChib29sIHByZXNlcnZlczNEKSB7IG1fcHJlc2VydmVz
M0QgPSBwcmVzZXJ2ZXMzRDsgfQogICAgIGJvb2wgcHJlc2VydmVzM0QoKSBjb25zdCB7IHJldHVy
biBtX3ByZXNlcnZlczNEOyB9CiAKKyAgICB2b2lkIHNldFVzZXNMYXllclNjaXNzb3IoYm9vbCB1
c2VzTGF5ZXJTY2lzc29yKSB7IG1fdXNlc0xheWVyU2Npc3NvciA9IHVzZXNMYXllclNjaXNzb3I7
IH0KKyAgICBib29sIHVzZXNMYXllclNjaXNzb3IoKSBjb25zdCB7IHJldHVybiBtX3VzZXNMYXll
clNjaXNzb3I7IH0KKwogICAgIHZvaWQgc2V0U3VibGF5ZXJUcmFuc2Zvcm0oY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHN1YmxheWVyVHJhbnNmb3JtKSB7IG1fc3VibGF5ZXJUcmFuc2Zvcm0g
PSBzdWJsYXllclRyYW5zZm9ybTsgfQogICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBz
dWJsYXllclRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VibGF5ZXJUcmFuc2Zvcm07IH0K
IApAQCAtMTgzLDYgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByZXNlcnZlczNEOwog
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fc3VibGF5ZXJUcmFuc2Zvcm07CiAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXggbV90cmFuc2Zvcm07CisgICAgYm9vbCBtX3VzZXNMYXllclNjaXNzb3I7
CiAKICAgICAvLyBQcm9wZXJ0aWVzIG93bmVkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgQ0NMYXllcklt
cGwuCiAgICAgLy8gRGVidWdnaW5nLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96529</attachid>
            <date>2011-06-08 19:27:10 -0700</date>
            <delta_ts>2011-06-09 12:25:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62339-20110608192709.patch</filename>
            <type>text/plain</type>
            <size>10757</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgzOTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZDkxMjc2ZTAyYWMyMjYzN2EyODJk
MWZhMDIxZTNiYTNlODViZDhhLi5kNDY0MTIwZGMwYWUwZGJhODJhNDY1ZjhjZWY1Zjk2NWIxMjIw
N2Y3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDYtMDggIEphbWVzIFJvYmluc29uICA8
amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbY2hyb21pdW1dIFNjaXNzb3IgcmVjdCBub3Qgc2V0IGZvciBjbGlwcGlu
ZyBsYXllcnMgc2V0IG9mZnNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjIzMzkKKworICAgICAgICBUZXN0cyB0aGF0IGEgbGF5ZXIgdGhhdCBz
aG91bGQgY2xpcCBpdHMgY2hpbGRyZW4gYWN0dWFsbHkgZG9lcyBjbGlwIGV2ZW4gd2hlbiBzY3Jv
bGxlZCBvZmZzY3JlZW4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGlu
Zy9zY2lzc29yLW91dC1vZi12aWV3cG9ydC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvc2Npc3Nvci1vdXQtb2Ytdmlld3BvcnQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYtMDggIE1p
a2UgUmVlZCAgPHJlZWRAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBS
b2JpbnNvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0LWV4
cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWRhYTg1NTVlODZjMzMwZWIyZTVlY2NmNjc2OTBkNmU0
MTI4NjA1CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyODQwCnpjbWVBU0BOPyhvbEh5YHVWQnEh
aWEweX55VXsrdllWMmE+aTAqWik9aF5obEElQFdzJGxIYG9rPG19P29UbX1uTQp6PENJaGIxNS0y
ZTZoa0EhcXxgKSVCPWUteTxXd2BXTUFIO0Ehe2h8PnxHeWEreEs/PyhJRUdacmQzKV8zQ3hlMigK
ejBmVzsyYkkrQENIS189SHhvSzw2JkNxYkpRa0g/P2dMRUAxZ01lYGExQjJseFY+QSMoUV5JSTI3
fGpLdnhuTUxHCm1qT0sjVFRyaXBvPSNtUklheDxvfHVRaj1OeGZSJmRXJDwrTWI2TXc8JjskVThB
R2pqYAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvc2Npc3Nvci1vdXQtb2Ytdmlld3BvcnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvc2Npc3Nv
ci1vdXQtb2Ytdmlld3BvcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzOTU5N2Y5Y2IwN2M1
ZDQ4YmVkMTg5ODRlYzQ3NDdmNGI0ZjM0MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9zY2lzc29yLW91dC1vZi12aWV3cG9ydC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvc2Npc3Nvci1vdXQtb2Ytdmlld3BvcnQuaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3NjaXNzb3Itb3V0
LW9mLXZpZXdwb3J0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y3OTc5Yzk0NmRlOTdiNWMwYTkzZTI2NWI5
MDlhYjIzN2NlMWVlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0Lmh0bWwKQEAgLTAsMCAr
MSwyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIFRoaXMgdGVzdCBoYXMgYSAxNnB4IHRhbGwg
ZGl2IHdpdGggb3ZlcmZsb3c6aGlkZGVuIHNldCBhbmQgYSBjaGlsZCBpbWFnZS4gIFdoZW4gdGhl
IHRlc3QgbG9hZHMgdGhlIGRpdiBpcyBzY3JvbGxlZCBvdXQgb2Ygdmlldy4KKyAgICAgVGhlIHRl
c3QgaXMgYSBwYXNzIGlmIHRoZSBpbWFnZSBkb2VzIG5vdCBhcHBlYXIuIC0tPgorPGJvZHkgc3R5
bGU9Im92ZXJmbG93OmhpZGRlbiI+Cis8Y2FudmFzIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
Ij48L2NhbnZhcz4KKzxzY3JpcHQ+CisgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIp
LmdldENvbnRleHQoIjJkIik7Cis8L3NjcmlwdD4KKzxkaXYgc3R5bGU9InRvcDowcHg7IGhlaWdo
dDogMTZweDsgb3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyI+CisgIDxpbWcg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTE2cHg7IiBpZD0iaSI+PC9pbWc+Cis8
L2Rpdj4KKzxicj4KKzxkaXYgc3R5bGU9ImhlaWdodDoyMDAwcHgiPjwvZGl2PgorPHNjcmlwdD4K
K3ZhciBjYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKK2Nhbi53aWR0aCA9
IGNhbi5oZWlnaHQgPSA1MDA7Cit2YXIgY3R4ID0gY2FuLmdldENvbnRleHQoIjJkIik7CitjdHgu
ZmlsbFN0eWxlID0gInJlZCI7CitjdHguZmlsbFJlY3QoMCwgMCwgNTAwLCA1MDApOworZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImkiKS5zcmMgPSBjYW4udG9EYXRhVVJMKCk7Citkb2N1bWVudC5i
b2R5LnNjcm9sbFRvcCA9IDUwOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggMGIwZmZlYzc1ZmNhODVmYjFiY2VmNWY5OGI3NTlmMDI3OGMzOTFhMC4uYWUzNmY1
ZTljMmI3ZWUyNDNlZDNlNmQwMTVjMzZiY2ZjZDEyMzE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMzIEBACisyMDExLTA2LTA4ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9t
aXVtXSBTY2lzc29yIHJlY3Qgbm90IHNldCBmb3IgY2xpcHBpbmcgbGF5ZXJzIHNldCBvZmZzY3Jl
ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzM5
CisKKyAgICAgICAgV2Ugc2V0IGEgc2Npc3NvclJlY3Qgb24gZWFjaCBsYXllciwgYnV0IG9ubHkg
bGF5ZXJzIHdpdGggbWFza3NUb0JvdW5kcyBhbmQgdGhlaXIgZGVzY2VuZGFudHMgc2hvdWxkIGFj
dHVhbGx5IHNldAorICAgICAgICBhIHNjaXNzb3IuICBMYXllcnMgdGhhdCBkaWRuJ3QgbmVlZCB0
byBzY2lzc29yIGhhZCBlbXB0eSBzY2lzc29yUmVjdHMuICBVbmZvcnR1bmF0ZWx5IGxheWVycyB3
aXRoIG1hc2tzVG9Cb3VuZHMKKyAgICAgICAgYW5kIHRoZWlyIGRlc2NlbmRhbnRzIHRoYXQgYXJl
IHNjcm9sbGVkIG9mZnNjcmVlbiBhbHNvIGVuZCB1cCB3aXRoIGFuIGVtcHR5IGNsaXBwZWQgc2Np
c3NvciByZWN0LgorCisgICAgICAgIFRoaXMgcGF0Y2ggc2V0cyBhbiBleHBsaWNpdCBiaXQgb24g
ZWFjaCBsYXllciB0aGF0IHNob3VsZCBzY2lzc29yIGFuZCB0aGVuIGNoZWNrcyB0aGF0IGJpdCBp
bnN0ZWFkIG9mIGNoZWNraW5nCisgICAgICAgIGZvciBhbiBlbXB0eSBzY2lzc29yIHJlY3QgYXQg
ZHJhdyB0aW1lLiAgUmVuZGVyU3VyZmFjZUNocm9taXVtcyBoYXZlIGRpZmZlcmVudCByZXF1aXJl
bWVudHMgZm9yCisgICAgICAgIHNldFNjaXNzb3JUb1JlY3QsIHNvIHRoZSBvbGQgYmVoYXZpb3Ig
aXMgc3RpbGwgYXZhaWxhYmxlIHdpdGggYSBmbGFnLiAgVGhpcyBjYW4gcHJvYmFibHkgYmUgY2xl
YW5lZCB1cCBtb3JlLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0
aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnVwZGF0ZVByb3BlcnRpZXNBbmRSZW5kZXJTdXJm
YWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnNldFNjaXNzb3JU
b1JlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRl
clN1cmZhY2VDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdXJmYWNlQ2hy
b21pdW06OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpDQ0xheWVySW1w
bCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRVc2VzTGF5ZXJTY2lzc29yKToK
KyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjp1c2VzTGF5ZXJTY2lzc29yKToKKwogMjAx
MS0wNi0wOCAgTWlrZSBSZWVkICA8cmVlZEBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAK
aW5kZXggNDdlZmNlYTBlZTY4NzUxMDI0NmRmNTdlMDA0YzMzZjMwMzI2YmM4ZC4uMDRiOTk3MzMx
ZTY1NmIwMzkzZDVkNWI4Yzg5M2M3NmUzN2I4M2Y5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRl
cmVyQ2hyb21pdW0uY3BwCkBAIC03MjYsNiArNzI2LDggQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hy
b21pdW06OnVwZGF0ZVByb3BlcnRpZXNBbmRSZW5kZXJTdXJmYWNlcyhDQ0xheWVySW1wbCogbGF5
ZXIKIAogICAgICAgICAgICAgLy8gTGF5ZXJzIGluaGVyaXQgdGhlIHNjaXNzb3IgcmVjdCBmcm9t
IHRoZWlyIHBhcmVudC4KICAgICAgICAgICAgIGxheWVyLT5zZXRTY2lzc29yUmVjdChsYXllci0+
cGFyZW50KCktPnNjaXNzb3JSZWN0KCkpOworICAgICAgICAgICAgaWYgKGxheWVyLT5wYXJlbnQo
KS0+dXNlc0xheWVyU2Npc3NvcigpKQorICAgICAgICAgICAgICAgIGxheWVyLT5zZXRVc2VzTGF5
ZXJTY2lzc29yKHRydWUpOwogCiAgICAgICAgICAgICBsYXllci0+c2V0VGFyZ2V0UmVuZGVyU3Vy
ZmFjZShsYXllci0+cGFyZW50KCktPnRhcmdldFJlbmRlclN1cmZhY2UoKSk7CiAgICAgICAgIH0K
QEAgLTczOCw2ICs3NDAsNyBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6dXBkYXRlUHJv
cGVydGllc0FuZFJlbmRlclN1cmZhY2VzKENDTGF5ZXJJbXBsKiBsYXllcgogICAgICAgICAgICAg
aWYgKCFsYXllci0+c2Npc3NvclJlY3QoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgc2Np
c3Nvci5pbnRlcnNlY3QobGF5ZXItPnNjaXNzb3JSZWN0KCkpOwogICAgICAgICAgICAgbGF5ZXIt
PnNldFNjaXNzb3JSZWN0KHNjaXNzb3IpOworICAgICAgICAgICAgbGF5ZXItPnNldFVzZXNMYXll
clNjaXNzb3IodHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTk3MywxMiArOTc2LDExIEBA
IHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXIoQ0NMYXllckltcGwqIGxheWVy
LCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBz
ZXRTY2lzc29yVG9SZWN0KGxheWVyLT5zY2lzc29yUmVjdCgpKTsKLQorICAgIGlmIChsYXllci0+
dXNlc0xheWVyU2Npc3NvcigpKQorICAgICAgICBzZXRTY2lzc29yVG9SZWN0KGxheWVyLT5zY2lz
c29yUmVjdCgpKTsKKyAgICBlbHNlCisgICAgICAgIEdMQyhtX2NvbnRleHQuZ2V0KCksIG1fY29u
dGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNUKSk7CiAgICAgSW50
UmVjdCB0YXJnZXRTdXJmYWNlUmVjdCA9IG1fY3VycmVudFJlbmRlclN1cmZhY2UgPyBtX2N1cnJl
bnRSZW5kZXJTdXJmYWNlLT5jb250ZW50UmVjdCgpIDogbV9kZWZhdWx0UmVuZGVyU3VyZmFjZS0+
Y29udGVudFJlY3QoKTsKLSAgICBJbnRSZWN0IHNjaXNzb3JSZWN0ID0gbGF5ZXItPnNjaXNzb3JS
ZWN0KCk7Ci0gICAgaWYgKCFzY2lzc29yUmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHRhcmdldFN1
cmZhY2VSZWN0LmludGVyc2VjdChzY2lzc29yUmVjdCk7CiAKICAgICAvLyBDaGVjayBpZiB0aGUg
bGF5ZXIgZmFsbHMgd2l0aGluIHRoZSB2aXNpYmxlIGJvdW5kcyBvZiB0aGUgcGFnZS4KICAgICBJ
bnRSZWN0IGxheWVyUmVjdCA9IGxheWVyLT5nZXREcmF3UmVjdCgpOwpAQCAtMTAxNCwxMSArMTAx
NiwxMSBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyKENDTGF5ZXJJbXBs
KiBsYXllciwgUmVuZGVyU3VyZmFjZUNocm9taXVtKgogCiAvLyBTZXRzIHRoZSBzY2lzc29yIHJl
Z2lvbiB0byB0aGUgZ2l2ZW4gcmVjdGFuZ2xlLiBUaGUgY29vcmRpbmF0ZSBzeXN0ZW0gZm9yIHRo
ZQogLy8gc2Npc3NvclJlY3QgaGFzIGl0cyBvcmlnaW4gYXQgdGhlIHRvcCBsZWZ0IGNvcm5lciBv
ZiB0aGUgY3VycmVudCB2aXNpYmxlIHJlY3QuCi12b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6
c2V0U2Npc3NvclRvUmVjdChjb25zdCBJbnRSZWN0JiByZXF1ZXN0ZWRTY2lzc29yKQordm9pZCBM
YXllclJlbmRlcmVyQ2hyb21pdW06OnNldFNjaXNzb3JUb1JlY3QoY29uc3QgSW50UmVjdCYgc2Np
c3NvclJlY3QpCiB7CiAgICAgSW50UmVjdCBjb250ZW50UmVjdCA9IChtX2N1cnJlbnRSZW5kZXJT
dXJmYWNlID8gbV9jdXJyZW50UmVuZGVyU3VyZmFjZS0+bV9jb250ZW50UmVjdCA6IG1fZGVmYXVs
dFJlbmRlclN1cmZhY2UtPm1fY29udGVudFJlY3QpOwogCi0gICAgY29uc3QgSW50UmVjdCBzY2lz
c29yUmVjdCA9IHJlcXVlc3RlZFNjaXNzb3IuaXNFbXB0eSgpID8gY29udGVudFJlY3QgOiByZXF1
ZXN0ZWRTY2lzc29yOworICAgIEdMQyhtX2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+ZW5hYmxl
KEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RFU1QpKTsKIAogICAgIC8vIFRoZSBzY2lzc29y
IGNvb3JkaW5hdGVzIG11c3QgYmUgc3VwcGxpZWQgaW4gdmlld3BvcnQgc3BhY2Ugc28gd2UgbmVl
ZCB0byBvZmZzZXQKICAgICAvLyBieSB0aGUgcmVsYXRpdmUgcG9zaXRpb24gb2YgdGhlIHRvcCBs
ZWZ0IGNvcm5lciBvZiB0aGUgY3VycmVudCByZW5kZXIgc3VyZmFjZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJv
bWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5k
ZXJTdXJmYWNlQ2hyb21pdW0uY3BwCmluZGV4IGVmY2E4MjJmZWQ2NzQ3NGMzNWRkNjNlMGQ2NzNk
NzExOTczY2UyMTYuLmFkNDU0OTdhMjU1MTlhOWUzNjA4MjlhMmQ1NDIwNTQwZDM3MTY3ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRl
clN1cmZhY2VDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmNwcApAQCAtMTUyLDcgKzE1MiwxMSBA
QCB2b2lkIFJlbmRlclN1cmZhY2VDaHJvbWl1bTo6ZHJhdyhjb25zdCBJbnRSZWN0JikKICAgICBp
ZiAoIW1fbWFza0xheWVyICYmIG1fb3duaW5nTGF5ZXItPnJlcGxpY2FMYXllcigpKQogICAgICAg
ICByZXBsaWNhTWFza0xheWVyID0gbV9vd25pbmdMYXllci0+cmVwbGljYUxheWVyKCktPm1hc2tM
YXllcigpOwogCi0gICAgbGF5ZXJSZW5kZXJlcigpLT5zZXRTY2lzc29yVG9SZWN0KG1fc2Npc3Nv
clJlY3QpOworICAgIGlmICghbV9zY2lzc29yUmVjdC5pc0VtcHR5KCkpCisgICAgICAgIGxheWVy
UmVuZGVyZXIoKS0+c2V0U2Npc3NvclRvUmVjdChtX3NjaXNzb3JSZWN0KTsKKyAgICBlbHNlCisg
ICAgICAgIEdMQyhsYXllclJlbmRlcmVyKCktPmNvbnRleHQoKSwgbGF5ZXJSZW5kZXJlcigpLT5j
b250ZXh0KCktPmRpc2FibGUoR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVCkpOworCiAK
ICAgICAvLyBSZWZsZWN0aW9uIGRyYXdzIGJlZm9yZSB0aGUgbGF5ZXIuCiAgICAgaWYgKG1fb3du
aW5nTGF5ZXItPnJlcGxpY2FMYXllcigpKSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcAppbmRleCBi
NDAyOTMzMzQwNmQ3YWRmZjEyMjM5NDg0M2E1OWUzZTAyNGI1OWE0Li4zZjc0Nzc4ZDY5NDliNWIw
MTJiODEwYTBhMDY1ZTUyOGY1YjQwNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCkBAIC03
MCw2ICs3MCw3IEBAIENDTGF5ZXJJbXBsOjpDQ0xheWVySW1wbChMYXllckNocm9taXVtKiBvd25l
ciwgaW50IGlkKQogICAgICwgbV9tYXNrc1RvQm91bmRzKGZhbHNlKQogICAgICwgbV9vcGFjaXR5
KDEuMCkKICAgICAsIG1fcHJlc2VydmVzM0QoZmFsc2UpCisgICAgLCBtX3VzZXNMYXllclNjaXNz
b3IoZmFsc2UpCiAgICAgLCBtX3RhcmdldFJlbmRlclN1cmZhY2UoMCkKICAgICAsIG1fZHJhd0Rl
cHRoKDApCiAgICAgLCBtX2RyYXdPcGFjaXR5KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAppbmRleCBk
NTBmMGE4MmE5MTE4N2QyMzY4MjY4NjIzYzhlYTNhZmI2ODViMmZmLi45ZTJkYTFjZmYwODU1ZTJi
ZmNkN2RkNzJhNzEzY2E3MTliNDE2YjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKQEAgLTEwMCw2
ICsxMDAsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXMzRChib29sIHByZXNlcnZl
czNEKSB7IG1fcHJlc2VydmVzM0QgPSBwcmVzZXJ2ZXMzRDsgfQogICAgIGJvb2wgcHJlc2VydmVz
M0QoKSBjb25zdCB7IHJldHVybiBtX3ByZXNlcnZlczNEOyB9CiAKKyAgICB2b2lkIHNldFVzZXNM
YXllclNjaXNzb3IoYm9vbCB1c2VzTGF5ZXJTY2lzc29yKSB7IG1fdXNlc0xheWVyU2Npc3NvciA9
IHVzZXNMYXllclNjaXNzb3I7IH0KKyAgICBib29sIHVzZXNMYXllclNjaXNzb3IoKSBjb25zdCB7
IHJldHVybiBtX3VzZXNMYXllclNjaXNzb3I7IH0KKwogICAgIHZvaWQgc2V0U3VibGF5ZXJUcmFu
c2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHN1YmxheWVyVHJhbnNmb3JtKSB7IG1f
c3VibGF5ZXJUcmFuc2Zvcm0gPSBzdWJsYXllclRyYW5zZm9ybTsgfQogICAgIGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiBzdWJsYXllclRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Vi
bGF5ZXJUcmFuc2Zvcm07IH0KIApAQCAtMTgzLDYgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3ByZXNlcnZlczNEOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fc3VibGF5ZXJUcmFu
c2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV90cmFuc2Zvcm07CisgICAgYm9vbCBt
X3VzZXNMYXllclNjaXNzb3I7CiAKICAgICAvLyBQcm9wZXJ0aWVzIG93bmVkIGV4Y2x1c2l2ZWx5
IGJ5IHRoaXMgQ0NMYXllckltcGwuCiAgICAgLy8gRGVidWdnaW5nLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96616</attachid>
            <date>2011-06-09 12:25:14 -0700</date>
            <delta_ts>2011-06-09 15:54:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62339-20110609122513.patch</filename>
            <type>text/plain</type>
            <size>11916</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODg0NjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1Mzc1Y2RhODBiMzg1NjBkZmU3ODM1
ZjhmNDVkOTlkM2ViMGE2YmNmLi45YjZjOWRhMmJiYmM5M2MzYTc0ZGU5YjIyYmU4MzAyOTJlMDhi
YmFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDYtMDkgIEphbWVzIFJvYmluc29uICA8
amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbY2hyb21pdW1dIFNjaXNzb3IgcmVjdCBub3Qgc2V0IGZvciBjbGlwcGlu
ZyBsYXllcnMgc2V0IG9mZnNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjIzMzkKKworICAgICAgICBUZXN0cyB0aGF0IGEgbGF5ZXIgdGhhdCBz
aG91bGQgY2xpcCBpdHMgY2hpbGRyZW4gYWN0dWFsbHkgZG9lcyBjbGlwIGV2ZW4gd2hlbiBzY3Jv
bGxlZCBvZmZzY3JlZW4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGlu
Zy9zY2lzc29yLW91dC1vZi12aWV3cG9ydC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvc2Npc3Nvci1vdXQtb2Ytdmlld3BvcnQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYtMDkgIENo
YW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFz
IEtsaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9z
aXRpbmcvc2Npc3Nvci1vdXQtb2Ytdmlld3BvcnQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvc2Npc3Nvci1vdXQtb2Ytdmlld3BvcnQtZXhw
ZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ZGFhODU1NWU4NmMzMzBlYjJlNWVjY2Y2NzY5MGQ2ZTQx
Mjg2MDUKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI4NDAKemNtZUFTQE4/KG9sSHlgdVZCcSFp
YTB5fnlVeyt2WVYyYT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8bX0/b1RtfW5NCno8Q0loYjE1LTJl
NmhrQSFxfGApJUI9ZS15PFd3YFdNQUg7QSF7aHw+fEd5YSt4Sz8/KElFR1pyZDMpXzNDeGUyKAp6
MGZXOzJiSStAQ0hLXz1IeG9LPDYmQ3FiSlFrSD8/Z0xFQDFnTWVgYTFCMmx4Vj5BIyhRXklJMjd8
akt2eG5NTEcKbWpPSyNUVHJpcG89I21SSWF4PG98dVFqPU54ZlImZFckPCtNYjZNdzwmOyRVOEFH
ampgCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9zY2lzc29yLW91dC1vZi12aWV3cG9ydC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9zY2lzc29y
LW91dC1vZi12aWV3cG9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTM5NTk3ZjljYjA3YzVk
NDhiZWQxODk4NGVjNDc0N2Y0YjRmMzQzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3NjaXNzb3Itb3V0LW9mLXZpZXdwb3J0LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9zY2lzc29yLW91dC1vZi12aWV3cG9ydC5odG1s
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvc2Npc3Nvci1vdXQt
b2Ytdmlld3BvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjc5NzljOTQ2ZGU5N2I1YzBhOTNlMjY1Yjkw
OWFiMjM3Y2UxZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvc2Npc3Nvci1vdXQtb2Ytdmlld3BvcnQuaHRtbApAQCAtMCwwICsx
LDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gVGhpcyB0ZXN0IGhhcyBhIDE2cHggdGFsbCBk
aXYgd2l0aCBvdmVyZmxvdzpoaWRkZW4gc2V0IGFuZCBhIGNoaWxkIGltYWdlLiAgV2hlbiB0aGUg
dGVzdCBsb2FkcyB0aGUgZGl2IGlzIHNjcm9sbGVkIG91dCBvZiB2aWV3LgorICAgICBUaGUgdGVz
dCBpcyBhIHBhc3MgaWYgdGhlIGltYWdlIGRvZXMgbm90IGFwcGVhci4gLS0+Cis8Ym9keSBzdHls
ZT0ib3ZlcmZsb3c6aGlkZGVuIj4KKzxjYW52YXMgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsi
PjwvY2FudmFzPgorPHNjcmlwdD4KKyAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIiku
Z2V0Q29udGV4dCgiMmQiKTsKKzwvc2NyaXB0PgorPGRpdiBzdHlsZT0idG9wOjBweDsgaGVpZ2h0
OiAxNnB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Ij4KKyAgPGltZyBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtMTZweDsiIGlkPSJpIj48L2ltZz4KKzwv
ZGl2PgorPGJyPgorPGRpdiBzdHlsZT0iaGVpZ2h0OjIwMDBweCI+PC9kaXY+Cis8c2NyaXB0Pgor
dmFyIGNhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworY2FuLndpZHRoID0g
Y2FuLmhlaWdodCA9IDUwMDsKK3ZhciBjdHggPSBjYW4uZ2V0Q29udGV4dCgiMmQiKTsKK2N0eC5m
aWxsU3R5bGUgPSAicmVkIjsKK2N0eC5maWxsUmVjdCgwLCAwLCA1MDAsIDUwMCk7Citkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaSIpLnNyYyA9IGNhbi50b0RhdGFVUkwoKTsKK2RvY3VtZW50LmJv
ZHkuc2Nyb2xsVG9wID0gNTA7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBlODY4Mjk3N2M2M2ViOTNhMjQ0NWUzZTAyZmY0YjljNjAwZDA3ZmFjLi5hMzI5MGRl
MzBiZjg5N2VlMGU0MTU1MmVmMmMzOTgzZDdlODYxNmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzMgQEAKKzIwMTEtMDYtMDkgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21p
dW1dIFNjaXNzb3IgcmVjdCBub3Qgc2V0IGZvciBjbGlwcGluZyBsYXllcnMgc2V0IG9mZnNjcmVl
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzMzkK
KworICAgICAgICBXZSBzZXQgYSBzY2lzc29yUmVjdCBvbiBlYWNoIGxheWVyLCBidXQgb25seSBs
YXllcnMgd2l0aCBtYXNrc1RvQm91bmRzIGFuZCB0aGVpciBkZXNjZW5kYW50cyBzaG91bGQgYWN0
dWFsbHkgc2V0CisgICAgICAgIGEgc2Npc3Nvci4gIExheWVycyB0aGF0IGRpZG4ndCBuZWVkIHRv
IHNjaXNzb3IgaGFkIGVtcHR5IHNjaXNzb3JSZWN0cy4gIFVuZm9ydHVuYXRlbHkgbGF5ZXJzIHdp
dGggbWFza3NUb0JvdW5kcworICAgICAgICBhbmQgdGhlaXIgZGVzY2VuZGFudHMgdGhhdCBhcmUg
c2Nyb2xsZWQgb2Zmc2NyZWVuIGFsc28gZW5kIHVwIHdpdGggYW4gZW1wdHkgY2xpcHBlZCBzY2lz
c29yIHJlY3QuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzZXRzIGFuIGV4cGxpY2l0IGJpdCBvbiBl
YWNoIGxheWVyIHRoYXQgc2hvdWxkIHNjaXNzb3IgYW5kIHRoZW4gY2hlY2tzIHRoYXQgYml0IGlu
c3RlYWQgb2YgY2hlY2tpbmcKKyAgICAgICAgZm9yIGFuIGVtcHR5IHNjaXNzb3IgcmVjdCBhdCBk
cmF3IHRpbWUuICBSZW5kZXJTdXJmYWNlQ2hyb21pdW1zIGhhdmUgZGlmZmVyZW50IHJlcXVpcmVt
ZW50cyBmb3IKKyAgICAgICAgc2V0U2Npc3NvclRvUmVjdCwgc28gdGhlIG9sZCBiZWhhdmlvciBp
cyBzdGlsbCBhdmFpbGFibGUgd2l0aCBhIGZsYWcuICBUaGlzIGNhbiBwcm9iYWJseSBiZSBjbGVh
bmVkIHVwIG1vcmUuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvc2Npc3Nvci1vdXQtb2Ytdmlld3BvcnQuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6dXBkYXRlUHJvcGVydGllc0FuZFJlbmRlclN1cmZh
Y2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0U2Npc3NvclRv
UmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVy
U3VyZmFjZUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN1cmZhY2VDaHJv
bWl1bTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OkNDTGF5ZXJJbXBs
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5o
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNldFVzZXNMYXllclNjaXNzb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnVzZXNMYXllclNjaXNzb3IpOgorCiAyMDEx
LTA2LTA5ICBEYXZlIFRhcHVza2EgIDxkdGFwdXNrYUByaW0uY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhbmllbCBCYXRlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3Bw
CmluZGV4IDQ3ZWZjZWEwZWU2ODc1MTAyNDZkZjU3ZTAwNGMzM2YzMDMyNmJjOGQuLjQxM2QwZTNl
MmFkOThmZjNjNDAzOWYxY2RlODc4OWI2MDZhNWE5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5k
ZXJlckNocm9taXVtLmNwcApAQCAtNjU4LDYgKzY1OCw5IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNo
cm9taXVtOjp1cGRhdGVQcm9wZXJ0aWVzQW5kUmVuZGVyU3VyZmFjZXMoQ0NMYXllckltcGwqIGxh
eWVyCiAgICAgRmxvYXRSZWN0IGxheWVyUmVjdCgtMC41ICogbGF5ZXItPmJvdW5kcygpLndpZHRo
KCksIC0wLjUgKiBsYXllci0+Ym91bmRzKCkuaGVpZ2h0KCksIGxheWVyLT5ib3VuZHMoKS53aWR0
aCgpLCBsYXllci0+Ym91bmRzKCkuaGVpZ2h0KCkpOwogICAgIEludFJlY3QgdHJhbnNmb3JtZWRM
YXllclJlY3Q7CiAKKyAgICAvLyBGSVhNRTogVGhpcyBzZWVtcyBsaWtlIHRoZSB3cm9uZyBwbGFj
ZSB0byBzZXQgdGhpcworICAgIGxheWVyLT5zZXRVc2VzTGF5ZXJTY2lzc29yKGZhbHNlKTsKKwog
ICAgIC8vIFRoZSBsYXllciBhbmQgaXRzIGRlc2NlbmRhbnRzIHJlbmRlciBvbiBhIG5ldyBSZW5k
ZXJTdXJmYWNlIGlmIGFueSBvZgogICAgIC8vIHRoZXNlIGNvbmRpdGlvbnMgaG9sZDoKICAgICAv
LyAxLiBUaGUgbGF5ZXIgY2xpcHMgaXRzIGRlc2NlbmRhbnRzIGFuZCBpdHMgdHJhbnNmb3JtIGlz
IG5vdCBhIHNpbXBsZSB0cmFuc2xhdGlvbi4KQEAgLTY5NCw3ICs2OTcsNiBAQCB2b2lkIExheWVy
UmVuZGVyZXJDaHJvbWl1bTo6dXBkYXRlUHJvcGVydGllc0FuZFJlbmRlclN1cmZhY2VzKENDTGF5
ZXJJbXBsKiBsYXllcgogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBsYXllck9yaWdpblRy
YW5zZm9ybSA9IGNvbWJpbmVkVHJhbnNmb3JtOwogICAgICAgICBsYXllck9yaWdpblRyYW5zZm9y
bS50cmFuc2xhdGUzZCgtMC41ICogYm91bmRzLndpZHRoKCksIC0wLjUgKiBib3VuZHMuaGVpZ2h0
KCksIDApOwogICAgICAgICByZW5kZXJTdXJmYWNlLT5tX29yaWdpblRyYW5zZm9ybSA9IGxheWVy
T3JpZ2luVHJhbnNmb3JtOwotICAgICAgICBsYXllci0+c2V0U2Npc3NvclJlY3QoSW50UmVjdCgp
KTsKIAogICAgICAgICAvLyBUaGUgcmVuZGVyIHN1cmZhY2Ugc2Npc3NvciByZWN0IGlzIHRoZSBz
Y2lzc29yIHJlY3QgdGhhdCBuZWVkcyB0bwogICAgICAgICAvLyBiZSBhcHBsaWVkIGJlZm9yZSBk
cmF3aW5nIHRoZSByZW5kZXIgc3VyZmFjZSBvbnRvIGl0cyBjb250YWluaW5nCkBAIC03MjYsNiAr
NzI4LDggQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OnVwZGF0ZVByb3BlcnRpZXNBbmRS
ZW5kZXJTdXJmYWNlcyhDQ0xheWVySW1wbCogbGF5ZXIKIAogICAgICAgICAgICAgLy8gTGF5ZXJz
IGluaGVyaXQgdGhlIHNjaXNzb3IgcmVjdCBmcm9tIHRoZWlyIHBhcmVudC4KICAgICAgICAgICAg
IGxheWVyLT5zZXRTY2lzc29yUmVjdChsYXllci0+cGFyZW50KCktPnNjaXNzb3JSZWN0KCkpOwor
ICAgICAgICAgICAgaWYgKGxheWVyLT5wYXJlbnQoKS0+dXNlc0xheWVyU2Npc3NvcigpKQorICAg
ICAgICAgICAgICAgIGxheWVyLT5zZXRVc2VzTGF5ZXJTY2lzc29yKHRydWUpOwogCiAgICAgICAg
ICAgICBsYXllci0+c2V0VGFyZ2V0UmVuZGVyU3VyZmFjZShsYXllci0+cGFyZW50KCktPnRhcmdl
dFJlbmRlclN1cmZhY2UoKSk7CiAgICAgICAgIH0KQEAgLTczOCw2ICs3NDIsNyBAQCB2b2lkIExh
eWVyUmVuZGVyZXJDaHJvbWl1bTo6dXBkYXRlUHJvcGVydGllc0FuZFJlbmRlclN1cmZhY2VzKEND
TGF5ZXJJbXBsKiBsYXllcgogICAgICAgICAgICAgaWYgKCFsYXllci0+c2Npc3NvclJlY3QoKS5p
c0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgc2Npc3Nvci5pbnRlcnNlY3QobGF5ZXItPnNjaXNz
b3JSZWN0KCkpOwogICAgICAgICAgICAgbGF5ZXItPnNldFNjaXNzb3JSZWN0KHNjaXNzb3IpOwor
ICAgICAgICAgICAgbGF5ZXItPnNldFVzZXNMYXllclNjaXNzb3IodHJ1ZSk7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTk3MywxMiArOTc4LDExIEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVt
OjpkcmF3TGF5ZXIoQ0NMYXllckltcGwqIGxheWVyLCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZXRTY2lzc29yVG9SZWN0KGxheWVyLT5zY2lz
c29yUmVjdCgpKTsKLQorICAgIGlmIChsYXllci0+dXNlc0xheWVyU2Npc3NvcigpKQorICAgICAg
ICBzZXRTY2lzc29yVG9SZWN0KGxheWVyLT5zY2lzc29yUmVjdCgpKTsKKyAgICBlbHNlCisgICAg
ICAgIEdMQyhtX2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRl
eHQzRDo6U0NJU1NPUl9URVNUKSk7CiAgICAgSW50UmVjdCB0YXJnZXRTdXJmYWNlUmVjdCA9IG1f
Y3VycmVudFJlbmRlclN1cmZhY2UgPyBtX2N1cnJlbnRSZW5kZXJTdXJmYWNlLT5jb250ZW50UmVj
dCgpIDogbV9kZWZhdWx0UmVuZGVyU3VyZmFjZS0+Y29udGVudFJlY3QoKTsKLSAgICBJbnRSZWN0
IHNjaXNzb3JSZWN0ID0gbGF5ZXItPnNjaXNzb3JSZWN0KCk7Ci0gICAgaWYgKCFzY2lzc29yUmVj
dC5pc0VtcHR5KCkpCi0gICAgICAgIHRhcmdldFN1cmZhY2VSZWN0LmludGVyc2VjdChzY2lzc29y
UmVjdCk7CiAKICAgICAvLyBDaGVjayBpZiB0aGUgbGF5ZXIgZmFsbHMgd2l0aGluIHRoZSB2aXNp
YmxlIGJvdW5kcyBvZiB0aGUgcGFnZS4KICAgICBJbnRSZWN0IGxheWVyUmVjdCA9IGxheWVyLT5n
ZXREcmF3UmVjdCgpOwpAQCAtMTAxNCwxMSArMTAxOCwxMSBAQCB2b2lkIExheWVyUmVuZGVyZXJD
aHJvbWl1bTo6ZHJhd0xheWVyKENDTGF5ZXJJbXBsKiBsYXllciwgUmVuZGVyU3VyZmFjZUNocm9t
aXVtKgogCiAvLyBTZXRzIHRoZSBzY2lzc29yIHJlZ2lvbiB0byB0aGUgZ2l2ZW4gcmVjdGFuZ2xl
LiBUaGUgY29vcmRpbmF0ZSBzeXN0ZW0gZm9yIHRoZQogLy8gc2Npc3NvclJlY3QgaGFzIGl0cyBv
cmlnaW4gYXQgdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUgY3VycmVudCB2aXNpYmxlIHJlY3Qu
Ci12b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0U2Npc3NvclRvUmVjdChjb25zdCBJbnRS
ZWN0JiByZXF1ZXN0ZWRTY2lzc29yKQordm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OnNldFNj
aXNzb3JUb1JlY3QoY29uc3QgSW50UmVjdCYgc2Npc3NvclJlY3QpCiB7CiAgICAgSW50UmVjdCBj
b250ZW50UmVjdCA9IChtX2N1cnJlbnRSZW5kZXJTdXJmYWNlID8gbV9jdXJyZW50UmVuZGVyU3Vy
ZmFjZS0+bV9jb250ZW50UmVjdCA6IG1fZGVmYXVsdFJlbmRlclN1cmZhY2UtPm1fY29udGVudFJl
Y3QpOwogCi0gICAgY29uc3QgSW50UmVjdCBzY2lzc29yUmVjdCA9IHJlcXVlc3RlZFNjaXNzb3Iu
aXNFbXB0eSgpID8gY29udGVudFJlY3QgOiByZXF1ZXN0ZWRTY2lzc29yOworICAgIEdMQyhtX2Nv
bnRleHQuZ2V0KCksIG1fY29udGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09S
X1RFU1QpKTsKIAogICAgIC8vIFRoZSBzY2lzc29yIGNvb3JkaW5hdGVzIG11c3QgYmUgc3VwcGxp
ZWQgaW4gdmlld3BvcnQgc3BhY2Ugc28gd2UgbmVlZCB0byBvZmZzZXQKICAgICAvLyBieSB0aGUg
cmVsYXRpdmUgcG9zaXRpb24gb2YgdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUgY3VycmVudCBy
ZW5kZXIgc3VyZmFjZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uY3BwCmluZGV4
IGVmY2E4MjJmZWQ2NzQ3NGMzNWRkNjNlMGQ2NzNkNzExOTczY2UyMTYuLmE1YjZmYTlmZTU0ZDgw
N2UxYmY4ZWMzYzI1OTgwN2Q4OTQwNDMxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNo
cm9taXVtLmNwcApAQCAtMTUyLDcgKzE1MiwxMSBAQCB2b2lkIFJlbmRlclN1cmZhY2VDaHJvbWl1
bTo6ZHJhdyhjb25zdCBJbnRSZWN0JikKICAgICBpZiAoIW1fbWFza0xheWVyICYmIG1fb3duaW5n
TGF5ZXItPnJlcGxpY2FMYXllcigpKQogICAgICAgICByZXBsaWNhTWFza0xheWVyID0gbV9vd25p
bmdMYXllci0+cmVwbGljYUxheWVyKCktPm1hc2tMYXllcigpOwogCi0gICAgbGF5ZXJSZW5kZXJl
cigpLT5zZXRTY2lzc29yVG9SZWN0KG1fc2Npc3NvclJlY3QpOworICAgIGlmIChtX293bmluZ0xh
eWVyLT5wYXJlbnQoKSAmJiBtX293bmluZ0xheWVyLT5wYXJlbnQoKS0+dXNlc0xheWVyU2Npc3Nv
cigpKQorICAgICAgICBsYXllclJlbmRlcmVyKCktPnNldFNjaXNzb3JUb1JlY3QobV9zY2lzc29y
UmVjdCk7CisgICAgZWxzZQorICAgICAgICBHTEMobGF5ZXJSZW5kZXJlcigpLT5jb250ZXh0KCks
IGxheWVyUmVuZGVyZXIoKS0+Y29udGV4dCgpLT5kaXNhYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpT
Q0lTU09SX1RFU1QpKTsKKwogCiAgICAgLy8gUmVmbGVjdGlvbiBkcmF3cyBiZWZvcmUgdGhlIGxh
eWVyLgogICAgIGlmIChtX293bmluZ0xheWVyLT5yZXBsaWNhTGF5ZXIoKSkgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5jcHAKaW5kZXggYjQwMjkzMzM0MDZkN2FkZmYxMjIzOTQ4NDNhNTllM2UwMjRiNTlh
NC4uM2Y3NDc3OGQ2OTQ5YjViMDEyYjgxMGEwYTA2NWU1MjhmNWI0MDUwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmNwcApAQCAtNzAsNiArNzAsNyBAQCBDQ0xheWVySW1wbDo6Q0NMYXllckltcGwo
TGF5ZXJDaHJvbWl1bSogb3duZXIsIGludCBpZCkKICAgICAsIG1fbWFza3NUb0JvdW5kcyhmYWxz
ZSkKICAgICAsIG1fb3BhY2l0eSgxLjApCiAgICAgLCBtX3ByZXNlcnZlczNEKGZhbHNlKQorICAg
ICwgbV91c2VzTGF5ZXJTY2lzc29yKGZhbHNlKQogICAgICwgbV90YXJnZXRSZW5kZXJTdXJmYWNl
KDApCiAgICAgLCBtX2RyYXdEZXB0aCgwKQogICAgICwgbV9kcmF3T3BhY2l0eSgwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
ckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmgKaW5kZXggZDUwZjBhODJhOTExODdkMjM2ODI2ODYyM2M4ZWEzYWZiNjg1YjJm
Zi4uOWUyZGExY2ZmMDg1NWUyYmZjZDdkZDcyYTcxM2NhNzE5YjQxNmIzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5oCkBAIC0xMDAsNiArMTAwLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJlc2Vy
dmVzM0QoYm9vbCBwcmVzZXJ2ZXMzRCkgeyBtX3ByZXNlcnZlczNEID0gcHJlc2VydmVzM0Q7IH0K
ICAgICBib29sIHByZXNlcnZlczNEKCkgY29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZXMzRDsgfQog
CisgICAgdm9pZCBzZXRVc2VzTGF5ZXJTY2lzc29yKGJvb2wgdXNlc0xheWVyU2Npc3NvcikgeyBt
X3VzZXNMYXllclNjaXNzb3IgPSB1c2VzTGF5ZXJTY2lzc29yOyB9CisgICAgYm9vbCB1c2VzTGF5
ZXJTY2lzc29yKCkgY29uc3QgeyByZXR1cm4gbV91c2VzTGF5ZXJTY2lzc29yOyB9CisKICAgICB2
b2lkIHNldFN1YmxheWVyVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBzdWJs
YXllclRyYW5zZm9ybSkgeyBtX3N1YmxheWVyVHJhbnNmb3JtID0gc3VibGF5ZXJUcmFuc2Zvcm07
IH0KICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgc3VibGF5ZXJUcmFuc2Zvcm0oKSBj
b25zdCB7IHJldHVybiBtX3N1YmxheWVyVHJhbnNmb3JtOyB9CiAKQEAgLTE4Myw2ICsxODYsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9wcmVzZXJ2ZXMzRDsKICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBtX3N1YmxheWVyVHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fdHJh
bnNmb3JtOworICAgIGJvb2wgbV91c2VzTGF5ZXJTY2lzc29yOwogCiAgICAgLy8gUHJvcGVydGll
cyBvd25lZCBleGNsdXNpdmVseSBieSB0aGlzIENDTGF5ZXJJbXBsLgogICAgIC8vIERlYnVnZ2lu
Zy4K
</data>

          </attachment>
      

    </bug>

</bugzilla>