<?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>56156</bug_id>
          
          <creation_ts>2011-03-10 17:32:11 -0800</creation_ts>
          <short_desc>Add setting to always force compositing mode</short_desc>
          <delta_ts>2011-03-16 16:38:12 -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>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Daniel Sievers">sievers</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andreip</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>husky</cc>
    
    <cc>jamesr</cc>
    
    <cc>klobag</cc>
    
    <cc>sievers</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>365694</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-10 17:32:11 -0800</bug_when>
    <thetext>Add setting to always force compositing mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365702</commentid>
    <comment_count>1</comment_count>
      <attachid>85414</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-10 17:43:15 -0800</bug_when>
    <thetext>Created attachment 85414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366162</commentid>
    <comment_count>2</comment_count>
      <attachid>85414</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-03-11 11:31:00 -0800</bug_when>
    <thetext>Comment on attachment 85414
Patch

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

&gt; Source/WebCore/page/Settings.h:375
&gt; +        void setAlwaysEnterCompositing(bool flag) { m_alwaysEnterCompositing = flag; }

Not a huge fan of the &quot;alwaysEnterCompositing&quot; name (mostly the word &quot;enter&quot;). Possible alternative names that come to mind: alwaysEnableCompositingMode, alwaysUseCompositing, forceCompositingMode, ...

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:114
&gt; +    if (settings &amp;&amp; settings-&gt;alwaysEnterCompositing()) {

We also need to test for m_hasAcceleratedCompositing.  That value is not available at the time the constructor gets called.  Things work fine since there&apos;s a check at the end of updateCompositingLayers but it seems somewhat inefficient to go ahead and do all the work, create the GraphicsLayer tree and then gut it all out of compositing isn&apos;t supported.

Should this logic maybe move from the constructor to the top of updateCompositingLayers() ?

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:725
&gt; +    if (!m_alwaysEnterCompositing || m_renderView-&gt;document()-&gt;frame()-&gt;tree()-&gt;parent()) {

Instead of replicating the test for child frames here (which could be fragile if other conditions get added), you could possibly only set m_alwaysEnterCompositing to true in the constructor if your&apos;re not dealing with the child frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367380</commentid>
    <comment_count>3</comment_count>
      <attachid>85747</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-14 17:40:13 -0700</bug_when>
    <thetext>Created attachment 85747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367386</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-14 17:47:28 -0700</bug_when>
    <thetext>&gt; 
&gt; Not a huge fan of the &quot;alwaysEnterCompositing&quot; name (mostly the word &quot;enter&quot;). Possible alternative names that come to mind: alwaysEnableCompositingMode, alwaysUseCompositing, forceCompositingMode, ...
&gt; 

&apos;forceCompositingMode&apos; it is! The &apos;force&apos; naming is already used on some other options, and I find it clearer than &apos;always enable&apos; (with the existing &apos;enableHardwareAcceleratedCompositing&apos; and such).


&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:114
&gt; &gt; +    if (settings &amp;&amp; settings-&gt;alwaysEnterCompositing()) {
&gt; 
&gt; We also need to test for m_hasAcceleratedCompositing.  That value is not available at the time the constructor gets called.  Things work fine since there&apos;s a check at the end of updateCompositingLayers but it seems somewhat inefficient to go ahead and do all the work, create the GraphicsLayer tree and then gut it all out of compositing isn&apos;t supported.


Ok, I added a check for settings-&gt;acceleratedCompositingEnabled() in the constructor...




&gt; Should this logic maybe move from the constructor to the top of updateCompositingLayers() ?
&gt; 


... and I thought about this, but I think it&apos;s more bullet-proof to create the root platform layer in the constructor, just for the however slight chance that we might not call updateCompositingLayer() somehow. Also note that the existance of the root platform layer is used in WebView to decide whether compositing is on (m_isAcceleratedCompositingActive).


&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:725
&gt; &gt; +    if (!m_alwaysEnterCompositing || m_renderView-&gt;document()-&gt;frame()-&gt;tree()-&gt;parent()) {
&gt; 
&gt; Instead of replicating the test for child frames here (which could be fragile if other conditions get added), you could possibly only set m_alwaysEnterCompositing to true in the constructor if your&apos;re not dealing with the child frames.


Good point, done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367389</commentid>
    <comment_count>5</comment_count>
      <attachid>85747</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-14 17:52:30 -0700</bug_when>
    <thetext>Comment on attachment 85747
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

You have to take this &quot;(OOPS!)&quot; line or a presubmit check will fail.  Explaining why this code doesn&apos;t require new tests is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367570</commentid>
    <comment_count>6</comment_count>
      <attachid>85747</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-15 02:10:37 -0700</bug_when>
    <thetext>Comment on attachment 85747
Patch

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

&gt; Tools/DumpRenderTree/chromium/TestShell.h:204
&gt; +    bool m_forceCompositingMode;

m_forceCompositingMode =&gt; m_forceCompositingEnabled?  I don&apos;t mean to nit-pick you over names.  These other variables are called &quot;enabled&quot; is all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367778</commentid>
    <comment_count>7</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-03-15 10:56:50 -0700</bug_when>
    <thetext>&gt; &gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:114
&gt; &gt; &gt; +    if (settings &amp;&amp; settings-&gt;alwaysEnterCompositing()) {
&gt; &gt; 
&gt; &gt; We also need to test for m_hasAcceleratedCompositing.  That value is not available at the time the constructor gets called.  Things work fine since there&apos;s a check at the end of updateCompositingLayers but it seems somewhat inefficient to go ahead and do all the work, create the GraphicsLayer tree and then gut it all out of compositing isn&apos;t supported.
&gt; 
&gt; 
&gt; Ok, I added a check for settings-&gt;acceleratedCompositingEnabled() in the constructor...
&gt; 
&gt; 

I don&apos;t think that test is sufficient.  There&apos;s a couple of other conditions that will turn m_hasAcceleratedCompositing off, especially bits that are set on the Client.  If you do keep this code in the constructor (which is probably fine) then there&apos;s not much point in adding that check. 

Other than that, I think the patch looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367785</commentid>
    <comment_count>8</comment_count>
      <attachid>85747</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-15 11:01:05 -0700</bug_when>
    <thetext>Comment on attachment 85747
Patch

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

&gt;&gt; Tools/DumpRenderTree/chromium/TestShell.h:204
&gt;&gt; +    bool m_forceCompositingMode;
&gt; 
&gt; m_forceCompositingMode =&gt; m_forceCompositingEnabled?  I don&apos;t mean to nit-pick you over names.  These other variables are called &quot;enabled&quot; is all.

Actually the ones with a verb are without the &apos;enabled&apos; suffix, such as &apos;m_allowExternalPages&apos;, &apos;m_dumpWhenFinished&apos;. I can change it though if you feel strongly about it :) Otherwise, I thought I&apos;d keep the naming consistent across all the classes (and see other force*() functions in page/Settings.h).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367818</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-15 11:37:35 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:114
&gt; &gt; &gt; &gt; +    if (settings &amp;&amp; settings-&gt;alwaysEnterCompositing()) {
&gt; &gt; &gt; 
&gt; &gt; &gt; We also need to test for m_hasAcceleratedCompositing.  That value is not available at the time the constructor gets called.  Things work fine since there&apos;s a check at the end of updateCompositingLayers but it seems somewhat inefficient to go ahead and do all the work, create the GraphicsLayer tree and then gut it all out of compositing isn&apos;t supported.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; Ok, I added a check for settings-&gt;acceleratedCompositingEnabled() in the constructor...
&gt; &gt; 
&gt; &gt; 
&gt; 
&gt; I don&apos;t think that test is sufficient.  There&apos;s a couple of other conditions that will turn m_hasAcceleratedCompositing off, especially bits that are set on the Client.  If you do keep this code in the constructor (which is probably fine) then there&apos;s not much point in adding that check. 
&gt; 

I see, RenderLayerCompositor::m_hasAcceleratedCompositing gets turned off if all compositing triggers are off, which we could simply skip with &apos;force compositing&apos; turned on.
If it wasn&apos;t for the case where the LayerRendererChromium creation fails, and Chrome decides to return zero from allowedCompositingTriggers() late in the game to handle that case and turn off compositing.

The check in the RenderLayerCompositor constructor is probably still good to handle other cases where compositing is explicitly turned off (such as through the conflicting cmdline option --disable-accelerated-compositing). 

Maybe for the other unexpected failure cases it is ok to first try to force compositing and then go roundabout and turn it off later?
I&apos;m assuming RenderLayerCompositor might get created before we know (and might fail) creating LayerRendererChromium anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367942</commentid>
    <comment_count>10</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-03-15 14:22:34 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:114
&gt; &gt; &gt; &gt; &gt; +    if (settings &amp;&amp; settings-&gt;alwaysEnterCompositing()) {
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; We also need to test for m_hasAcceleratedCompositing.  That value is not available at the time the constructor gets called.  Things work fine since there&apos;s a check at the end of updateCompositingLayers but it seems somewhat inefficient to go ahead and do all the work, create the GraphicsLayer tree and then gut it all out of compositing isn&apos;t supported.
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Ok, I added a check for settings-&gt;acceleratedCompositingEnabled() in the constructor...
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; I don&apos;t think that test is sufficient.  There&apos;s a couple of other conditions that will turn m_hasAcceleratedCompositing off, especially bits that are set on the Client.  If you do keep this code in the constructor (which is probably fine) then there&apos;s not much point in adding that check. 
&gt; &gt; 
&gt; 
&gt; I see, RenderLayerCompositor::m_hasAcceleratedCompositing gets turned off if all compositing triggers are off, which we could simply skip with &apos;force compositing&apos; turned on.
&gt; If it wasn&apos;t for the case where the LayerRendererChromium creation fails, and Chrome decides to return zero from allowedCompositingTriggers() late in the game to handle that case and turn off compositing.
&gt; 
&gt; The check in the RenderLayerCompositor constructor is probably still good to handle other cases where compositing is explicitly turned off (such as through the conflicting cmdline option --disable-accelerated-compositing). 
&gt; 
&gt; Maybe for the other unexpected failure cases it is ok to first try to force compositing and then go roundabout and turn it off later?
&gt; I&apos;m assuming RenderLayerCompositor might get created before we know (and might fail) creating LayerRendererChromium anyways.

Ok, I see what you mean.  It sounds reasonable to me to leave to code as is.  Please do test though that it still works (and correctly falls back to s/w) if the layer renderer creation fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368125</commentid>
    <comment_count>11</comment_count>
      <attachid>85894</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-15 18:43:48 -0700</bug_when>
    <thetext>Created attachment 85894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368128</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-15 18:46:30 -0700</bug_when>
    <thetext>&gt; 
&gt; Ok, I see what you mean.  It sounds reasonable to me to leave to code as is.  Please do test though that it still works (and correctly falls back to s/w) if the layer renderer creation fails.

Done, tested with chrome and DumpRenderTree. Seems to behave as expected in that if I force LayerRendererChromium creation failure, it will disable compositing from the end of RenderLayerCompositor::updateCompositingLayers() and render fine in software after that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368393</commentid>
    <comment_count>13</comment_count>
      <attachid>85894</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-16 11:05:59 -0700</bug_when>
    <thetext>Comment on attachment 85894
Patch

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

Looks good!

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:118
&gt; +    if (settings &amp;&amp; settings-&gt;forceCompositingMode() &amp;&amp; settings-&gt;acceleratedCompositingEnabled()
&gt; +        &amp;&amp; !m_renderView-&gt;document()-&gt;frame()-&gt;tree()-&gt;parent()) {

this indentation is odd - i&apos;d try to make it clearer that line 118 is still inside the conditional and line 119 is not, maybe line up the &amp;&amp;s or something

&gt; Source/WebCore/rendering/RenderLayerCompositor.h:279
&gt; +    bool m_forceCompositingMode;
&gt; +

nitpick: i think it&apos;d be better to declare this with the other bools</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368530</commentid>
    <comment_count>14</comment_count>
      <attachid>85973</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-16 14:10:57 -0700</bug_when>
    <thetext>Created attachment 85973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368533</commentid>
    <comment_count>15</comment_count>
      <attachid>85894</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-16 14:13:49 -0700</bug_when>
    <thetext>Comment on attachment 85894
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:118
&gt;&gt; +        &amp;&amp; !m_renderView-&gt;document()-&gt;frame()-&gt;tree()-&gt;parent()) {
&gt; 
&gt; this indentation is odd - i&apos;d try to make it clearer that line 118 is still inside the conditional and line 119 is not, maybe line up the &amp;&amp;s or something

I agree that it looks odd, but I ended up leaving it that way because this seems to be done commonly that way in the WebKit code, and it actually looks a bit odd too if I align it with the &amp;&amp;.

&gt;&gt; Source/WebCore/rendering/RenderLayerCompositor.h:279
&gt;&gt; +
&gt; 
&gt; nitpick: i think it&apos;d be better to declare this with the other bools

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368549</commentid>
    <comment_count>16</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-16 14:34:57 -0700</bug_when>
    <thetext>Vangelis isn&apos;t actually a WebKit reviewer (yet) - can you set the &apos;Reviewed by&apos; lines to refer to me instead?  I think a script will complain otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368551</commentid>
    <comment_count>17</comment_count>
      <attachid>85978</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-16 14:37:10 -0700</bug_when>
    <thetext>Created attachment 85978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368553</commentid>
    <comment_count>18</comment_count>
      <attachid>85979</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-03-16 14:38:08 -0700</bug_when>
    <thetext>Created attachment 85979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368554</commentid>
    <comment_count>19</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-16 14:39:14 -0700</bug_when>
    <thetext>Good lord bugzilla is a pain.  Should be all good now!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368632</commentid>
    <comment_count>20</comment_count>
      <attachid>85979</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-16 16:38:08 -0700</bug_when>
    <thetext>Comment on attachment 85979
Patch

Clearing flags on attachment: 85979

Committed r81289: &lt;http://trac.webkit.org/changeset/81289&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368633</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-16 16:38:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85414</attachid>
            <date>2011-03-10 17:43:15 -0800</date>
            <delta_ts>2011-03-14 17:40:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56156-20110310174314.patch</filename>
            <type>text/plain</type>
            <size>14428</size>
            <attacher name="Daniel Sievers">sievers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA3NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMjZjMTYwMjJlNmJjYTFl
NjA2MzBlNDZhOWNiN2U2ZjE5ZWI0ZTlkLi5mMWI3ZGY0YTI2ZjgyOTExN2I2Njc1NmFiY2EwOWNh
MDk4MDM2MjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMTAgIERhbmll
bCBTaWV2ZXJzICA8c2lldmVyc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzZXR0aW5nIHRvIGFsd2F5cyBmb3JjZSBjb21w
b3NpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NjE1NgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3M6OnNldEFsd2F5c0VudGVyQ29tcG9zaXRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3M6OmFsd2F5c0VudGVyQ29tcG9zaXRpbmcpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpSZW5kZXJMYXllckNvbXBvc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKwogMjAxMS0wMy0x
MCAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCBhYWI5MzZmOTgwYTIyNGMxYWQ4
MWMwNjQwYTRmMmQwYzBlOThjMWMyLi43M2E2NzBmZDcxNGQ4NGQyZmJlNzA2MzcyOGVmYjk4YzI5
YjgxNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0zNzIsNiArMzcyLDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldENyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNo
ZWRDU1NSdWxlc0Rpc2FibGVkKGJvb2wgZmxhZykgeyBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1h
dGNoZWRDU1NSdWxlc0Rpc2FibGVkID0gZmxhZzsgfQogICAgICAgICBib29sIGNyb3NzT3JpZ2lu
Q2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jcm9z
c09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxlZDsgfQogCisgICAgICAgIHZv
aWQgc2V0QWx3YXlzRW50ZXJDb21wb3NpdGluZyhib29sIGZsYWcpIHsgbV9hbHdheXNFbnRlckNv
bXBvc2l0aW5nID0gZmxhZzsgfQorICAgICAgICBib29sIGFsd2F5c0VudGVyQ29tcG9zaXRpbmco
KSB7IHJldHVybiBtX2Fsd2F5c0VudGVyQ29tcG9zaXRpbmc7IH0KKwogICAgIHByaXZhdGU6CiAg
ICAgICAgIFBhZ2UqIG1fcGFnZTsKIApAQCAtNDcwLDYgKzQ3Myw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBtX3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzOiAxOwogICAgICAg
ICBib29sIG1faHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2Ny
b3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkIDogMTsKKyAgICAgICAg
Ym9vbCBtX2Fsd2F5c0VudGVyQ29tcG9zaXRpbmcgOiAxOwogCiAjaWYgVVNFKFNBRkFSSV9USEVN
RSkKICAgICAgICAgc3RhdGljIGJvb2wgZ1Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmlu
ZGV4IDM3ZjFiOWU1ODBlOTVhODE1MjI5N2MyMDY4MTlhNzgyYjNhOTg4ZWEuLjAxMDVjM2JkZWZl
NzUwMTA4YzJjYjg3OTRiMGY3NjY0YzQ1NGUwMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xMDQsMTAgKzEwNCwyMiBA
QCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcihSZW5kZXJWaWV3
KiByZW5kZXJWaWV3KQogICAgICwgbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKGZhbHNl
KQogICAgICwgbV9mbHVzaGluZ0xheWVycyhmYWxzZSkKICAgICAsIG1fcm9vdExheWVyQXR0YWNo
bWVudChSb290TGF5ZXJVbmF0dGFjaGVkKQorICAgICwgbV9hbHdheXNFbnRlckNvbXBvc2l0aW5n
KGZhbHNlKQogI2lmIFBST0ZJTEVfTEFZRVJfUkVCVUlMRAogICAgICwgbV9yb290TGF5ZXJVcGRh
dGVDb3VudCgwKQogI2VuZGlmIC8vIFBST0ZJTEVfTEFZRVJfUkVCVUlMRAogeworICAgIFNldHRp
bmdzKiBzZXR0aW5ncyA9IG1fcmVuZGVyVmlldy0+ZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKKwor
ICAgIGlmIChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWx3YXlzRW50ZXJDb21wb3NpdGluZygpKSB7
CisgICAgICAgIG1fYWx3YXlzRW50ZXJDb21wb3NpdGluZyA9IHRydWU7CisKKyAgICAgICAgLy8g
Rm9yIHRoaXMgZmVhdHVyZSwgZG8gbm90IGVudGVyIGNvbXBvc2l0aW5nIGZvciBjaGlsZCBmcmFt
ZXMsIG9yIHRoaXMgd2lsbCB0cmlnZ2VyCisgICAgICAgIC8vIGxheWVyIGNyZWF0aW9uIGZyb20g
dGhlIGVuY2xvc2luZyBSZW5kZXJJRnJhbWUuCisgICAgICAgIEFTU0VSVChtX3JlbmRlclZpZXct
PmRvY3VtZW50KCktPmZyYW1lKCkpOworICAgICAgICBpZiAoIW1fcmVuZGVyVmlldy0+ZG9jdW1l
bnQoKS0+ZnJhbWUoKS0+dHJlZSgpLT5wYXJlbnQoKSkKKyAgICAgICAgICAgIGVuYWJsZUNvbXBv
c2l0aW5nTW9kZSgpOworICAgIH0KIH0KIAogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp+UmVuZGVy
TGF5ZXJDb21wb3NpdG9yKCkKQEAgLTcwOSw5ICs3MjEsMTQgQEAgdm9pZCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5
ZXIsIE8KICAgICAgICAgd2lsbEJlQ29tcG9zaXRlZCA9IHRydWU7CiAgICAgfQogCi0gICAgLy8g
SWYgd2UncmUgYmFjayBhdCB0aGUgcm9vdCwgYW5kIG5vIG90aGVyIGxheWVycyBuZWVkIHRvIGJl
IGNvbXBvc2l0ZWQsIGFuZCB0aGUgcm9vdCBsYXllciBpdHNlbGYgZG9lc24ndCBuZWVkCi0gICAg
Ly8gdG8gYmUgY29tcG9zaXRlZCwgdGhlbiB3ZSBjYW4gZHJvcCBvdXQgb2YgY29tcG9zaXRpbmcg
bW9kZSBhbHRvZ2V0aGVyLgotICAgIGlmIChsYXllci0+aXNSb290TGF5ZXIoKSAmJiAhY2hpbGRT
dGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nICYmICFyZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIo
bGF5ZXIpKSB7CisgICAgYm9vbCBsZWF2ZUNvbXBvc2l0aW5nID0gZmFsc2U7CisgICAgaWYgKCFt
X2Fsd2F5c0VudGVyQ29tcG9zaXRpbmcgfHwgbV9yZW5kZXJWaWV3LT5kb2N1bWVudCgpLT5mcmFt
ZSgpLT50cmVlKCktPnBhcmVudCgpKSB7CisgICAgICAgIC8vIElmIHdlJ3JlIGJhY2sgYXQgdGhl
IHJvb3QsIGFuZCBubyBvdGhlciBsYXllcnMgbmVlZCB0byBiZSBjb21wb3NpdGVkLCBhbmQgdGhl
IHJvb3QgbGF5ZXIgaXRzZWxmIGRvZXNuJ3QgbmVlZAorICAgICAgICAvLyB0byBiZSBjb21wb3Np
dGVkLCB0aGVuIHdlIGNhbiBkcm9wIG91dCBvZiBjb21wb3NpdGluZyBtb2RlIGFsdG9nZXRoZXIu
CisgICAgICAgIGxlYXZlQ29tcG9zaXRpbmcgPSBsYXllci0+aXNSb290TGF5ZXIoKSAmJiAhY2hp
bGRTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nICYmICFyZXF1aXJlc0NvbXBvc2l0aW5nTGF5
ZXIobGF5ZXIpOworICAgIH0KKworICAgIGlmIChsZWF2ZUNvbXBvc2l0aW5nKSB7CiAgICAgICAg
IGVuYWJsZUNvbXBvc2l0aW5nTW9kZShmYWxzZSk7CiAgICAgICAgIHdpbGxCZUNvbXBvc2l0ZWQg
PSBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgKaW5kZXggMzJkNjRkMzM5NjY5YTUxYmVmMmExZTVkYTE5NjM4NWNlYzBk
NTBkZi4uNWU3YWU4ZjAwOWE2ZmM5OTMwZmJjZjExZTBhMzA1MTg4ZGQzYTA0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMjc1
LDYgKzI3NSw4IEBAIHByaXZhdGU6CiAKICAgICBSb290TGF5ZXJBdHRhY2htZW50IG1fcm9vdExh
eWVyQXR0YWNobWVudDsKIAorICAgIGJvb2wgbV9hbHdheXNFbnRlckNvbXBvc2l0aW5nOworCiAg
ICAgLy8gRW5jbG9zaW5nIGNsaXBwaW5nIGxheWVyIGZvciBpZnJhbWUgY29udGVudAogICAgIE93
blB0cjxHcmFwaGljc0xheWVyPiBtX2NsaXBMYXllcjsKICAgICBPd25QdHI8R3JhcGhpY3NMYXll
cj4gbV9zY3JvbGxMYXllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNWVlYzkzN2Vh
MWVlZTY3NGY0YzgyMTAwZmEwMjEwMmRkZThkYmEwZC4uYjIxN2Y5OWJlNWRmMTg1Nzc4Y2Q5NGEw
YzJhYTM5ZjZiYjQ3ZGY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMS0wMy0xMCAgRGFuaWVsIFNpZXZlcnMgIDxzaWV2ZXJzQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNldHRp
bmcgdG8gYWx3YXlzIGZvcmNlIGNvbXBvc2l0aW5nIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MTU2CisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
U2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBbHdheXNFbnRlckNvbXBvc2l0aW5nKToKKyAg
ICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisKIDIwMTEtMDMtMTAgIFRvbnkgQ2hhbmcg
IDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsIGNocm9taXVt
IHZlcnNpb24gdG8gcjc3MjU5IHRvIHBpY2sgdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IDExZWQ0OWQ4NmVkNDBhYzI2MGY2NDNjYWU4Zjk2ZWY1
OWJlMzBmZDkuLjFkOTYxODkwN2MzOWI3YzZhZjNlZjRmYjg5MzcwN2Y4YWFkM2UzNmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtMTAxLDYgKzEw
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1BsYXRmb3JtTGF5ZXJUcmVlKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0Jl
aGF2aW9yKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWx3YXlzRW50ZXJDb21wb3Np
dGluZyhib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBvc2l0ZVRvVGV4dHVyZUVu
YWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBjb21wb3NpdGVUb1RleHR1cmVFbmFi
bGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yM0RUcmFuc2Zvcm1zRW5hYmxlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCBlNWQxNzJlMzYwZTMxOTJmYWJj
OWFlMWNkYzlkZTYyNTVhYWE2YzU3Li41MTA1NjBiN2I0ZWViOTZlN2ZkNDMyNzNhOTQ0M2ViNDgw
MzdiZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5jcHAKQEAgLTMwOCw2ICszMDgsMTEgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX3NldHRpbmdzLT5z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChlbmFibGVkKTsKIH0KIAordm9pZCBXZWJT
ZXR0aW5nc0ltcGw6OnNldEFsd2F5c0VudGVyQ29tcG9zaXRpbmcoYm9vbCBlbmFibGVkKQorewor
ICAgIG1fc2V0dGluZ3MtPnNldEFsd2F5c0VudGVyQ29tcG9zaXRpbmcoZW5hYmxlZCk7Cit9CisK
IHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRDb21wb3NpdGVUb1RleHR1cmVFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKIHsKICAgICBtX2NvbXBvc2l0ZVRvVGV4dHVyZUVuYWJsZWQgPSBlbmFibGVkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCAzMjNh
NWIzMTFhNTJlMDg3YTRjN2RkZTRjNDFkYjI2MmJmMWQzOGViLi5hZTQ0OTVmYTgxZWJhMjhjODZj
MjQ5MGFhN2I5MmViZTVlYzRmOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuaApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIHNob3dQbGF0Zm9ybUxheWVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd1BsYXRmb3Jt
TGF5ZXJUcmVlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihFZGl0aW5n
QmVoYXZpb3IpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZChib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWx3YXlzRW50ZXJDb21wb3NpdGluZyhi
b29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZChib29s
KTsKICAgICB2aXJ0dWFsIGJvb2wgY29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fY29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZDsgfQogICAgIHZpcnR1YWwgdm9pZCBz
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFuc2Zvcm1zRW5hYmxlZChib29sKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhYzk2MzE3
YzZjNmIxMzIwMGVjMjkyZjhhN2Q0ZjNjMjBmY2U3MjdkLi4wZGI5ZTgzNGZjZjA5NDg0NThmNGQy
MjA1Y2E1OTllZTgwMWM3YWEyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDMtMTAgIERhbmllbCBTaWV2ZXJz
ICA8c2lldmVyc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzZXR0aW5nIHRvIGFsd2F5cyBmb3JjZSBjb21wb3NpdGluZyBt
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjE1
NgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3Bw
OgorICAgICAgICAobWFpbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6VGVzdFNoZWxsKToKKyAgICAgICAgKFRl
c3RTaGVsbDo6cmVzZXRXZWJTZXR0aW5ncyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFNoZWxsLmg6CisgICAgICAgIChUZXN0U2hlbGw6OnNldEFsd2F5c0VudGVyQ29t
cG9zaXRpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVu
Y2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpyZXNldCk6CisgICAgICAgIChXZWJQ
cmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViUHJlZmVyZW5jZXMuaDoKKwogMjAxMS0wMy0xMCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgSWdub3JlIGVycm9ycyBmcm9tIGZpbGVzIGJlaW5nIGhlbGQgb3Bl
biB3aGVuIGNyZWF0aW5nIGEgdGVzdCByZXN1bHQgYXJjaGl2ZQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGUwMDg0MzIzM2I1NjNi
MDNhMWY0ZWZkNjExZmQxODU1MDE3MzZkZjcuLjI5MmMxZWQ0ZTE4MmMxZjEyM2FjYjczNGYzOTFm
MmZjZWE1MGViMTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1
bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1w
UmVuZGVyVHJlZS5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9u
Q2hlY2tMYXlvdXRUZXN0U3lzdGVtRGVwc1tdID0gIi0tY2hlY2stbGF5b3V0LXRlc3Qtc3lzLWQK
IAogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uSGFyZHdhcmVBY2NlbGVyYXRlZEdMW10gPSAiLS1l
bmFibGUtaGFyZHdhcmUtZ3B1IjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZUFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdbXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZyI7
CitzdGF0aWMgY29uc3QgY2hhciBvcHRpb25BbHdheXNFbnRlckNvbXBvc2l0aW5nW10gPSAiLS1h
bHdheXMtZW50ZXItY29tcG9zaXRpbmciOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxl
QWNjZWxlcmF0ZWQyRENhbnZhc1tdID0gIi0tZW5hYmxlLWFjY2VsZXJhdGVkLTJkLWNhbnZhcyI7
CiAKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvblN0cmVzc09wdFtdID0gIi0tc3RyZXNzLW9wdCI7
CkBAIC0xMzEsNiArMTMyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAg
ICBib29sIGFsbG93RXh0ZXJuYWxQYWdlcyA9IGZhbHNlOwogICAgIGJvb2wgc3RhcnR1cERpYWxv
ZyA9IGZhbHNlOwogICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBmYWxz
ZTsKKyAgICBib29sIGFsd2F5c0VudGVyQ29tcG9zaXRpbmcgPSBmYWxzZTsKICAgICBib29sIGFj
Y2VsZXJhdGVkMkRDYW52YXNFbmFibGVkID0gZmFsc2U7CiAgICAgYm9vbCBzdHJlc3NPcHQgPSBm
YWxzZTsKICAgICBib29sIHN0cmVzc0Rlb3B0ID0gZmFsc2U7CkBAIC0xNjEsNiArMTYzLDggQEAg
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgICAgIGhhcmR3YXJlQWNj
ZWxlcmF0ZWRHTCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvbkVu
YWJsZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcpCiAgICAgICAgICAgICBhY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZCA9IHRydWU7CisgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlv
bkFsd2F5c0VudGVyQ29tcG9zaXRpbmcpCisgICAgICAgICAgICBhbHdheXNFbnRlckNvbXBvc2l0
aW5nID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNj
ZWxlcmF0ZWQyRENhbnZhcykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVk
ID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uU3RyZXNzT3B0KQpA
QCAtMTk0LDYgKzE5OCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAg
ICAgIFRlc3RTaGVsbCBzaGVsbCh0ZXN0U2hlbGxNb2RlKTsKICAgICAgICAgc2hlbGwuc2V0QWxs
b3dFeHRlcm5hbFBhZ2VzKGFsbG93RXh0ZXJuYWxQYWdlcyk7CiAgICAgICAgIHNoZWxsLnNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KTsKKyAgICAgICAgc2hlbGwuc2V0QWx3YXlzRW50ZXJDb21wb3NpdGluZyhhbHdheXNFbnRlckNv
bXBvc2l0aW5nKTsKICAgICAgICAgc2hlbGwuc2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQo
YWNjZWxlcmF0ZWQyRENhbnZhc0VuYWJsZWQpOwogICAgICAgICBzaGVsbC5zZXRKYXZhU2NyaXB0
RmxhZ3MoamF2YVNjcmlwdEZsYWdzKTsKICAgICAgICAgc2hlbGwuc2V0U3RyZXNzT3B0KHN0cmVz
c09wdCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hl
bGwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAppbmRl
eCBlMWE4NmVmZGFiNjRiNzJmODZiMTY4ZGQ1ZjBmNDhhZTViNjAwMDVhLi42MWU2NDQyNDFkM2Q4
YTQ1YWZjYmIxZTdmNTQ3NmRlNTg5MTFkYWY0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5jcHAKQEAgLTg1LDYgKzg1LDcgQEAgVGVzdFNoZWxsOjpUZXN0U2hl
bGwoYm9vbCB0ZXN0U2hlbGxNb2RlKQogICAgICwgbV9kZXZUb29scygwKQogICAgICwgbV9hbGxv
d0V4dGVybmFsUGFnZXMoZmFsc2UpCiAgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkKGZhbHNlKQorICAgICwgbV9hbHdheXNFbnRlckNvbXBvc2l0aW5nKGZhbHNlKQogICAgICwg
bV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc3RyZXNzT3B0KGZh
bHNlKQogICAgICwgbV9zdHJlc3NEZW9wdChmYWxzZSkKQEAgLTE2Myw2ICsxNjQsNyBAQCB2b2lk
IFRlc3RTaGVsbDo6cmVzZXRXZWJTZXR0aW5ncyhXZWJWaWV3JiB3ZWJWaWV3KQogewogICAgIG1f
cHJlZnMucmVzZXQoKTsKICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
ID0gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsKKyAgICBtX3ByZWZzLmFsd2F5c0Vu
dGVyQ29tcG9zaXRpbmcgPSBtX2Fsd2F5c0VudGVyQ29tcG9zaXRpbmc7CiAgICAgbV9wcmVmcy5h
Y2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9IG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ7
CiAgICAgbV9wcmVmcy5hcHBseVRvKCZ3ZWJWaWV3KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFNoZWxsLmgKaW5kZXggZWY5YmU3ZmM0MmU1YzQ2Y2I5ZjM3OTE3M2IwYTg1
YTQ4MmU5ZTU2Yy4uZjA3MDYzOWRmMTQ3YzY1ZjVjNGU2ZWE0NDk4YzY5ZGQ2NDk1OTM4MCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKQEAgLTEyNSw2ICsxMjUs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbGxvd0V4dGVybmFsUGFnZXMoYm9vbCBhbGxvd0V4
dGVybmFsUGFnZXMpIHsgbV9hbGxvd0V4dGVybmFsUGFnZXMgPSBhbGxvd0V4dGVybmFsUGFnZXM7
IH0KIAogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCBlbmFi
bGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBlbmFibGVkOyB9CisgICAg
dm9pZCBzZXRBbHdheXNFbnRlckNvbXBvc2l0aW5nKGJvb2wgZW5hYmxlZCkgeyBtX2Fsd2F5c0Vu
dGVyQ29tcG9zaXRpbmcgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZDJkQ2Fu
dmFzRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9
IGVuYWJsZWQ7IH0KIAogI2lmIGRlZmluZWQoT1NfV0lOKQpAQCAtMjAwLDYgKzIwMSw3IEBAIHBy
aXZhdGU6CiAgICAgaW50IG1fdGltZW91dDsgLy8gdGltZW91dCB2YWx1ZSBpbiBtaWxsaXNlY29u
ZAogICAgIGJvb2wgbV9hbGxvd0V4dGVybmFsUGFnZXM7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdFbmFibGVkOworICAgIGJvb2wgbV9hbHdheXNFbnRlckNvbXBvc2l0aW5nOwog
ICAgIGJvb2wgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKICAgICBXZWJQcmVmZXJlbmNl
cyBtX3ByZWZzOwogICAgIGJvb2wgbV9zdHJlc3NPcHQ7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggNzFmNWVjNzk5ZmM3OWMxZTM2
YjQxZGExOGY1ZmUwZGViMDU4YTNkZC4uY2MwNGJkYzBlYTlmZTBlZTIwOTcyNTgyNWVlODI5MDRh
YmI4ODdmNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJl
ZmVyZW5jZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZl
cmVuY2VzLmNwcApAQCAtMTA0LDYgKzEwNCw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlc2V0
KCkKICAgICBoeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQgPSBmYWxzZTsKICAgICBhY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkMmRDYW52YXNFbmFi
bGVkID0gZmFsc2U7CisgICAgYWx3YXlzRW50ZXJDb21wb3NpdGluZyA9IGZhbHNlOwogfQogCiB2
b2lkIFdlYlByZWZlcmVuY2VzOjphcHBseVRvKFdlYlZpZXcqIHdlYlZpZXcpCkBAIC0xNDksNiAr
MTUwLDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQog
ICAgIHdlYlZpZXctPnNldFRhYnNUb0xpbmtzKHRhYnNUb0xpbmtzKTsKICAgICBzZXR0aW5ncy0+
c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoY2FyZXRCcm93c2luZ0VuYWJsZWQpOwogICAgIHNldHRp
bmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChhY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZCk7CisgICAgc2V0dGluZ3MtPnNldEFsd2F5c0VudGVyQ29tcG9zaXRpbmcoYWx3
YXlzRW50ZXJDb21wb3NpdGluZyk7CiAgICAgc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkMmRDYW52
YXNFbmFibGVkKGFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKTsKIAogICAgIC8vIEZpeGVkIHZh
bHVlcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZl
cmVuY2VzLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5o
CmluZGV4IDUwYmI4Y2NlOTY3YTRmZjljODUxMDE0NmFmZWFjZTAwZDYxZDUyNGYuLmI4NGIwNDVh
ODI2MWFkNmVjYTEzYTQ3M2VhOGZiYzVjNjVmZDQyOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaApAQCAtNzgsNiArNzgsNyBAQCBzdHJ1Y3Qg
V2ViUHJlZmVyZW5jZXMgewogICAgIGJvb2wgaHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkOwogICAg
IGJvb2wgY2FyZXRCcm93c2luZ0VuYWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZDsKKyAgICBib29sIGFsd2F5c0VudGVyQ29tcG9zaXRpbmc7CiAgICAgYm9vbCBh
Y2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKIAogICAgIFdlYlByZWZlcmVuY2VzKCkgeyByZXNl
dCgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85747</attachid>
            <date>2011-03-14 17:40:13 -0700</date>
            <delta_ts>2011-03-15 18:43:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56156-20110314174012.patch</filename>
            <type>text/plain</type>
            <size>14014</size>
            <attacher name="Daniel Sievers">sievers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEwNzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYzQ3YjA2ZjZjYjg2ODBh
ZGE0NDA1YzY3Mjk2YjdjYTdiYTBiZmY4Li42OWY0MGY2MjBlOGE5YjZiZjEwZjhjNTFiZmJjNzNk
Nzg2MjExMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDMtMTQgIERhbmll
bCBTaWV2ZXJzICA8c2lldmVyc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzZXR0aW5nIHRvIGFsd2F5cyBmb3JjZSBjb21w
b3NpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NjE1NgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldEZvcmNlQ29t
cG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpmb3JjZUNvbXBvc2l0
aW5nTW9kZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OlJlbmRlckxheWVyQ29t
cG9zaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1
dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oOgorCiAyMDExLTAzLTE0ICBKYXJra28gU2Fra2luZW4gIDxqYXJra28u
ai5zYWtraW5lbkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hk
ZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggYWFiOTM2Zjk4MGEyMjRj
MWFkODFjMDY0MGE0ZjJkMGMwZTk4YzFjMi4uMTlhZGNjY2Q1MDM2ZjlmMWRhY2U2MzBkMjQ0NmZi
NDgyYTkyZDgyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMzcyLDYgKzM3Miw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRDcm9zc09yaWdpbkNoZWNrSW5HZXRN
YXRjaGVkQ1NTUnVsZXNEaXNhYmxlZChib29sIGZsYWcpIHsgbV9jcm9zc09yaWdpbkNoZWNrSW5H
ZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxlZCA9IGZsYWc7IH0KICAgICAgICAgYm9vbCBjcm9zc09y
aWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQ7IH0KIAorICAgICAg
ICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZmxhZykgeyBtX2ZvcmNlQ29tcG9z
aXRpbmdNb2RlID0gZmxhZzsgfQorICAgICAgICBib29sIGZvcmNlQ29tcG9zaXRpbmdNb2RlKCkg
eyByZXR1cm4gbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsgfQorCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgUGFnZSogbV9wYWdlOwogCkBAIC00NzAsNiArNDczLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBib29sIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3M6IDE7CiAgICAgICAgIGJv
b2wgbV9oeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fY3Jvc3NP
cmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQgOiAxOworICAgICAgICBib29s
IG1fZm9yY2VDb21wb3NpdGluZ01vZGUgOiAxOwogCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKICAg
ICAgICAgc3RhdGljIGJvb2wgZ1Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDM3
ZjFiOWU1ODBlOTVhODE1MjI5N2MyMDY4MTlhNzgyYjNhOTg4ZWEuLmU4NzQwZGM3MGVkYjI3ZjZi
ZjU0ZDJjODFjNDhmMjVkZGYxOTMyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xMDQsMTAgKzEwNCwyMSBAQCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcihSZW5kZXJWaWV3KiByZW5k
ZXJWaWV3KQogICAgICwgbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKGZhbHNlKQogICAg
ICwgbV9mbHVzaGluZ0xheWVycyhmYWxzZSkKICAgICAsIG1fcm9vdExheWVyQXR0YWNobWVudChS
b290TGF5ZXJVbmF0dGFjaGVkKQorICAgICwgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZShmYWxzZSkK
ICNpZiBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKICAgICAsIG1fcm9vdExheWVyVXBkYXRlQ291bnQo
MCkKICNlbmRpZiAvLyBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKIHsKKyAgICBTZXR0aW5ncyogc2V0
dGluZ3MgPSBtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPnNldHRpbmdzKCk7CisKKyAgICAvLyBF
dmVuIHdoZW4gZm9yY2luZyBjb21wb3NpdGluZyBtb2RlLCBpZ25vcmUgY2hpbGQgZnJhbWVzLCBv
ciB0aGlzIHdpbGwgdHJpZ2dlcgorICAgIC8vIGxheWVyIGNyZWF0aW9uIGZyb20gdGhlIGVuY2xv
c2luZyBSZW5kZXJJRnJhbWUuCisgICAgQVNTRVJUKG1fcmVuZGVyVmlldy0+ZG9jdW1lbnQoKS0+
ZnJhbWUoKSk7CisgICAgaWYgKHNldHRpbmdzICYmIHNldHRpbmdzLT5mb3JjZUNvbXBvc2l0aW5n
TW9kZSgpICYmIHNldHRpbmdzLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCisgICAg
ICAgICYmICFtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPmZyYW1lKCktPnRyZWUoKS0+cGFyZW50
KCkpIHsKKyAgICAgICAgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA9IHRydWU7CisgICAgICAgIGVu
YWJsZUNvbXBvc2l0aW5nTW9kZSgpOworICAgIH0KIH0KIAogUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojp+UmVuZGVyTGF5ZXJDb21wb3NpdG9yKCkKQEAgLTcxMSw3ICs3MjIsNyBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxh
eWVyKiBsYXllciwgTwogCiAgICAgLy8gSWYgd2UncmUgYmFjayBhdCB0aGUgcm9vdCwgYW5kIG5v
IG90aGVyIGxheWVycyBuZWVkIHRvIGJlIGNvbXBvc2l0ZWQsIGFuZCB0aGUgcm9vdCBsYXllciBp
dHNlbGYgZG9lc24ndCBuZWVkCiAgICAgLy8gdG8gYmUgY29tcG9zaXRlZCwgdGhlbiB3ZSBjYW4g
ZHJvcCBvdXQgb2YgY29tcG9zaXRpbmcgbW9kZSBhbHRvZ2V0aGVyLgotICAgIGlmIChsYXllci0+
aXNSb290TGF5ZXIoKSAmJiAhY2hpbGRTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nICYmICFy
ZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIobGF5ZXIpKSB7CisgICAgaWYgKGxheWVyLT5pc1Jvb3RM
YXllcigpICYmICFjaGlsZFN0YXRlLm1fc3VidHJlZUlzQ29tcG9zaXRpbmcgJiYgIXJlcXVpcmVz
Q29tcG9zaXRpbmdMYXllcihsYXllcikgJiYgIW1fZm9yY2VDb21wb3NpdGluZ01vZGUpIHsKICAg
ICAgICAgZW5hYmxlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKTsKICAgICAgICAgd2lsbEJlQ29tcG9z
aXRlZCA9IGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCAzMmQ2NGQzMzk2NjlhNTFiZWYyYTFlNWRhMTk2Mzg1
Y2VjMGQ1MGRmLi4xOWQwMWNkNWQ0ZTc3YzFhNDAxNjFkMzc5MmZkMjk1N2U1MDgyZGEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBA
IC0yNzUsNiArMjc1LDggQEAgcHJpdmF0ZToKIAogICAgIFJvb3RMYXllckF0dGFjaG1lbnQgbV9y
b290TGF5ZXJBdHRhY2htZW50OwogCisgICAgYm9vbCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlOwor
CiAgICAgLy8gRW5jbG9zaW5nIGNsaXBwaW5nIGxheWVyIGZvciBpZnJhbWUgY29udGVudAogICAg
IE93blB0cjxHcmFwaGljc0xheWVyPiBtX2NsaXBMYXllcjsKICAgICBPd25QdHI8R3JhcGhpY3NM
YXllcj4gbV9zY3JvbGxMYXllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMmZhN2I0
Y2Q2YzY2NGY1NmNmODhhM2VlNGY4OTY0ZjZmN2FlMTI1Yy4uZDg1MmZjY2ZmZmM1N2Q0OTAxOWRh
M2Q3Mjk2YTMxMzkwMWZmZGYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMS0wMy0xNCAgRGFuaWVsIFNpZXZlcnMgIDxzaWV2ZXJzQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNl
dHRpbmcgdG8gYWx3YXlzIGZvcmNlIGNvbXBvc2l0aW5nIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MTU2CisKKyAgICAgICAgKiBwdWJsaWMv
V2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSk6Cisg
ICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorCiAyMDExLTAzLTE0ICBKb2huIEtub3R0
ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0
ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
U2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgK
aW5kZXggMTFlZDQ5ZDg2ZWQ0MGFjMjYwZjY0M2NhZThmOTZlZjU5YmUzMGZkOS4uMTEzZGU1MmE3
ZTQxNWZlYTVkMzM3YWMxZGY1YTVjZWY0NDMzMDZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBzaG93UGxhdGZvcm1MYXllclRyZWUoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3IpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldENvbXBvc2l0ZVRvVGV4dHVyZUVuYWJsZWQoYm9vbCkgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBjb21wb3NpdGVUb1RleHR1cmVFbmFibGVkKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFuc2Zvcm1zRW5h
YmxlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcAppbmRleCBlNWQxNzJlMzYwZTMxOTJmYWJjOWFlMWNkYzlkZTYyNTVhYWE2YzU3
Li4xMDg5YWY5OTg0MTAyOGUxNzU2MTdlZjVlYWQ0NmRhZGM5NTIzYmE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTMwOCw2ICszMDgs
MTEgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX3NldHRpbmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZChlbmFibGVkKTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEZvcmNl
Q29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX3NldHRpbmdzLT5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShlbmFibGVkKTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNl
dENvbXBvc2l0ZVRvVGV4dHVyZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgIG1fY29tcG9z
aXRlVG9UZXh0dXJlRW5hYmxlZCA9IGVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNldHRpbmdzSW1wbC5oCmluZGV4IDMyM2E1YjMxMWE1MmUwODdhNGM3ZGRlNGM0MWRi
MjYyYmYxZDM4ZWIuLmQwMzE5ZjhlZGU0MmVjNDM5ZTJkNGNjZGJhYzY2ZDY2ZWZlYzQwYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCkBAIC05NCw2
ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1BsYXRmb3JtTGF5ZXJUcmVl
KCkgY29uc3QgeyByZXR1cm4gbV9zaG93UGxhdGZvcm1MYXllclRyZWU7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcik7CiAgICAgdmlydHVhbCB2
b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJvb2wpOworICAgIHZpcnR1YWwg
dm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Q29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgY29tcG9z
aXRlVG9UZXh0dXJlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcG9zaXRlVG9UZXh0dXJl
RW5hYmxlZDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
M0RUcmFuc2Zvcm1zRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxYzM2MDI1ZTA2OTFmZTFmODM4NDJjNzFlNWQ1YWNiYTI2
OGRmYTFhLi5hNGQ5ZWFiY2JhMTQxOGRmZjgxMzA0YjNhOTExYjkwYmYwMGUyNDNlIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTEtMDMtMTQgIERhbmllbCBTaWV2ZXJzICA8c2lldmVyc0Bnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzZXR0aW5n
IHRvIGFsd2F5cyBmb3JjZSBjb21wb3NpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjE1NgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAobWFpbik6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RT
aGVsbDo6VGVzdFNoZWxsKToKKyAgICAgICAgKFRlc3RTaGVsbDo6cmVzZXRXZWJTZXR0aW5ncyk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmg6CisgICAgICAg
IChUZXN0U2hlbGw6OnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJl
bmNlczo6cmVzZXQpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8pOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmg6CisKIDIwMTEtMDMt
MTQgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNob3cgYSBsaXN0
IG9mIHVwIHRvIDEwIHJlY2VudCBsZWFreSBidWlsZHMgd2hlbiBMZWFrcyBWaWV3ZXIgbG9hZHMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApp
bmRleCBlMDA4NDMyMzNiNTYzYjAzYTFmNGVmZDYxMWZkMTg1NTAxNzM2ZGY3Li5mYTdlOTFkMDI1
MDBmMjlkZjQ4NzZkYmFlOTk0MDc2ZjQwZmExZWE2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC01Myw2ICs1Myw3IEBAIHN0YXRp
YyBjb25zdCBjaGFyIG9wdGlvbkNoZWNrTGF5b3V0VGVzdFN5c3RlbURlcHNbXSA9ICItLWNoZWNr
LWxheW91dC10ZXN0LXN5cy1kCiAKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkhhcmR3YXJlQWNj
ZWxlcmF0ZWRHTFtdID0gIi0tZW5hYmxlLWhhcmR3YXJlLWdwdSI7CiBzdGF0aWMgY29uc3QgY2hh
ciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nW10gPSAiLS1lbmFibGUtYWNjZWxl
cmF0ZWQtY29tcG9zaXRpbmciOworc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRm9yY2VDb21wb3Np
dGluZ01vZGVbXSA9ICItLWZvcmNlLWNvbXBvc2l0aW5nLW1vZGUiOwogc3RhdGljIGNvbnN0IGNo
YXIgb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZhc1tdID0gIi0tZW5hYmxlLWFjY2VsZXJh
dGVkLTJkLWNhbnZhcyI7CiAKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvblN0cmVzc09wdFtdID0g
Ii0tc3RyZXNzLW9wdCI7CkBAIC0xMzEsNiArMTMyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIqIGFyZ3ZbXSkKICAgICBib29sIGFsbG93RXh0ZXJuYWxQYWdlcyA9IGZhbHNlOwogICAgIGJv
b2wgc3RhcnR1cERpYWxvZyA9IGZhbHNlOwogICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQgPSBmYWxzZTsKKyAgICBib29sIGZvcmNlQ29tcG9zaXRpbmdNb2RlID0gZmFsc2U7
CiAgICAgYm9vbCBhY2NlbGVyYXRlZDJEQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGJvb2wg
c3RyZXNzT3B0ID0gZmFsc2U7CiAgICAgYm9vbCBzdHJlc3NEZW9wdCA9IGZhbHNlOwpAQCAtMTYx
LDYgKzE2Myw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAg
ICBoYXJkd2FyZUFjY2VsZXJhdGVkR0wgPSB0cnVlOwogICAgICAgICBlbHNlIGlmIChhcmd1bWVu
dCA9PSBvcHRpb25FbmFibGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nKQogICAgICAgICAgICAgYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSB0cnVlOworICAgICAgICBlbHNlIGlmIChhcmd1
bWVudCA9PSBvcHRpb25Gb3JjZUNvbXBvc2l0aW5nTW9kZSkKKyAgICAgICAgICAgIGZvcmNlQ29t
cG9zaXRpbmdNb2RlID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9u
RW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZhcykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkMkRDYW52
YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uU3Ry
ZXNzT3B0KQpAQCAtMTk0LDYgKzE5OCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2
W10pCiAgICAgICAgIFRlc3RTaGVsbCBzaGVsbCh0ZXN0U2hlbGxNb2RlKTsKICAgICAgICAgc2hl
bGwuc2V0QWxsb3dFeHRlcm5hbFBhZ2VzKGFsbG93RXh0ZXJuYWxQYWdlcyk7CiAgICAgICAgIHNo
ZWxsLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdFbmFibGVkKTsKKyAgICAgICAgc2hlbGwuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZm9yY2VD
b21wb3NpdGluZ01vZGUpOwogICAgICAgICBzaGVsbC5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5h
YmxlZChhY2NlbGVyYXRlZDJEQ2FudmFzRW5hYmxlZCk7CiAgICAgICAgIHNoZWxsLnNldEphdmFT
Y3JpcHRGbGFncyhqYXZhU2NyaXB0RmxhZ3MpOwogICAgICAgICBzaGVsbC5zZXRTdHJlc3NPcHQo
c3RyZXNzT3B0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RTaGVsbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3Bw
CmluZGV4IGUxYTg2ZWZkYWI2NGI3MmY4NmIxNjhkZDVmMGY0OGFlNWI2MDAwNWEuLjFhNGViMzkx
Mjc3MmRjMmM1MTZlMWIwYjVlMTMzMGUyMTc2ZjAzMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcApAQCAtODUsNiArODUsNyBAQCBUZXN0U2hlbGw6OlRl
c3RTaGVsbChib29sIHRlc3RTaGVsbE1vZGUpCiAgICAgLCBtX2RldlRvb2xzKDApCiAgICAgLCBt
X2FsbG93RXh0ZXJuYWxQYWdlcyhmYWxzZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQoZmFsc2UpCisgICAgLCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKQogICAg
ICwgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc3RyZXNzT3B0
KGZhbHNlKQogICAgICwgbV9zdHJlc3NEZW9wdChmYWxzZSkKQEAgLTE2Myw2ICsxNjQsNyBAQCB2
b2lkIFRlc3RTaGVsbDo6cmVzZXRXZWJTZXR0aW5ncyhXZWJWaWV3JiB3ZWJWaWV3KQogewogICAg
IG1fcHJlZnMucmVzZXQoKTsKICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkID0gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsKKyAgICBtX3ByZWZzLmZvcmNl
Q29tcG9zaXRpbmdNb2RlID0gbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsKICAgICBtX3ByZWZzLmFj
Y2VsZXJhdGVkMmRDYW52YXNFbmFibGVkID0gbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsK
ICAgICBtX3ByZWZzLmFwcGx5VG8oJndlYlZpZXcpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0U2hlbGwuaAppbmRleCBlZjliZTdmYzQyZTVjNDZjYjlmMzc5MTczYjBhODVh
NDgyZTllNTZjLi5lY2YxOWU1OTVlMDBmNjVkMjI4M2ZjMGVhNjYxYzhhMTUzMmUzNDk5IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApAQCAtMTI1LDYgKzEyNSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFsbG93RXh0ZXJuYWxQYWdlcyhib29sIGFsbG93RXh0
ZXJuYWxQYWdlcykgeyBtX2FsbG93RXh0ZXJuYWxQYWdlcyA9IGFsbG93RXh0ZXJuYWxQYWdlczsg
fQogCiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29sIGVuYWJs
ZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KKyAgICB2
b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCkgeyBtX2ZvcmNlQ29tcG9z
aXRpbmdNb2RlID0gZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWQyZENhbnZhc0Vu
YWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBlbmFi
bGVkOyB9CiAKICNpZiBkZWZpbmVkKE9TX1dJTikKQEAgLTIwMCw2ICsyMDEsNyBAQCBwcml2YXRl
OgogICAgIGludCBtX3RpbWVvdXQ7IC8vIHRpbWVvdXQgdmFsdWUgaW4gbWlsbGlzZWNvbmQKICAg
ICBib29sIG1fYWxsb3dFeHRlcm5hbFBhZ2VzOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZDsKKyAgICBib29sIG1fZm9yY2VDb21wb3NpdGluZ01vZGU7CiAgICAgYm9v
bCBtX2FjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkOwogICAgIFdlYlByZWZlcmVuY2VzIG1fcHJl
ZnM7CiAgICAgYm9vbCBtX3N0cmVzc09wdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCA3MWY1ZWM3OTlmYzc5YzFlMzZiNDFkYTE4
ZjVmZTBkZWIwNThhM2RkLi44NGY4NGI2Yjk4NzhmZmZlZDJlNGQ3MWY3ZDFhMThhNDEzYzQ4YWMz
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNl
cy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMu
Y3BwCkBAIC0xMDQsNiArMTA0LDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6cmVzZXQoKQogICAg
IGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBm
YWxzZTsKKyAgICBmb3JjZUNvbXBvc2l0aW5nTW9kZSA9IGZhbHNlOwogfQogCiB2b2lkIFdlYlBy
ZWZlcmVuY2VzOjphcHBseVRvKFdlYlZpZXcqIHdlYlZpZXcpCkBAIC0xNDksNiArMTUwLDcgQEAg
dm9pZCBXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHdlYlZp
ZXctPnNldFRhYnNUb0xpbmtzKHRhYnNUb0xpbmtzKTsKICAgICBzZXR0aW5ncy0+c2V0Q2FyZXRC
cm93c2luZ0VuYWJsZWQoY2FyZXRCcm93c2luZ0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZCk7CisgICAgc2V0dGluZ3MtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGZvcmNlQ29tcG9zaXRp
bmdNb2RlKTsKICAgICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYWNj
ZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQpOwogCiAgICAgLy8gRml4ZWQgdmFsdWVzLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggNTBiYjhj
Y2U5NjdhNGZmOWM4NTEwMTQ2YWZlYWNlMDBkNjFkNTI0Zi4uYWQyN2ZiODRjYTQxNmRhMGRmZjQ1
NjNkZGFlYmY2MzhhOGY4ZTMzMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJQcmVmZXJlbmNlcy5oCkBAIC03OCw2ICs3OCw3IEBAIHN0cnVjdCBXZWJQcmVmZXJlbmNl
cyB7CiAgICAgYm9vbCBoeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBjYXJldEJy
b3dzaW5nRW5hYmxlZDsKICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOwor
ICAgIGJvb2wgZm9yY2VDb21wb3NpdGluZ01vZGU7CiAgICAgYm9vbCBhY2NlbGVyYXRlZDJkQ2Fu
dmFzRW5hYmxlZDsKIAogICAgIFdlYlByZWZlcmVuY2VzKCkgeyByZXNldCgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85894</attachid>
            <date>2011-03-15 18:43:48 -0700</date>
            <delta_ts>2011-03-16 14:13:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56156-20110315184347.patch</filename>
            <type>text/plain</type>
            <size>14066</size>
            <attacher name="Daniel Sievers">sievers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEyMDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZWI5YjRkYTUyYjdjYzI0
MzZkMTVkODkxMDZmYTMyYjk4N2ZkYzU0Li40OGYwNTVmN2Y4ZDY3MTA2YzEzMjI5NTIyZTFhYTZm
YzA2NDYyZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTUgIERhbmll
bCBTaWV2ZXJzICA8c2lldmVyc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IFZh
bmdlbGlzIEtva2tldmlzLgorCisgICAgICAgIEFkZCBzZXR0aW5nIHRvIGFsd2F5cyBmb3JjZSBj
b21wb3NpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NjE1NgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQgYXMgdGhpcyBkZWZh
dWx0cyB0byBkaXNhYmxlZCAoYW5kIGlzIHVuZmVhc2libGUKKyAgICAgICAgdG8gYmUgdGVzdGVk
IHRocm91Z2ggcHJvcGVydHkgb3ZlcnJpZGluZyBhdCBydW50aW1lKS4KKworICAgICAgICAqIHBh
Z2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRGb3JjZUNvbXBv
c2l0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6Zm9yY2VDb21wb3NpdGlu
Z01vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpSZW5kZXJMYXllckNvbXBv
c2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRl
Q29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaDoKKwogMjAxMS0wMy0xNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaAppbmRleCBhYWI5MzZmOTgwYTIyNGMxYWQ4MWMwNjQwYTRmMmQwYzBlOThjMWMyLi4x
OWFkY2NjZDUwMzZmOWYxZGFjZTYzMGQyNDQ2ZmI0ODJhOTJkODJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCkBAIC0zNzIsNiArMzcyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIHNldENyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkKGJvb2wg
ZmxhZykgeyBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkID0g
ZmxhZzsgfQogICAgICAgICBib29sIGNyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxl
c0Rpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVk
Q1NTUnVsZXNEaXNhYmxlZDsgfQogCisgICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01v
ZGUoYm9vbCBmbGFnKSB7IG1fZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmbGFnOyB9CisgICAgICAg
IGJvb2wgZm9yY2VDb21wb3NpdGluZ01vZGUoKSB7IHJldHVybiBtX2ZvcmNlQ29tcG9zaXRpbmdN
b2RlOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAKQEAgLTQ3MCw2
ICs0NzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV91c2VQcmVIVE1M
NVBhcnNlclF1aXJrczogMTsKICAgICAgICAgYm9vbCBtX2h5cGVybGlua0F1ZGl0aW5nRW5hYmxl
ZCA6IDE7CiAgICAgICAgIGJvb2wgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVs
ZXNEaXNhYmxlZCA6IDE7CisgICAgICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA6IDE7
CiAKICNpZiBVU0UoU0FGQVJJX1RIRU1FKQogICAgICAgICBzdGF0aWMgYm9vbCBnU2hvdWxkUGFp
bnROYXRpdmVDb250cm9sczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMzdmMWI5ZTU4MGU5NWE4MTUyMjk3YzIwNjgxOWE3
ODJiM2E5ODhlYS4uZTg3NDBkYzcwZWRiMjdmNmJmNTRkMmM4MWM0OGYyNWRkZjE5MzI2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKQEAgLTEwNCwxMCArMTA0LDIxIEBAIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yKFJlbmRlclZpZXcqIHJlbmRlclZpZXcpCiAgICAgLCBtX2NvbXBvc2l0aW5n
TGF5ZXJzTmVlZFJlYnVpbGQoZmFsc2UpCiAgICAgLCBtX2ZsdXNoaW5nTGF5ZXJzKGZhbHNlKQog
ICAgICwgbV9yb290TGF5ZXJBdHRhY2htZW50KFJvb3RMYXllclVuYXR0YWNoZWQpCisgICAgLCBt
X2ZvcmNlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKQogI2lmIFBST0ZJTEVfTEFZRVJfUkVCVUlMRAog
ICAgICwgbV9yb290TGF5ZXJVcGRhdGVDb3VudCgwKQogI2VuZGlmIC8vIFBST0ZJTEVfTEFZRVJf
UkVCVUlMRAogeworICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fcmVuZGVyVmlldy0+ZG9jdW1l
bnQoKS0+c2V0dGluZ3MoKTsKKworICAgIC8vIEV2ZW4gd2hlbiBmb3JjaW5nIGNvbXBvc2l0aW5n
IG1vZGUsIGlnbm9yZSBjaGlsZCBmcmFtZXMsIG9yIHRoaXMgd2lsbCB0cmlnZ2VyCisgICAgLy8g
bGF5ZXIgY3JlYXRpb24gZnJvbSB0aGUgZW5jbG9zaW5nIFJlbmRlcklGcmFtZS4KKyAgICBBU1NF
UlQobV9yZW5kZXJWaWV3LT5kb2N1bWVudCgpLT5mcmFtZSgpKTsKKyAgICBpZiAoc2V0dGluZ3Mg
JiYgc2V0dGluZ3MtPmZvcmNlQ29tcG9zaXRpbmdNb2RlKCkgJiYgc2V0dGluZ3MtPmFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkKCkKKyAgICAgICAgJiYgIW1fcmVuZGVyVmlldy0+ZG9jdW1l
bnQoKS0+ZnJhbWUoKS0+dHJlZSgpLT5wYXJlbnQoKSkgeworICAgICAgICBtX2ZvcmNlQ29tcG9z
aXRpbmdNb2RlID0gdHJ1ZTsKKyAgICAgICAgZW5hYmxlQ29tcG9zaXRpbmdNb2RlKCk7CisgICAg
fQogfQogCiBSZW5kZXJMYXllckNvbXBvc2l0b3I6On5SZW5kZXJMYXllckNvbXBvc2l0b3IoKQpA
QCAtNzExLDcgKzcyMiw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29t
cG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGxheWVyLCBPCiAKICAgICAvLyBJZiB3
ZSdyZSBiYWNrIGF0IHRoZSByb290LCBhbmQgbm8gb3RoZXIgbGF5ZXJzIG5lZWQgdG8gYmUgY29t
cG9zaXRlZCwgYW5kIHRoZSByb290IGxheWVyIGl0c2VsZiBkb2Vzbid0IG5lZWQKICAgICAvLyB0
byBiZSBjb21wb3NpdGVkLCB0aGVuIHdlIGNhbiBkcm9wIG91dCBvZiBjb21wb3NpdGluZyBtb2Rl
IGFsdG9nZXRoZXIuCi0gICAgaWYgKGxheWVyLT5pc1Jvb3RMYXllcigpICYmICFjaGlsZFN0YXRl
Lm1fc3VidHJlZUlzQ29tcG9zaXRpbmcgJiYgIXJlcXVpcmVzQ29tcG9zaXRpbmdMYXllcihsYXll
cikpIHsKKyAgICBpZiAobGF5ZXItPmlzUm9vdExheWVyKCkgJiYgIWNoaWxkU3RhdGUubV9zdWJ0
cmVlSXNDb21wb3NpdGluZyAmJiAhcmVxdWlyZXNDb21wb3NpdGluZ0xheWVyKGxheWVyKSAmJiAh
bV9mb3JjZUNvbXBvc2l0aW5nTW9kZSkgewogICAgICAgICBlbmFibGVDb21wb3NpdGluZ01vZGUo
ZmFsc2UpOwogICAgICAgICB3aWxsQmVDb21wb3NpdGVkID0gZmFsc2U7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDMy
ZDY0ZDMzOTY2OWE1MWJlZjJhMWU1ZGExOTYzODVjZWMwZDUwZGYuLjE5ZDAxY2Q1ZDRlNzdjMWE0
MDE2MWQzNzkyZmQyOTU3ZTUwODJkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTI3NSw2ICsyNzUsOCBAQCBwcml2YXRlOgog
CiAgICAgUm9vdExheWVyQXR0YWNobWVudCBtX3Jvb3RMYXllckF0dGFjaG1lbnQ7CiAKKyAgICBi
b29sIG1fZm9yY2VDb21wb3NpdGluZ01vZGU7CisKICAgICAvLyBFbmNsb3NpbmcgY2xpcHBpbmcg
bGF5ZXIgZm9yIGlmcmFtZSBjb250ZW50CiAgICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fY2xp
cExheWVyOwogICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX3Njcm9sbExheWVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCBkZjJmYTZmZTYzODBkODQxM2VlZWJjNDI0MzUxYmIxMjg1
YzMwYzVkLi4zOGQ0Njc2NWIyMjgyNjdiMDcyZjQ2YjExZWVkMjhhMjk5ZmZlY2RhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTAzLTE1ICBEYW5pZWwg
U2lldmVycyAgPHNpZXZlcnNAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBWYW5n
ZWxpcyBLb2trZXZpcy4KKworICAgICAgICBBZGQgc2V0dGluZyB0byBhbHdheXMgZm9yY2UgY29t
cG9zaXRpbmcgbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTYxNTYKKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAq
IHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0lt
cGw6OnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJ
bXBsLmg6CisKIDIwMTEtMDMtMTUgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggMTFlZDQ5ZDg2ZWQ0MGFjMjYwZjY0M2NhZThmOTZl
ZjU5YmUzMGZkOS4uMTEzZGU1MmE3ZTQxNWZlYTVkMzM3YWMxZGY1YTVjZWY0NDMzMDZlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC0xMDEsNiAr
MTAxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG93UGxhdGZvcm1MYXllclRyZWUo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihFZGl0aW5n
QmVoYXZpb3IpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5n
TW9kZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBvc2l0ZVRvVGV4dHVyZUVu
YWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBjb21wb3NpdGVUb1RleHR1cmVFbmFi
bGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yM0RUcmFuc2Zvcm1zRW5hYmxlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCBlNWQxNzJlMzYwZTMxOTJmYWJj
OWFlMWNkYzlkZTYyNTVhYWE2YzU3Li4xMDg5YWY5OTg0MTAyOGUxNzU2MTdlZjVlYWQ0NmRhZGM5
NTIzYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5jcHAKQEAgLTMwOCw2ICszMDgsMTEgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX3NldHRpbmdzLT5z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChlbmFibGVkKTsKIH0KIAordm9pZCBXZWJT
ZXR0aW5nc0ltcGw6OnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCkKK3sKKyAg
ICBtX3NldHRpbmdzLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShlbmFibGVkKTsKK30KKwogdm9p
ZCBXZWJTZXR0aW5nc0ltcGw6OnNldENvbXBvc2l0ZVRvVGV4dHVyZUVuYWJsZWQoYm9vbCBlbmFi
bGVkKQogewogICAgIG1fY29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZCA9IGVuYWJsZWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCmluZGV4IDMyM2E1YjMx
MWE1MmUwODdhNGM3ZGRlNGM0MWRiMjYyYmYxZDM4ZWIuLmQwMzE5ZjhlZGU0MmVjNDM5ZTJkNGNj
ZGJhYzY2ZDY2ZWZlYzQwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNl
dHRpbmdzSW1wbC5oCkBAIC05NCw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
c2hvd1BsYXRmb3JtTGF5ZXJUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zaG93UGxhdGZvcm1MYXll
clRyZWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhh
dmlvcik7CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZChib29sKTsKICAg
ICB2aXJ0dWFsIGJvb2wgY29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fY29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yM0RUcmFuc2Zvcm1zRW5hYmxlZChib29sKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMzMyMjQyMGI4MTli
ZDg5ODljNGEwMDQ5N2UxN2MxMzRkZmVhZjIyLi4zZmQzM2FlM2Y1NzFlMTFmMmVhZmYxOTQ0NzVk
MjA2ZTRkZmVkNDM0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDMtMTUgIERhbmllbCBTaWV2ZXJzICA8c2ll
dmVyc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IFZhbmdlbGlzIEtva2tldmlz
LgorCisgICAgICAgIEFkZCBzZXR0aW5nIHRvIGFsd2F5cyBmb3JjZSBjb21wb3NpdGluZyBtb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjE1Ngor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAobWFpbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6VGVzdFNoZWxsKToKKyAgICAgICAgKFRlc3RT
aGVsbDo6cmVzZXRXZWJTZXR0aW5ncyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmg6CisgICAgICAgIChUZXN0U2hlbGw6OnNldEZvcmNlQ29tcG9zaXRpbmdN
b2RlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5j
cHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6cmVzZXQpOgorICAgICAgICAoV2ViUHJlZmVy
ZW5jZXM6OmFwcGx5VG8pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBy
ZWZlcmVuY2VzLmg6CisKIDIwMTEtMDMtMTUgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEFkYW0gUm9iZW4uCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
ZTAwODQzMjMzYjU2M2IwM2ExZjRlZmQ2MTFmZDE4NTUwMTczNmRmNy4uZmE3ZTkxZDAyNTAwZjI5
ZGY0ODc2ZGJhZTk5NDA3NmY0MGZhMWVhNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTMsNiArNTMsNyBAQCBzdGF0aWMgY29u
c3QgY2hhciBvcHRpb25DaGVja0xheW91dFRlc3RTeXN0ZW1EZXBzW10gPSAiLS1jaGVjay1sYXlv
dXQtdGVzdC1zeXMtZAogCiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25IYXJkd2FyZUFjY2VsZXJh
dGVkR0xbXSA9ICItLWVuYWJsZS1oYXJkd2FyZS1ncHUiOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0
aW9uRW5hYmxlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ1tdID0gIi0tZW5hYmxlLWFjY2VsZXJhdGVk
LWNvbXBvc2l0aW5nIjsKK3N0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkZvcmNlQ29tcG9zaXRpbmdN
b2RlW10gPSAiLS1mb3JjZS1jb21wb3NpdGluZy1tb2RlIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9w
dGlvbkVuYWJsZUFjY2VsZXJhdGVkMkRDYW52YXNbXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC0y
ZC1jYW52YXMiOwogCiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25TdHJlc3NPcHRbXSA9ICItLXN0
cmVzcy1vcHQiOwpAQCAtMTMxLDYgKzEzMiw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBh
cmd2W10pCiAgICAgYm9vbCBhbGxvd0V4dGVybmFsUGFnZXMgPSBmYWxzZTsKICAgICBib29sIHN0
YXJ0dXBEaWFsb2cgPSBmYWxzZTsKICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkID0gZmFsc2U7CisgICAgYm9vbCBmb3JjZUNvbXBvc2l0aW5nTW9kZSA9IGZhbHNlOwogICAg
IGJvb2wgYWNjZWxlcmF0ZWQyRENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKICAgICBib29sIHN0cmVz
c09wdCA9IGZhbHNlOwogICAgIGJvb2wgc3RyZXNzRGVvcHQgPSBmYWxzZTsKQEAgLTE2MSw2ICsx
NjMsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICAgICAgaGFy
ZHdhcmVBY2NlbGVyYXRlZEdMID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0g
b3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWRDb21wb3NpdGluZykKICAgICAgICAgICAgIGFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQg
PT0gb3B0aW9uRm9yY2VDb21wb3NpdGluZ01vZGUpCisgICAgICAgICAgICBmb3JjZUNvbXBvc2l0
aW5nTW9kZSA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvbkVuYWJs
ZUFjY2VsZXJhdGVkMkRDYW52YXMpCiAgICAgICAgICAgICBhY2NlbGVyYXRlZDJEQ2FudmFzRW5h
YmxlZCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvblN0cmVzc09w
dCkKQEAgLTE5NCw2ICsxOTgsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQog
ICAgICAgICBUZXN0U2hlbGwgc2hlbGwodGVzdFNoZWxsTW9kZSk7CiAgICAgICAgIHNoZWxsLnNl
dEFsbG93RXh0ZXJuYWxQYWdlcyhhbGxvd0V4dGVybmFsUGFnZXMpOwogICAgICAgICBzaGVsbC5z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZCk7CisgICAgICAgIHNoZWxsLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGZvcmNlQ29tcG9z
aXRpbmdNb2RlKTsKICAgICAgICAgc2hlbGwuc2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQo
YWNjZWxlcmF0ZWQyRENhbnZhc0VuYWJsZWQpOwogICAgICAgICBzaGVsbC5zZXRKYXZhU2NyaXB0
RmxhZ3MoamF2YVNjcmlwdEZsYWdzKTsKICAgICAgICAgc2hlbGwuc2V0U3RyZXNzT3B0KHN0cmVz
c09wdCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hl
bGwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAppbmRl
eCBlMWE4NmVmZGFiNjRiNzJmODZiMTY4ZGQ1ZjBmNDhhZTViNjAwMDVhLi4xYTRlYjM5MTI3NzJk
YzJjNTE2ZTFiMGI1ZTEzMzBlMjE3NmYwMzI4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5jcHAKQEAgLTg1LDYgKzg1LDcgQEAgVGVzdFNoZWxsOjpUZXN0U2hl
bGwoYm9vbCB0ZXN0U2hlbGxNb2RlKQogICAgICwgbV9kZXZUb29scygwKQogICAgICwgbV9hbGxv
d0V4dGVybmFsUGFnZXMoZmFsc2UpCiAgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkKGZhbHNlKQorICAgICwgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZShmYWxzZSkKICAgICAsIG1f
YWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3N0cmVzc09wdChmYWxz
ZSkKICAgICAsIG1fc3RyZXNzRGVvcHQoZmFsc2UpCkBAIC0xNjMsNiArMTY0LDcgQEAgdm9pZCBU
ZXN0U2hlbGw6OnJlc2V0V2ViU2V0dGluZ3MoV2ViVmlldyYgd2ViVmlldykKIHsKICAgICBtX3By
ZWZzLnJlc2V0KCk7CiAgICAgbV9wcmVmcy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7CisgICAgbV9wcmVmcy5mb3JjZUNvbXBv
c2l0aW5nTW9kZSA9IG1fZm9yY2VDb21wb3NpdGluZ01vZGU7CiAgICAgbV9wcmVmcy5hY2NlbGVy
YXRlZDJkQ2FudmFzRW5hYmxlZCA9IG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAg
bV9wcmVmcy5hcHBseVRvKCZ3ZWJWaWV3KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmgKaW5kZXggZWY5YmU3ZmM0MmU1YzQ2Y2I5ZjM3OTE3M2IwYTg1YTQ4MmU5
ZTU2Yy4uZWNmMTllNTk1ZTAwZjY1ZDIyODNmYzBlYTY2MWM4YTE1MzJlMzQ5OSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRBbGxvd0V4dGVybmFsUGFnZXMoYm9vbCBhbGxvd0V4dGVybmFs
UGFnZXMpIHsgbV9hbGxvd0V4dGVybmFsUGFnZXMgPSBhbGxvd0V4dGVybmFsUGFnZXM7IH0KIAog
ICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgdm9pZCBz
ZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZWQpIHsgbV9mb3JjZUNvbXBvc2l0aW5n
TW9kZSA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVk
KGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkID0gZW5hYmxlZDsg
fQogCiAjaWYgZGVmaW5lZChPU19XSU4pCkBAIC0yMDAsNiArMjAxLDcgQEAgcHJpdmF0ZToKICAg
ICBpbnQgbV90aW1lb3V0OyAvLyB0aW1lb3V0IHZhbHVlIGluIG1pbGxpc2Vjb25kCiAgICAgYm9v
bCBtX2FsbG93RXh0ZXJuYWxQYWdlczsKICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQ7CisgICAgYm9vbCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlOwogICAgIGJvb2wgbV9h
Y2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKICAgICBXZWJQcmVmZXJlbmNlcyBtX3ByZWZzOwog
ICAgIGJvb2wgbV9zdHJlc3NPcHQ7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggNzFmNWVjNzk5ZmM3OWMxZTM2YjQxZGExOGY1ZmUw
ZGViMDU4YTNkZC4uODRmODRiNmI5ODc4ZmZmZWQyZTRkNzFmN2QxYTE4YTQxM2M0OGFjMyAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcApA
QCAtMTA0LDYgKzEwNCw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlc2V0KCkKICAgICBoeXBl
cmxpbmtBdWRpdGluZ0VuYWJsZWQgPSBmYWxzZTsKICAgICBhY2NlbGVyYXRlZENvbXBvc2l0aW5n
RW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkID0gZmFsc2U7
CisgICAgZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmYWxzZTsKIH0KIAogdm9pZCBXZWJQcmVmZXJl
bmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtMTQ5LDYgKzE1MCw3IEBAIHZvaWQg
V2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8oV2ViVmlldyogd2ViVmlldykKICAgICB3ZWJWaWV3LT5z
ZXRUYWJzVG9MaW5rcyh0YWJzVG9MaW5rcyk7CiAgICAgc2V0dGluZ3MtPnNldENhcmV0QnJvd3Np
bmdFbmFibGVkKGNhcmV0QnJvd3NpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQpOwor
ICAgIHNldHRpbmdzLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9k
ZSk7CiAgICAgc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGFjY2VsZXJh
dGVkMmRDYW52YXNFbmFibGVkKTsKIAogICAgIC8vIEZpeGVkIHZhbHVlcy4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDUwYmI4Y2NlOTY3
YTRmZjljODUxMDE0NmFmZWFjZTAwZDYxZDUyNGYuLmFkMjdmYjg0Y2E0MTZkYTBkZmY0NTYzZGRh
ZWJmNjM4YThmOGUzMzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlByZWZlcmVuY2VzLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
UHJlZmVyZW5jZXMuaApAQCAtNzgsNiArNzgsNyBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXMgewog
ICAgIGJvb2wgaHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkOwogICAgIGJvb2wgY2FyZXRCcm93c2lu
Z0VuYWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsKKyAgICBi
b29sIGZvcmNlQ29tcG9zaXRpbmdNb2RlOwogICAgIGJvb2wgYWNjZWxlcmF0ZWQyZENhbnZhc0Vu
YWJsZWQ7CiAKICAgICBXZWJQcmVmZXJlbmNlcygpIHsgcmVzZXQoKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85973</attachid>
            <date>2011-03-16 14:10:57 -0700</date>
            <delta_ts>2011-03-16 14:37:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56156-20110316141056.patch</filename>
            <type>text/plain</type>
            <size>14053</size>
            <attacher name="Daniel Sievers">sievers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEyMDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZWI5YjRkYTUyYjdjYzI0
MzZkMTVkODkxMDZmYTMyYjk4N2ZkYzU0Li40OGYwNTVmN2Y4ZDY3MTA2YzEzMjI5NTIyZTFhYTZm
YzA2NDYyZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTUgIERhbmll
bCBTaWV2ZXJzICA8c2lldmVyc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IFZh
bmdlbGlzIEtva2tldmlzLgorCisgICAgICAgIEFkZCBzZXR0aW5nIHRvIGFsd2F5cyBmb3JjZSBj
b21wb3NpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NjE1NgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQgYXMgdGhpcyBkZWZh
dWx0cyB0byBkaXNhYmxlZCAoYW5kIGlzIHVuZmVhc2libGUKKyAgICAgICAgdG8gYmUgdGVzdGVk
IHRocm91Z2ggcHJvcGVydHkgb3ZlcnJpZGluZyBhdCBydW50aW1lKS4KKworICAgICAgICAqIHBh
Z2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRGb3JjZUNvbXBv
c2l0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6Zm9yY2VDb21wb3NpdGlu
Z01vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpSZW5kZXJMYXllckNvbXBv
c2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRl
Q29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaDoKKwogMjAxMS0wMy0xNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaAppbmRleCBhYWI5MzZmOTgwYTIyNGMxYWQ4MWMwNjQwYTRmMmQwYzBlOThjMWMyLi4x
OWFkY2NjZDUwMzZmOWYxZGFjZTYzMGQyNDQ2ZmI0ODJhOTJkODJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCkBAIC0zNzIsNiArMzcyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIHNldENyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkKGJvb2wg
ZmxhZykgeyBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkID0g
ZmxhZzsgfQogICAgICAgICBib29sIGNyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxl
c0Rpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVk
Q1NTUnVsZXNEaXNhYmxlZDsgfQogCisgICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01v
ZGUoYm9vbCBmbGFnKSB7IG1fZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmbGFnOyB9CisgICAgICAg
IGJvb2wgZm9yY2VDb21wb3NpdGluZ01vZGUoKSB7IHJldHVybiBtX2ZvcmNlQ29tcG9zaXRpbmdN
b2RlOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAKQEAgLTQ3MCw2
ICs0NzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV91c2VQcmVIVE1M
NVBhcnNlclF1aXJrczogMTsKICAgICAgICAgYm9vbCBtX2h5cGVybGlua0F1ZGl0aW5nRW5hYmxl
ZCA6IDE7CiAgICAgICAgIGJvb2wgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVs
ZXNEaXNhYmxlZCA6IDE7CisgICAgICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA6IDE7
CiAKICNpZiBVU0UoU0FGQVJJX1RIRU1FKQogICAgICAgICBzdGF0aWMgYm9vbCBnU2hvdWxkUGFp
bnROYXRpdmVDb250cm9sczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMzdmMWI5ZTU4MGU5NWE4MTUyMjk3YzIwNjgxOWE3
ODJiM2E5ODhlYS4uYzAzNjc1NTIwMjUzYTg2NDgyMjY4NzIwZWZiOTc1NjNkZGZmMjk4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKQEAgLTEwMywxMSArMTAzLDIyIEBAIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yKFJlbmRlclZpZXcqIHJlbmRlclZpZXcpCiAgICAgLCBtX2NvbXBvc2l0aW5n
KGZhbHNlKQogICAgICwgbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKGZhbHNlKQogICAg
ICwgbV9mbHVzaGluZ0xheWVycyhmYWxzZSkKKyAgICAsIG1fZm9yY2VDb21wb3NpdGluZ01vZGUo
ZmFsc2UpCiAgICAgLCBtX3Jvb3RMYXllckF0dGFjaG1lbnQoUm9vdExheWVyVW5hdHRhY2hlZCkK
ICNpZiBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKICAgICAsIG1fcm9vdExheWVyVXBkYXRlQ291bnQo
MCkKICNlbmRpZiAvLyBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKIHsKKyAgICBTZXR0aW5ncyogc2V0
dGluZ3MgPSBtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPnNldHRpbmdzKCk7CisKKyAgICAvLyBF
dmVuIHdoZW4gZm9yY2luZyBjb21wb3NpdGluZyBtb2RlLCBpZ25vcmUgY2hpbGQgZnJhbWVzLCBv
ciB0aGlzIHdpbGwgdHJpZ2dlcgorICAgIC8vIGxheWVyIGNyZWF0aW9uIGZyb20gdGhlIGVuY2xv
c2luZyBSZW5kZXJJRnJhbWUuCisgICAgQVNTRVJUKG1fcmVuZGVyVmlldy0+ZG9jdW1lbnQoKS0+
ZnJhbWUoKSk7CisgICAgaWYgKHNldHRpbmdzICYmIHNldHRpbmdzLT5mb3JjZUNvbXBvc2l0aW5n
TW9kZSgpICYmIHNldHRpbmdzLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCisgICAg
ICAgICYmICFtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPmZyYW1lKCktPnRyZWUoKS0+cGFyZW50
KCkpIHsKKyAgICAgICAgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA9IHRydWU7CisgICAgICAgIGVu
YWJsZUNvbXBvc2l0aW5nTW9kZSgpOworICAgIH0KIH0KIAogUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojp+UmVuZGVyTGF5ZXJDb21wb3NpdG9yKCkKQEAgLTcxMSw3ICs3MjIsNyBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxh
eWVyKiBsYXllciwgTwogCiAgICAgLy8gSWYgd2UncmUgYmFjayBhdCB0aGUgcm9vdCwgYW5kIG5v
IG90aGVyIGxheWVycyBuZWVkIHRvIGJlIGNvbXBvc2l0ZWQsIGFuZCB0aGUgcm9vdCBsYXllciBp
dHNlbGYgZG9lc24ndCBuZWVkCiAgICAgLy8gdG8gYmUgY29tcG9zaXRlZCwgdGhlbiB3ZSBjYW4g
ZHJvcCBvdXQgb2YgY29tcG9zaXRpbmcgbW9kZSBhbHRvZ2V0aGVyLgotICAgIGlmIChsYXllci0+
aXNSb290TGF5ZXIoKSAmJiAhY2hpbGRTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nICYmICFy
ZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIobGF5ZXIpKSB7CisgICAgaWYgKGxheWVyLT5pc1Jvb3RM
YXllcigpICYmICFjaGlsZFN0YXRlLm1fc3VidHJlZUlzQ29tcG9zaXRpbmcgJiYgIXJlcXVpcmVz
Q29tcG9zaXRpbmdMYXllcihsYXllcikgJiYgIW1fZm9yY2VDb21wb3NpdGluZ01vZGUpIHsKICAg
ICAgICAgZW5hYmxlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKTsKICAgICAgICAgd2lsbEJlQ29tcG9z
aXRlZCA9IGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCAzMmQ2NGQzMzk2NjlhNTFiZWYyYTFlNWRhMTk2Mzg1
Y2VjMGQ1MGRmLi43MzgzODkxMDEyYjM5M2MyMjg2ZmVlYTYyNTczNzYyNDY5YTg5NjJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBA
IC0yNzIsNiArMjcyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29tcG9zaXRpbmc7CiAgICAg
Ym9vbCBtX2NvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQ7CiAgICAgYm9vbCBtX2ZsdXNoaW5n
TGF5ZXJzOworICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsKIAogICAgIFJvb3RMYXll
ckF0dGFjaG1lbnQgbV9yb290TGF5ZXJBdHRhY2htZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGRmMmZhNmZlNjM4MGQ4NDEzZWVlYmM0MjQzNTFiYjEyODVjMzBjNWQuLjM4ZDQ2
NzY1YjIyODI2N2IwNzJmNDZiMTFlZWQyOGEyOTlmZmVjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDMtMTUgIERhbmllbCBTaWV2ZXJzICA8c2ll
dmVyc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IFZhbmdlbGlzIEtva2tldmlz
LgorCisgICAgICAgIEFkZCBzZXR0aW5nIHRvIGFsd2F5cyBmb3JjZSBjb21wb3NpdGluZyBtb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjE1Ngor
CisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0Rm9yY2VD
b21wb3NpdGluZ01vZGUpOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKKwogMjAx
MS0wMy0xNSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0
dGluZ3MuaAppbmRleCAxMWVkNDlkODZlZDQwYWMyNjBmNjQzY2FlOGY5NmVmNTliZTMwZmQ5Li4x
MTNkZTUyYTdlNDE1ZmVhNWQzMzdhYzFkZjVhNWNlZjQ0MzMwNmUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIHNob3dQbGF0Zm9ybUxheWVyVHJlZSgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29s
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZChib29sKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIGNvbXBvc2l0ZVRvVGV4dHVyZUVuYWJsZWQoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5z
Zm9ybXNFbmFibGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IGU1ZDE3MmUzNjBlMzE5MmZhYmM5YWUxY2RjOWRlNjI1
NWFhYTZjNTcuLjEwODlhZjk5ODQxMDI4ZTE3NTYxN2VmNWVhZDQ2ZGFkYzk1MjNiYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtMzA4
LDYgKzMwOCwxMSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkKQoreworICAgIG1fc2V0dGluZ3Mt
PnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGVuYWJsZWQpOworfQorCiB2b2lkIFdlYlNldHRpbmdz
SW1wbDo6c2V0Q29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAg
bV9jb21wb3NpdGVUb1RleHR1cmVFbmFibGVkID0gZW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggMzIzYTViMzExYTUyZTA4N2E0Yzdk
ZGU0YzQxZGIyNjJiZjFkMzhlYi4uZDAzMTlmOGVkZTQyZWM0MzllMmQ0Y2NkYmFjNjZkNjZlZmVj
NDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
QEAgLTk0LDYgKzk0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG93UGxhdGZvcm1M
YXllclRyZWUoKSBjb25zdCB7IHJldHVybiBtX3Nob3dQbGF0Zm9ybUxheWVyVHJlZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCk7CisgICAg
dmlydHVhbCB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRDb21wb3NpdGVUb1RleHR1cmVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9v
bCBjb21wb3NpdGVUb1RleHR1cmVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGVU
b1RleHR1cmVFbmFibGVkOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUzMzIyNDIwYjgxOWJkODk4OWM0YTAwNDk3
ZTE3YzEzNGRmZWFmMjIuLjNmZDMzYWUzZjU3MWUxMWYyZWFmZjE5NDQ3NWQyMDZlNGRmZWQ0MzQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxMS0wMy0xNSAgRGFuaWVsIFNpZXZlcnMgIDxzaWV2ZXJzQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVmFuZ2VsaXMgS29ra2V2aXMuCisKKyAgICAgICAg
QWRkIHNldHRpbmcgdG8gYWx3YXlzIGZvcmNlIGNvbXBvc2l0aW5nIG1vZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MTU2CisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChtYWlu
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAg
ICAgICAoVGVzdFNoZWxsOjpUZXN0U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjpyZXNldFdl
YlNldHRpbmdzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
aDoKKyAgICAgICAgKFRlc3RTaGVsbDo6c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KFdlYlByZWZlcmVuY2VzOjpyZXNldCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlU
byk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoK
KwogMjAxMS0wMy0xNSAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBlMDA4NDMyMzNiNTYz
YjAzYTFmNGVmZDYxMWZkMTg1NTAxNzM2ZGY3Li5mYTdlOTFkMDI1MDBmMjlkZjQ4NzZkYmFlOTk0
MDc2ZjQwZmExZWE2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9E
dW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVt
cFJlbmRlclRyZWUuY3BwCkBAIC01Myw2ICs1Myw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlv
bkNoZWNrTGF5b3V0VGVzdFN5c3RlbURlcHNbXSA9ICItLWNoZWNrLWxheW91dC10ZXN0LXN5cy1k
CiAKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkhhcmR3YXJlQWNjZWxlcmF0ZWRHTFtdID0gIi0t
ZW5hYmxlLWhhcmR3YXJlLWdwdSI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nW10gPSAiLS1lbmFibGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmci
Oworc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRm9yY2VDb21wb3NpdGluZ01vZGVbXSA9ICItLWZv
cmNlLWNvbXBvc2l0aW5nLW1vZGUiOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlQWNj
ZWxlcmF0ZWQyRENhbnZhc1tdID0gIi0tZW5hYmxlLWFjY2VsZXJhdGVkLTJkLWNhbnZhcyI7CiAK
IHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvblN0cmVzc09wdFtdID0gIi0tc3RyZXNzLW9wdCI7CkBA
IC0xMzEsNiArMTMyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBi
b29sIGFsbG93RXh0ZXJuYWxQYWdlcyA9IGZhbHNlOwogICAgIGJvb2wgc3RhcnR1cERpYWxvZyA9
IGZhbHNlOwogICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBmYWxzZTsK
KyAgICBib29sIGZvcmNlQ29tcG9zaXRpbmdNb2RlID0gZmFsc2U7CiAgICAgYm9vbCBhY2NlbGVy
YXRlZDJEQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGJvb2wgc3RyZXNzT3B0ID0gZmFsc2U7
CiAgICAgYm9vbCBzdHJlc3NEZW9wdCA9IGZhbHNlOwpAQCAtMTYxLDYgKzE2Myw4IEBAIGludCBt
YWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAgICBoYXJkd2FyZUFjY2VsZXJh
dGVkR0wgPSB0cnVlOwogICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25FbmFibGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nKQogICAgICAgICAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQgPSB0cnVlOworICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25Gb3Jj
ZUNvbXBvc2l0aW5nTW9kZSkKKyAgICAgICAgICAgIGZvcmNlQ29tcG9zaXRpbmdNb2RlID0gdHJ1
ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQy
RENhbnZhcykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsK
ICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uU3RyZXNzT3B0KQpAQCAtMTk0LDYg
KzE5OCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgIFRlc3RT
aGVsbCBzaGVsbCh0ZXN0U2hlbGxNb2RlKTsKICAgICAgICAgc2hlbGwuc2V0QWxsb3dFeHRlcm5h
bFBhZ2VzKGFsbG93RXh0ZXJuYWxQYWdlcyk7CiAgICAgICAgIHNoZWxsLnNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdFbmFibGVkKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKKyAgICAg
ICAgc2hlbGwuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZm9yY2VDb21wb3NpdGluZ01vZGUpOwog
ICAgICAgICBzaGVsbC5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJE
Q2FudmFzRW5hYmxlZCk7CiAgICAgICAgIHNoZWxsLnNldEphdmFTY3JpcHRGbGFncyhqYXZhU2Ny
aXB0RmxhZ3MpOwogICAgICAgICBzaGVsbC5zZXRTdHJlc3NPcHQoc3RyZXNzT3B0KTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IGUxYTg2ZWZkYWI2
NGI3MmY4NmIxNjhkZDVmMGY0OGFlNWI2MDAwNWEuLjFhNGViMzkxMjc3MmRjMmM1MTZlMWIwYjVl
MTMzMGUyMTc2ZjAzMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RTaGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmNwcApAQCAtODUsNiArODUsNyBAQCBUZXN0U2hlbGw6OlRlc3RTaGVsbChib29sIHRlc3RT
aGVsbE1vZGUpCiAgICAgLCBtX2RldlRvb2xzKDApCiAgICAgLCBtX2FsbG93RXh0ZXJuYWxQYWdl
cyhmYWxzZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoZmFsc2UpCisg
ICAgLCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZDJk
Q2FudmFzRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc3RyZXNzT3B0KGZhbHNlKQogICAgICwgbV9z
dHJlc3NEZW9wdChmYWxzZSkKQEAgLTE2Myw2ICsxNjQsNyBAQCB2b2lkIFRlc3RTaGVsbDo6cmVz
ZXRXZWJTZXR0aW5ncyhXZWJWaWV3JiB3ZWJWaWV3KQogewogICAgIG1fcHJlZnMucmVzZXQoKTsK
ICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZDsKKyAgICBtX3ByZWZzLmZvcmNlQ29tcG9zaXRpbmdNb2RlID0g
bV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsKICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkMmRDYW52YXNF
bmFibGVkID0gbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKICAgICBtX3ByZWZzLmFwcGx5
VG8oJndlYlZpZXcpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
aAppbmRleCBlZjliZTdmYzQyZTVjNDZjYjlmMzc5MTczYjBhODVhNDgyZTllNTZjLi5lY2YxOWU1
OTVlMDBmNjVkMjI4M2ZjMGVhNjYxYzhhMTUzMmUzNDk5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEFsbG93RXh0ZXJuYWxQYWdlcyhib29sIGFsbG93RXh0ZXJuYWxQYWdlcykgeyBtX2Fs
bG93RXh0ZXJuYWxQYWdlcyA9IGFsbG93RXh0ZXJuYWxQYWdlczsgfQogCiAgICAgdm9pZCBzZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KKyAgICB2b2lkIHNldEZvcmNlQ29tcG9z
aXRpbmdNb2RlKGJvb2wgZW5hYmxlZCkgeyBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlID0gZW5hYmxl
ZDsgfQogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVk
KSB7IG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBlbmFibGVkOyB9CiAKICNpZiBkZWZp
bmVkKE9TX1dJTikKQEAgLTIwMCw2ICsyMDEsNyBAQCBwcml2YXRlOgogICAgIGludCBtX3RpbWVv
dXQ7IC8vIHRpbWVvdXQgdmFsdWUgaW4gbWlsbGlzZWNvbmQKICAgICBib29sIG1fYWxsb3dFeHRl
cm5hbFBhZ2VzOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsKKyAg
ICBib29sIG1fZm9yY2VDb21wb3NpdGluZ01vZGU7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVkMmRD
YW52YXNFbmFibGVkOwogICAgIFdlYlByZWZlcmVuY2VzIG1fcHJlZnM7CiAgICAgYm9vbCBtX3N0
cmVzc09wdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBy
ZWZlcmVuY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVu
Y2VzLmNwcAppbmRleCA3MWY1ZWM3OTlmYzc5YzFlMzZiNDFkYTE4ZjVmZTBkZWIwNThhM2RkLi44
NGY4NGI2Yjk4NzhmZmZlZDJlNGQ3MWY3ZDFhMThhNDEzYzQ4YWMzIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0xMDQsNiArMTA0
LDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6cmVzZXQoKQogICAgIGh5cGVybGlua0F1ZGl0aW5n
RW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gZmFs
c2U7CiAgICAgYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKKyAgICBmb3JjZUNv
bXBvc2l0aW5nTW9kZSA9IGZhbHNlOwogfQogCiB2b2lkIFdlYlByZWZlcmVuY2VzOjphcHBseVRv
KFdlYlZpZXcqIHdlYlZpZXcpCkBAIC0xNDksNiArMTUwLDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNl
czo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHdlYlZpZXctPnNldFRhYnNUb0xpbmtz
KHRhYnNUb0xpbmtzKTsKICAgICBzZXR0aW5ncy0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoY2Fy
ZXRCcm93c2luZ0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCk7CisgICAgc2V0dGluZ3Mt
PnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGZvcmNlQ29tcG9zaXRpbmdNb2RlKTsKICAgICBzZXR0
aW5ncy0+c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYWNjZWxlcmF0ZWQyZENhbnZhc0Vu
YWJsZWQpOwogCiAgICAgLy8gRml4ZWQgdmFsdWVzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggNTBiYjhjY2U5NjdhNGZmOWM4NTEwMTQ2
YWZlYWNlMDBkNjFkNTI0Zi4uYWQyN2ZiODRjYTQxNmRhMGRmZjQ1NjNkZGFlYmY2MzhhOGY4ZTMz
MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5j
ZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5o
CkBAIC03OCw2ICs3OCw3IEBAIHN0cnVjdCBXZWJQcmVmZXJlbmNlcyB7CiAgICAgYm9vbCBoeXBl
cmxpbmtBdWRpdGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxlZDsKICAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOworICAgIGJvb2wgZm9yY2VDb21w
b3NpdGluZ01vZGU7CiAgICAgYm9vbCBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKIAogICAg
IFdlYlByZWZlcmVuY2VzKCkgeyByZXNldCgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85978</attachid>
            <date>2011-03-16 14:37:10 -0700</date>
            <delta_ts>2011-03-16 14:38:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56156-20110316143709.patch</filename>
            <type>text/plain</type>
            <size>14053</size>
            <attacher name="Daniel Sievers">sievers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEyMDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZWI5YjRkYTUyYjdjYzI0
MzZkMTVkODkxMDZmYTMyYjk4N2ZkYzU0Li40OGYwNTVmN2Y4ZDY3MTA2YzEzMjI5NTIyZTFhYTZm
YzA2NDYyZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTUgIERhbmll
bCBTaWV2ZXJzICA8c2lldmVyc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IFZh
bmdlbGlzIEtva2tldmlzLgorCisgICAgICAgIEFkZCBzZXR0aW5nIHRvIGFsd2F5cyBmb3JjZSBj
b21wb3NpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NjE1NgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQgYXMgdGhpcyBkZWZh
dWx0cyB0byBkaXNhYmxlZCAoYW5kIGlzIHVuZmVhc2libGUKKyAgICAgICAgdG8gYmUgdGVzdGVk
IHRocm91Z2ggcHJvcGVydHkgb3ZlcnJpZGluZyBhdCBydW50aW1lKS4KKworICAgICAgICAqIHBh
Z2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRGb3JjZUNvbXBv
c2l0aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6Zm9yY2VDb21wb3NpdGlu
Z01vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpSZW5kZXJMYXllckNvbXBv
c2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRl
Q29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaDoKKwogMjAxMS0wMy0xNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaAppbmRleCBhYWI5MzZmOTgwYTIyNGMxYWQ4MWMwNjQwYTRmMmQwYzBlOThjMWMyLi4x
OWFkY2NjZDUwMzZmOWYxZGFjZTYzMGQyNDQ2ZmI0ODJhOTJkODJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCkBAIC0zNzIsNiArMzcyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIHNldENyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkKGJvb2wg
ZmxhZykgeyBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkID0g
ZmxhZzsgfQogICAgICAgICBib29sIGNyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxl
c0Rpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVk
Q1NTUnVsZXNEaXNhYmxlZDsgfQogCisgICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01v
ZGUoYm9vbCBmbGFnKSB7IG1fZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmbGFnOyB9CisgICAgICAg
IGJvb2wgZm9yY2VDb21wb3NpdGluZ01vZGUoKSB7IHJldHVybiBtX2ZvcmNlQ29tcG9zaXRpbmdN
b2RlOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAKQEAgLTQ3MCw2
ICs0NzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV91c2VQcmVIVE1M
NVBhcnNlclF1aXJrczogMTsKICAgICAgICAgYm9vbCBtX2h5cGVybGlua0F1ZGl0aW5nRW5hYmxl
ZCA6IDE7CiAgICAgICAgIGJvb2wgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVs
ZXNEaXNhYmxlZCA6IDE7CisgICAgICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA6IDE7
CiAKICNpZiBVU0UoU0FGQVJJX1RIRU1FKQogICAgICAgICBzdGF0aWMgYm9vbCBnU2hvdWxkUGFp
bnROYXRpdmVDb250cm9sczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMzdmMWI5ZTU4MGU5NWE4MTUyMjk3YzIwNjgxOWE3
ODJiM2E5ODhlYS4uYzAzNjc1NTIwMjUzYTg2NDgyMjY4NzIwZWZiOTc1NjNkZGZmMjk4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKQEAgLTEwMywxMSArMTAzLDIyIEBAIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yKFJlbmRlclZpZXcqIHJlbmRlclZpZXcpCiAgICAgLCBtX2NvbXBvc2l0aW5n
KGZhbHNlKQogICAgICwgbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKGZhbHNlKQogICAg
ICwgbV9mbHVzaGluZ0xheWVycyhmYWxzZSkKKyAgICAsIG1fZm9yY2VDb21wb3NpdGluZ01vZGUo
ZmFsc2UpCiAgICAgLCBtX3Jvb3RMYXllckF0dGFjaG1lbnQoUm9vdExheWVyVW5hdHRhY2hlZCkK
ICNpZiBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKICAgICAsIG1fcm9vdExheWVyVXBkYXRlQ291bnQo
MCkKICNlbmRpZiAvLyBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKIHsKKyAgICBTZXR0aW5ncyogc2V0
dGluZ3MgPSBtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPnNldHRpbmdzKCk7CisKKyAgICAvLyBF
dmVuIHdoZW4gZm9yY2luZyBjb21wb3NpdGluZyBtb2RlLCBpZ25vcmUgY2hpbGQgZnJhbWVzLCBv
ciB0aGlzIHdpbGwgdHJpZ2dlcgorICAgIC8vIGxheWVyIGNyZWF0aW9uIGZyb20gdGhlIGVuY2xv
c2luZyBSZW5kZXJJRnJhbWUuCisgICAgQVNTRVJUKG1fcmVuZGVyVmlldy0+ZG9jdW1lbnQoKS0+
ZnJhbWUoKSk7CisgICAgaWYgKHNldHRpbmdzICYmIHNldHRpbmdzLT5mb3JjZUNvbXBvc2l0aW5n
TW9kZSgpICYmIHNldHRpbmdzLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCisgICAg
ICAgICYmICFtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPmZyYW1lKCktPnRyZWUoKS0+cGFyZW50
KCkpIHsKKyAgICAgICAgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA9IHRydWU7CisgICAgICAgIGVu
YWJsZUNvbXBvc2l0aW5nTW9kZSgpOworICAgIH0KIH0KIAogUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojp+UmVuZGVyTGF5ZXJDb21wb3NpdG9yKCkKQEAgLTcxMSw3ICs3MjIsNyBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxh
eWVyKiBsYXllciwgTwogCiAgICAgLy8gSWYgd2UncmUgYmFjayBhdCB0aGUgcm9vdCwgYW5kIG5v
IG90aGVyIGxheWVycyBuZWVkIHRvIGJlIGNvbXBvc2l0ZWQsIGFuZCB0aGUgcm9vdCBsYXllciBp
dHNlbGYgZG9lc24ndCBuZWVkCiAgICAgLy8gdG8gYmUgY29tcG9zaXRlZCwgdGhlbiB3ZSBjYW4g
ZHJvcCBvdXQgb2YgY29tcG9zaXRpbmcgbW9kZSBhbHRvZ2V0aGVyLgotICAgIGlmIChsYXllci0+
aXNSb290TGF5ZXIoKSAmJiAhY2hpbGRTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nICYmICFy
ZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIobGF5ZXIpKSB7CisgICAgaWYgKGxheWVyLT5pc1Jvb3RM
YXllcigpICYmICFjaGlsZFN0YXRlLm1fc3VidHJlZUlzQ29tcG9zaXRpbmcgJiYgIXJlcXVpcmVz
Q29tcG9zaXRpbmdMYXllcihsYXllcikgJiYgIW1fZm9yY2VDb21wb3NpdGluZ01vZGUpIHsKICAg
ICAgICAgZW5hYmxlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKTsKICAgICAgICAgd2lsbEJlQ29tcG9z
aXRlZCA9IGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCAzMmQ2NGQzMzk2NjlhNTFiZWYyYTFlNWRhMTk2Mzg1
Y2VjMGQ1MGRmLi43MzgzODkxMDEyYjM5M2MyMjg2ZmVlYTYyNTczNzYyNDY5YTg5NjJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBA
IC0yNzIsNiArMjcyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29tcG9zaXRpbmc7CiAgICAg
Ym9vbCBtX2NvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQ7CiAgICAgYm9vbCBtX2ZsdXNoaW5n
TGF5ZXJzOworICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsKIAogICAgIFJvb3RMYXll
ckF0dGFjaG1lbnQgbV9yb290TGF5ZXJBdHRhY2htZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGRmMmZhNmZlNjM4MGQ4NDEzZWVlYmM0MjQzNTFiYjEyODVjMzBjNWQuLjM4ZDQ2
NzY1YjIyODI2N2IwNzJmNDZiMTFlZWQyOGEyOTlmZmVjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDMtMTUgIERhbmllbCBTaWV2ZXJzICA8c2ll
dmVyc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IFZhbmdlbGlzIEtva2tldmlz
LgorCisgICAgICAgIEFkZCBzZXR0aW5nIHRvIGFsd2F5cyBmb3JjZSBjb21wb3NpdGluZyBtb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjE1Ngor
CisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0Rm9yY2VD
b21wb3NpdGluZ01vZGUpOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKKwogMjAx
MS0wMy0xNSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0
dGluZ3MuaAppbmRleCAxMWVkNDlkODZlZDQwYWMyNjBmNjQzY2FlOGY5NmVmNTliZTMwZmQ5Li4x
MTNkZTUyYTdlNDE1ZmVhNWQzMzdhYzFkZjVhNWNlZjQ0MzMwNmUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIHNob3dQbGF0Zm9ybUxheWVyVHJlZSgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29s
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZChib29sKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIGNvbXBvc2l0ZVRvVGV4dHVyZUVuYWJsZWQoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5z
Zm9ybXNFbmFibGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IGU1ZDE3MmUzNjBlMzE5MmZhYmM5YWUxY2RjOWRlNjI1
NWFhYTZjNTcuLjEwODlhZjk5ODQxMDI4ZTE3NTYxN2VmNWVhZDQ2ZGFkYzk1MjNiYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtMzA4
LDYgKzMwOCwxMSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkKQoreworICAgIG1fc2V0dGluZ3Mt
PnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGVuYWJsZWQpOworfQorCiB2b2lkIFdlYlNldHRpbmdz
SW1wbDo6c2V0Q29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAg
bV9jb21wb3NpdGVUb1RleHR1cmVFbmFibGVkID0gZW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggMzIzYTViMzExYTUyZTA4N2E0Yzdk
ZGU0YzQxZGIyNjJiZjFkMzhlYi4uZDAzMTlmOGVkZTQyZWM0MzllMmQ0Y2NkYmFjNjZkNjZlZmVj
NDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
QEAgLTk0LDYgKzk0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG93UGxhdGZvcm1M
YXllclRyZWUoKSBjb25zdCB7IHJldHVybiBtX3Nob3dQbGF0Zm9ybUxheWVyVHJlZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCk7CisgICAg
dmlydHVhbCB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRDb21wb3NpdGVUb1RleHR1cmVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9v
bCBjb21wb3NpdGVUb1RleHR1cmVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGVU
b1RleHR1cmVFbmFibGVkOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUzMzIyNDIwYjgxOWJkODk4OWM0YTAwNDk3
ZTE3YzEzNGRmZWFmMjIuLjNmZDMzYWUzZjU3MWUxMWYyZWFmZjE5NDQ3NWQyMDZlNGRmZWQ0MzQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxMS0wMy0xNSAgRGFuaWVsIFNpZXZlcnMgIDxzaWV2ZXJzQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVmFuZ2VsaXMgS29ra2V2aXMuCisKKyAgICAgICAg
QWRkIHNldHRpbmcgdG8gYWx3YXlzIGZvcmNlIGNvbXBvc2l0aW5nIG1vZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MTU2CisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChtYWlu
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAg
ICAgICAoVGVzdFNoZWxsOjpUZXN0U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjpyZXNldFdl
YlNldHRpbmdzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
aDoKKyAgICAgICAgKFRlc3RTaGVsbDo6c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KFdlYlByZWZlcmVuY2VzOjpyZXNldCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlU
byk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoK
KwogMjAxMS0wMy0xNSAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBlMDA4NDMyMzNiNTYz
YjAzYTFmNGVmZDYxMWZkMTg1NTAxNzM2ZGY3Li5mYTdlOTFkMDI1MDBmMjlkZjQ4NzZkYmFlOTk0
MDc2ZjQwZmExZWE2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9E
dW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVt
cFJlbmRlclRyZWUuY3BwCkBAIC01Myw2ICs1Myw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlv
bkNoZWNrTGF5b3V0VGVzdFN5c3RlbURlcHNbXSA9ICItLWNoZWNrLWxheW91dC10ZXN0LXN5cy1k
CiAKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkhhcmR3YXJlQWNjZWxlcmF0ZWRHTFtdID0gIi0t
ZW5hYmxlLWhhcmR3YXJlLWdwdSI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nW10gPSAiLS1lbmFibGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmci
Oworc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRm9yY2VDb21wb3NpdGluZ01vZGVbXSA9ICItLWZv
cmNlLWNvbXBvc2l0aW5nLW1vZGUiOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlQWNj
ZWxlcmF0ZWQyRENhbnZhc1tdID0gIi0tZW5hYmxlLWFjY2VsZXJhdGVkLTJkLWNhbnZhcyI7CiAK
IHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvblN0cmVzc09wdFtdID0gIi0tc3RyZXNzLW9wdCI7CkBA
IC0xMzEsNiArMTMyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBi
b29sIGFsbG93RXh0ZXJuYWxQYWdlcyA9IGZhbHNlOwogICAgIGJvb2wgc3RhcnR1cERpYWxvZyA9
IGZhbHNlOwogICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBmYWxzZTsK
KyAgICBib29sIGZvcmNlQ29tcG9zaXRpbmdNb2RlID0gZmFsc2U7CiAgICAgYm9vbCBhY2NlbGVy
YXRlZDJEQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGJvb2wgc3RyZXNzT3B0ID0gZmFsc2U7
CiAgICAgYm9vbCBzdHJlc3NEZW9wdCA9IGZhbHNlOwpAQCAtMTYxLDYgKzE2Myw4IEBAIGludCBt
YWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAgICBoYXJkd2FyZUFjY2VsZXJh
dGVkR0wgPSB0cnVlOwogICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25FbmFibGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nKQogICAgICAgICAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQgPSB0cnVlOworICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25Gb3Jj
ZUNvbXBvc2l0aW5nTW9kZSkKKyAgICAgICAgICAgIGZvcmNlQ29tcG9zaXRpbmdNb2RlID0gdHJ1
ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQy
RENhbnZhcykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsK
ICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uU3RyZXNzT3B0KQpAQCAtMTk0LDYg
KzE5OCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgIFRlc3RT
aGVsbCBzaGVsbCh0ZXN0U2hlbGxNb2RlKTsKICAgICAgICAgc2hlbGwuc2V0QWxsb3dFeHRlcm5h
bFBhZ2VzKGFsbG93RXh0ZXJuYWxQYWdlcyk7CiAgICAgICAgIHNoZWxsLnNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdFbmFibGVkKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKKyAgICAg
ICAgc2hlbGwuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZm9yY2VDb21wb3NpdGluZ01vZGUpOwog
ICAgICAgICBzaGVsbC5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJE
Q2FudmFzRW5hYmxlZCk7CiAgICAgICAgIHNoZWxsLnNldEphdmFTY3JpcHRGbGFncyhqYXZhU2Ny
aXB0RmxhZ3MpOwogICAgICAgICBzaGVsbC5zZXRTdHJlc3NPcHQoc3RyZXNzT3B0KTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IGUxYTg2ZWZkYWI2
NGI3MmY4NmIxNjhkZDVmMGY0OGFlNWI2MDAwNWEuLjFhNGViMzkxMjc3MmRjMmM1MTZlMWIwYjVl
MTMzMGUyMTc2ZjAzMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RTaGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmNwcApAQCAtODUsNiArODUsNyBAQCBUZXN0U2hlbGw6OlRlc3RTaGVsbChib29sIHRlc3RT
aGVsbE1vZGUpCiAgICAgLCBtX2RldlRvb2xzKDApCiAgICAgLCBtX2FsbG93RXh0ZXJuYWxQYWdl
cyhmYWxzZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoZmFsc2UpCisg
ICAgLCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZDJk
Q2FudmFzRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc3RyZXNzT3B0KGZhbHNlKQogICAgICwgbV9z
dHJlc3NEZW9wdChmYWxzZSkKQEAgLTE2Myw2ICsxNjQsNyBAQCB2b2lkIFRlc3RTaGVsbDo6cmVz
ZXRXZWJTZXR0aW5ncyhXZWJWaWV3JiB3ZWJWaWV3KQogewogICAgIG1fcHJlZnMucmVzZXQoKTsK
ICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZDsKKyAgICBtX3ByZWZzLmZvcmNlQ29tcG9zaXRpbmdNb2RlID0g
bV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsKICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkMmRDYW52YXNF
bmFibGVkID0gbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKICAgICBtX3ByZWZzLmFwcGx5
VG8oJndlYlZpZXcpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
aAppbmRleCBlZjliZTdmYzQyZTVjNDZjYjlmMzc5MTczYjBhODVhNDgyZTllNTZjLi5lY2YxOWU1
OTVlMDBmNjVkMjI4M2ZjMGVhNjYxYzhhMTUzMmUzNDk5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEFsbG93RXh0ZXJuYWxQYWdlcyhib29sIGFsbG93RXh0ZXJuYWxQYWdlcykgeyBtX2Fs
bG93RXh0ZXJuYWxQYWdlcyA9IGFsbG93RXh0ZXJuYWxQYWdlczsgfQogCiAgICAgdm9pZCBzZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KKyAgICB2b2lkIHNldEZvcmNlQ29tcG9z
aXRpbmdNb2RlKGJvb2wgZW5hYmxlZCkgeyBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlID0gZW5hYmxl
ZDsgfQogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVk
KSB7IG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBlbmFibGVkOyB9CiAKICNpZiBkZWZp
bmVkKE9TX1dJTikKQEAgLTIwMCw2ICsyMDEsNyBAQCBwcml2YXRlOgogICAgIGludCBtX3RpbWVv
dXQ7IC8vIHRpbWVvdXQgdmFsdWUgaW4gbWlsbGlzZWNvbmQKICAgICBib29sIG1fYWxsb3dFeHRl
cm5hbFBhZ2VzOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsKKyAg
ICBib29sIG1fZm9yY2VDb21wb3NpdGluZ01vZGU7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVkMmRD
YW52YXNFbmFibGVkOwogICAgIFdlYlByZWZlcmVuY2VzIG1fcHJlZnM7CiAgICAgYm9vbCBtX3N0
cmVzc09wdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBy
ZWZlcmVuY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVu
Y2VzLmNwcAppbmRleCA3MWY1ZWM3OTlmYzc5YzFlMzZiNDFkYTE4ZjVmZTBkZWIwNThhM2RkLi44
NGY4NGI2Yjk4NzhmZmZlZDJlNGQ3MWY3ZDFhMThhNDEzYzQ4YWMzIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0xMDQsNiArMTA0
LDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6cmVzZXQoKQogICAgIGh5cGVybGlua0F1ZGl0aW5n
RW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gZmFs
c2U7CiAgICAgYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKKyAgICBmb3JjZUNv
bXBvc2l0aW5nTW9kZSA9IGZhbHNlOwogfQogCiB2b2lkIFdlYlByZWZlcmVuY2VzOjphcHBseVRv
KFdlYlZpZXcqIHdlYlZpZXcpCkBAIC0xNDksNiArMTUwLDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNl
czo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHdlYlZpZXctPnNldFRhYnNUb0xpbmtz
KHRhYnNUb0xpbmtzKTsKICAgICBzZXR0aW5ncy0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoY2Fy
ZXRCcm93c2luZ0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCk7CisgICAgc2V0dGluZ3Mt
PnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGZvcmNlQ29tcG9zaXRpbmdNb2RlKTsKICAgICBzZXR0
aW5ncy0+c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYWNjZWxlcmF0ZWQyZENhbnZhc0Vu
YWJsZWQpOwogCiAgICAgLy8gRml4ZWQgdmFsdWVzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggNTBiYjhjY2U5NjdhNGZmOWM4NTEwMTQ2
YWZlYWNlMDBkNjFkNTI0Zi4uYWQyN2ZiODRjYTQxNmRhMGRmZjQ1NjNkZGFlYmY2MzhhOGY4ZTMz
MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5j
ZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5o
CkBAIC03OCw2ICs3OCw3IEBAIHN0cnVjdCBXZWJQcmVmZXJlbmNlcyB7CiAgICAgYm9vbCBoeXBl
cmxpbmtBdWRpdGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxlZDsKICAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOworICAgIGJvb2wgZm9yY2VDb21w
b3NpdGluZ01vZGU7CiAgICAgYm9vbCBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKIAogICAg
IFdlYlByZWZlcmVuY2VzKCkgeyByZXNldCgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85979</attachid>
            <date>2011-03-16 14:38:08 -0700</date>
            <delta_ts>2011-03-16 16:38:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56156-20110316143807.patch</filename>
            <type>text/plain</type>
            <size>14044</size>
            <attacher name="Daniel Sievers">sievers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEyMDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZWI5YjRkYTUyYjdjYzI0
MzZkMTVkODkxMDZmYTMyYjk4N2ZkYzU0Li40M2FiOTdmMjc0YTEzN2E1MjAzMDZhZTRmMWRlMDVh
ZGU5NjgzMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTUgIERhbmll
bCBTaWV2ZXJzICA8c2lldmVyc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IEph
bWVzIFJvYmluc29uLgorCisgICAgICAgIEFkZCBzZXR0aW5nIHRvIGFsd2F5cyBmb3JjZSBjb21w
b3NpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NjE1NgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQgYXMgdGhpcyBkZWZhdWx0
cyB0byBkaXNhYmxlZCAoYW5kIGlzIHVuZmVhc2libGUKKyAgICAgICAgdG8gYmUgdGVzdGVkIHRo
cm91Z2ggcHJvcGVydHkgb3ZlcnJpZGluZyBhdCBydW50aW1lKS4KKworICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRGb3JjZUNvbXBvc2l0
aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6Zm9yY2VDb21wb3NpdGluZ01v
ZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpSZW5kZXJMYXllckNvbXBvc2l0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29t
cG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuaDoKKwogMjAxMS0wMy0xNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaAppbmRleCBhYWI5MzZmOTgwYTIyNGMxYWQ4MWMwNjQwYTRmMmQwYzBlOThjMWMyLi4xOWFk
Y2NjZDUwMzZmOWYxZGFjZTYzMGQyNDQ2ZmI0ODJhOTJkODJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oCkBAIC0zNzIsNiArMzcyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lk
IHNldENyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkKGJvb2wgZmxh
ZykgeyBtX2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkID0gZmxh
ZzsgfQogICAgICAgICBib29sIGNyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rp
c2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NT
UnVsZXNEaXNhYmxlZDsgfQogCisgICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
Ym9vbCBmbGFnKSB7IG1fZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmbGFnOyB9CisgICAgICAgIGJv
b2wgZm9yY2VDb21wb3NpdGluZ01vZGUoKSB7IHJldHVybiBtX2ZvcmNlQ29tcG9zaXRpbmdNb2Rl
OyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAKQEAgLTQ3MCw2ICs0
NzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV91c2VQcmVIVE1MNVBh
cnNlclF1aXJrczogMTsKICAgICAgICAgYm9vbCBtX2h5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCA6
IDE7CiAgICAgICAgIGJvb2wgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNE
aXNhYmxlZCA6IDE7CisgICAgICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA6IDE7CiAK
ICNpZiBVU0UoU0FGQVJJX1RIRU1FKQogICAgICAgICBzdGF0aWMgYm9vbCBnU2hvdWxkUGFpbnRO
YXRpdmVDb250cm9sczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMzdmMWI5ZTU4MGU5NWE4MTUyMjk3YzIwNjgxOWE3ODJi
M2E5ODhlYS4uYzAzNjc1NTIwMjUzYTg2NDgyMjY4NzIwZWZiOTc1NjNkZGZmMjk4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAK
QEAgLTEwMywxMSArMTAzLDIyIEBAIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yKFJlbmRlclZpZXcqIHJlbmRlclZpZXcpCiAgICAgLCBtX2NvbXBvc2l0aW5nKGZh
bHNlKQogICAgICwgbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKGZhbHNlKQogICAgICwg
bV9mbHVzaGluZ0xheWVycyhmYWxzZSkKKyAgICAsIG1fZm9yY2VDb21wb3NpdGluZ01vZGUoZmFs
c2UpCiAgICAgLCBtX3Jvb3RMYXllckF0dGFjaG1lbnQoUm9vdExheWVyVW5hdHRhY2hlZCkKICNp
ZiBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKICAgICAsIG1fcm9vdExheWVyVXBkYXRlQ291bnQoMCkK
ICNlbmRpZiAvLyBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKIHsKKyAgICBTZXR0aW5ncyogc2V0dGlu
Z3MgPSBtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPnNldHRpbmdzKCk7CisKKyAgICAvLyBFdmVu
IHdoZW4gZm9yY2luZyBjb21wb3NpdGluZyBtb2RlLCBpZ25vcmUgY2hpbGQgZnJhbWVzLCBvciB0
aGlzIHdpbGwgdHJpZ2dlcgorICAgIC8vIGxheWVyIGNyZWF0aW9uIGZyb20gdGhlIGVuY2xvc2lu
ZyBSZW5kZXJJRnJhbWUuCisgICAgQVNTRVJUKG1fcmVuZGVyVmlldy0+ZG9jdW1lbnQoKS0+ZnJh
bWUoKSk7CisgICAgaWYgKHNldHRpbmdzICYmIHNldHRpbmdzLT5mb3JjZUNvbXBvc2l0aW5nTW9k
ZSgpICYmIHNldHRpbmdzLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCisgICAgICAg
ICYmICFtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPmZyYW1lKCktPnRyZWUoKS0+cGFyZW50KCkp
IHsKKyAgICAgICAgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA9IHRydWU7CisgICAgICAgIGVuYWJs
ZUNvbXBvc2l0aW5nTW9kZSgpOworICAgIH0KIH0KIAogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp+
UmVuZGVyTGF5ZXJDb21wb3NpdG9yKCkKQEAgLTcxMSw3ICs3MjIsNyBAQCB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVy
KiBsYXllciwgTwogCiAgICAgLy8gSWYgd2UncmUgYmFjayBhdCB0aGUgcm9vdCwgYW5kIG5vIG90
aGVyIGxheWVycyBuZWVkIHRvIGJlIGNvbXBvc2l0ZWQsIGFuZCB0aGUgcm9vdCBsYXllciBpdHNl
bGYgZG9lc24ndCBuZWVkCiAgICAgLy8gdG8gYmUgY29tcG9zaXRlZCwgdGhlbiB3ZSBjYW4gZHJv
cCBvdXQgb2YgY29tcG9zaXRpbmcgbW9kZSBhbHRvZ2V0aGVyLgotICAgIGlmIChsYXllci0+aXNS
b290TGF5ZXIoKSAmJiAhY2hpbGRTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nICYmICFyZXF1
aXJlc0NvbXBvc2l0aW5nTGF5ZXIobGF5ZXIpKSB7CisgICAgaWYgKGxheWVyLT5pc1Jvb3RMYXll
cigpICYmICFjaGlsZFN0YXRlLm1fc3VidHJlZUlzQ29tcG9zaXRpbmcgJiYgIXJlcXVpcmVzQ29t
cG9zaXRpbmdMYXllcihsYXllcikgJiYgIW1fZm9yY2VDb21wb3NpdGluZ01vZGUpIHsKICAgICAg
ICAgZW5hYmxlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKTsKICAgICAgICAgd2lsbEJlQ29tcG9zaXRl
ZCA9IGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaAppbmRleCAzMmQ2NGQzMzk2NjlhNTFiZWYyYTFlNWRhMTk2Mzg1Y2Vj
MGQ1MGRmLi43MzgzODkxMDEyYjM5M2MyMjg2ZmVlYTYyNTczNzYyNDY5YTg5NjJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0y
NzIsNiArMjcyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29tcG9zaXRpbmc7CiAgICAgYm9v
bCBtX2NvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQ7CiAgICAgYm9vbCBtX2ZsdXNoaW5nTGF5
ZXJzOworICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsKIAogICAgIFJvb3RMYXllckF0
dGFjaG1lbnQgbV9yb290TGF5ZXJBdHRhY2htZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IGRmMmZhNmZlNjM4MGQ4NDEzZWVlYmM0MjQzNTFiYjEyODVjMzBjNWQuLjI5YzM3Njcw
YTFmZGNjMjc4M2EyNGEzYjk3NDdkZTUxYjkzY2MxNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDMtMTUgIERhbmllbCBTaWV2ZXJzICA8c2lldmVy
c0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisg
ICAgICAgIEFkZCBzZXR0aW5nIHRvIGFsd2F5cyBmb3JjZSBjb21wb3NpdGluZyBtb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjE1NgorCisgICAg
ICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0Rm9yY2VDb21wb3Np
dGluZ01vZGUpOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKKwogMjAxMS0wMy0x
NSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3Mu
aAppbmRleCAxMWVkNDlkODZlZDQwYWMyNjBmNjQzY2FlOGY5NmVmNTliZTMwZmQ5Li4xMTNkZTUy
YTdlNDE1ZmVhNWQzMzdhYzFkZjVhNWNlZjQ0MzMwNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNob3dQbGF0Zm9ybUxheWVyVHJlZSgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29sKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZChib29sKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGNvbXBvc2l0ZVRvVGV4dHVyZUVuYWJsZWQoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNF
bmFibGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwCmluZGV4IGU1ZDE3MmUzNjBlMzE5MmZhYmM5YWUxY2RjOWRlNjI1NWFhYTZj
NTcuLjEwODlhZjk5ODQxMDI4ZTE3NTYxN2VmNWVhZDQ2ZGFkYzk1MjNiYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtMzA4LDYgKzMw
OCwxMSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0Rm9y
Y2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkKQoreworICAgIG1fc2V0dGluZ3MtPnNldEZv
cmNlQ29tcG9zaXRpbmdNb2RlKGVuYWJsZWQpOworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6
c2V0Q29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9jb21w
b3NpdGVUb1RleHR1cmVFbmFibGVkID0gZW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggMzIzYTViMzExYTUyZTA4N2E0YzdkZGU0YzQx
ZGIyNjJiZjFkMzhlYi4uZDAzMTlmOGVkZTQyZWM0MzllMmQ0Y2NkYmFjNjZkNjZlZmVjNDBjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTk0
LDYgKzk0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG93UGxhdGZvcm1MYXllclRy
ZWUoKSBjb25zdCB7IHJldHVybiBtX3Nob3dQbGF0Zm9ybUxheWVyVHJlZTsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCk7CisgICAgdmlydHVh
bCB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb21wb3NpdGVUb1RleHR1cmVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBjb21w
b3NpdGVUb1RleHR1cmVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGVUb1RleHR1
cmVFbmFibGVkOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3IzRFRyYW5zZm9ybXNFbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUzMzIyNDIwYjgxOWJkODk4OWM0YTAwNDk3ZTE3YzEz
NGRmZWFmMjIuLjkwZjI2ODhhZjZjOTViOWQxOTRmNzJlNzJjNjcxOTgxZTJiZmJjMjcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAxMS0wMy0xNSAgRGFuaWVsIFNpZXZlcnMgIDxzaWV2ZXJzQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgQWRkIHNldHRp
bmcgdG8gYWx3YXlzIGZvcmNlIGNvbXBvc2l0aW5nIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MTU2CisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChtYWluKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVz
dFNoZWxsOjpUZXN0U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdz
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAg
ICAgKFRlc3RTaGVsbDo6c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZl
cmVuY2VzOjpyZXNldCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoKKwogMjAxMS0w
My0xNSAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UnViYmVyLXN0YW1wZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBlMDA4NDMyMzNiNTYzYjAzYTFmNGVm
ZDYxMWZkMTg1NTAxNzM2ZGY3Li5mYTdlOTFkMDI1MDBmMjlkZjQ4NzZkYmFlOTk0MDc2ZjQwZmEx
ZWE2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVy
VHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRy
ZWUuY3BwCkBAIC01Myw2ICs1Myw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkNoZWNrTGF5
b3V0VGVzdFN5c3RlbURlcHNbXSA9ICItLWNoZWNrLWxheW91dC10ZXN0LXN5cy1kCiAKIHN0YXRp
YyBjb25zdCBjaGFyIG9wdGlvbkhhcmR3YXJlQWNjZWxlcmF0ZWRHTFtdID0gIi0tZW5hYmxlLWhh
cmR3YXJlLWdwdSI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZENv
bXBvc2l0aW5nW10gPSAiLS1lbmFibGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmciOworc3RhdGlj
IGNvbnN0IGNoYXIgb3B0aW9uRm9yY2VDb21wb3NpdGluZ01vZGVbXSA9ICItLWZvcmNlLWNvbXBv
c2l0aW5nLW1vZGUiOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQy
RENhbnZhc1tdID0gIi0tZW5hYmxlLWFjY2VsZXJhdGVkLTJkLWNhbnZhcyI7CiAKIHN0YXRpYyBj
b25zdCBjaGFyIG9wdGlvblN0cmVzc09wdFtdID0gIi0tc3RyZXNzLW9wdCI7CkBAIC0xMzEsNiAr
MTMyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBib29sIGFsbG93
RXh0ZXJuYWxQYWdlcyA9IGZhbHNlOwogICAgIGJvb2wgc3RhcnR1cERpYWxvZyA9IGZhbHNlOwog
ICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBmYWxzZTsKKyAgICBib29s
IGZvcmNlQ29tcG9zaXRpbmdNb2RlID0gZmFsc2U7CiAgICAgYm9vbCBhY2NlbGVyYXRlZDJEQ2Fu
dmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGJvb2wgc3RyZXNzT3B0ID0gZmFsc2U7CiAgICAgYm9v
bCBzdHJlc3NEZW9wdCA9IGZhbHNlOwpAQCAtMTYxLDYgKzE2Myw4IEBAIGludCBtYWluKGludCBh
cmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAgICBoYXJkd2FyZUFjY2VsZXJhdGVkR0wgPSB0
cnVlOwogICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25FbmFibGVBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nKQogICAgICAgICAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQg
PSB0cnVlOworICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25Gb3JjZUNvbXBvc2l0
aW5nTW9kZSkKKyAgICAgICAgICAgIGZvcmNlQ29tcG9zaXRpbmdNb2RlID0gdHJ1ZTsKICAgICAg
ICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZhcykK
ICAgICAgICAgICAgIGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAg
ZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uU3RyZXNzT3B0KQpAQCAtMTk0LDYgKzE5OCw3IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgIFRlc3RTaGVsbCBzaGVs
bCh0ZXN0U2hlbGxNb2RlKTsKICAgICAgICAgc2hlbGwuc2V0QWxsb3dFeHRlcm5hbFBhZ2VzKGFs
bG93RXh0ZXJuYWxQYWdlcyk7CiAgICAgICAgIHNoZWxsLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdFbmFibGVkKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKKyAgICAgICAgc2hlbGwu
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZm9yY2VDb21wb3NpdGluZ01vZGUpOwogICAgICAgICBz
aGVsbC5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJEQ2FudmFzRW5h
YmxlZCk7CiAgICAgICAgIHNoZWxsLnNldEphdmFTY3JpcHRGbGFncyhqYXZhU2NyaXB0RmxhZ3Mp
OwogICAgICAgICBzaGVsbC5zZXRTdHJlc3NPcHQoc3RyZXNzT3B0KTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IGUxYTg2ZWZkYWI2NGI3MmY4NmIx
NjhkZDVmMGY0OGFlNWI2MDAwNWEuLjFhNGViMzkxMjc3MmRjMmM1MTZlMWIwYjVlMTMzMGUyMTc2
ZjAzMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVs
bC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcApA
QCAtODUsNiArODUsNyBAQCBUZXN0U2hlbGw6OlRlc3RTaGVsbChib29sIHRlc3RTaGVsbE1vZGUp
CiAgICAgLCBtX2RldlRvb2xzKDApCiAgICAgLCBtX2FsbG93RXh0ZXJuYWxQYWdlcyhmYWxzZSkK
ICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoZmFsc2UpCisgICAgLCBtX2Zv
cmNlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5h
YmxlZChmYWxzZSkKICAgICAsIG1fc3RyZXNzT3B0KGZhbHNlKQogICAgICwgbV9zdHJlc3NEZW9w
dChmYWxzZSkKQEAgLTE2Myw2ICsxNjQsNyBAQCB2b2lkIFRlc3RTaGVsbDo6cmVzZXRXZWJTZXR0
aW5ncyhXZWJWaWV3JiB3ZWJWaWV3KQogewogICAgIG1fcHJlZnMucmVzZXQoKTsKICAgICBtX3By
ZWZzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gbV9hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZDsKKyAgICBtX3ByZWZzLmZvcmNlQ29tcG9zaXRpbmdNb2RlID0gbV9mb3JjZUNv
bXBvc2l0aW5nTW9kZTsKICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkID0g
bV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKICAgICBtX3ByZWZzLmFwcGx5VG8oJndlYlZp
ZXcpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAppbmRleCBl
ZjliZTdmYzQyZTVjNDZjYjlmMzc5MTczYjBhODVhNDgyZTllNTZjLi5lY2YxOWU1OTVlMDBmNjVk
MjI4M2ZjMGVhNjYxYzhhMTUzMmUzNDk5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0U2hlbGwuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFs
bG93RXh0ZXJuYWxQYWdlcyhib29sIGFsbG93RXh0ZXJuYWxQYWdlcykgeyBtX2FsbG93RXh0ZXJu
YWxQYWdlcyA9IGFsbG93RXh0ZXJuYWxQYWdlczsgfQogCiAgICAgdm9pZCBzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KKyAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2Rl
KGJvb2wgZW5hYmxlZCkgeyBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlID0gZW5hYmxlZDsgfQogICAg
IHZvaWQgc2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNj
ZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBlbmFibGVkOyB9CiAKICNpZiBkZWZpbmVkKE9TX1dJ
TikKQEAgLTIwMCw2ICsyMDEsNyBAQCBwcml2YXRlOgogICAgIGludCBtX3RpbWVvdXQ7IC8vIHRp
bWVvdXQgdmFsdWUgaW4gbWlsbGlzZWNvbmQKICAgICBib29sIG1fYWxsb3dFeHRlcm5hbFBhZ2Vz
OwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsKKyAgICBib29sIG1f
Zm9yY2VDb21wb3NpdGluZ01vZGU7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVkMmRDYW52YXNFbmFi
bGVkOwogICAgIFdlYlByZWZlcmVuY2VzIG1fcHJlZnM7CiAgICAgYm9vbCBtX3N0cmVzc09wdDsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2Vz
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcApp
bmRleCA3MWY1ZWM3OTlmYzc5YzFlMzZiNDFkYTE4ZjVmZTBkZWIwNThhM2RkLi44NGY4NGI2Yjk4
NzhmZmZlZDJlNGQ3MWY3ZDFhMThhNDEzYzQ4YWMzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0xMDQsNiArMTA0LDcgQEAgdm9p
ZCBXZWJQcmVmZXJlbmNlczo6cmVzZXQoKQogICAgIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCA9
IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gZmFsc2U7CiAgICAg
YWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKKyAgICBmb3JjZUNvbXBvc2l0aW5n
TW9kZSA9IGZhbHNlOwogfQogCiB2b2lkIFdlYlByZWZlcmVuY2VzOjphcHBseVRvKFdlYlZpZXcq
IHdlYlZpZXcpCkBAIC0xNDksNiArMTUwLDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6YXBwbHlU
byhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHdlYlZpZXctPnNldFRhYnNUb0xpbmtzKHRhYnNUb0xp
bmtzKTsKICAgICBzZXR0aW5ncy0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoY2FyZXRCcm93c2lu
Z0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCk7CisgICAgc2V0dGluZ3MtPnNldEZvcmNl
Q29tcG9zaXRpbmdNb2RlKGZvcmNlQ29tcG9zaXRpbmdNb2RlKTsKICAgICBzZXR0aW5ncy0+c2V0
QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQpOwog
CiAgICAgLy8gRml4ZWQgdmFsdWVzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlByZWZlcmVuY2VzLmgKaW5kZXggNTBiYjhjY2U5NjdhNGZmOWM4NTEwMTQ2YWZlYWNlMDBk
NjFkNTI0Zi4uYWQyN2ZiODRjYTQxNmRhMGRmZjQ1NjNkZGFlYmY2MzhhOGY4ZTMzMyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oCkBAIC03OCw2
ICs3OCw3IEBAIHN0cnVjdCBXZWJQcmVmZXJlbmNlcyB7CiAgICAgYm9vbCBoeXBlcmxpbmtBdWRp
dGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxlZDsKICAgICBib29sIGFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOworICAgIGJvb2wgZm9yY2VDb21wb3NpdGluZ01v
ZGU7CiAgICAgYm9vbCBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKIAogICAgIFdlYlByZWZl
cmVuY2VzKCkgeyByZXNldCgpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>