<?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>83316</bug_id>
          
          <creation_ts>2012-04-05 14:50:15 -0700</creation_ts>
          <short_desc>[chromium] Remove viewport memory restrictions</short_desc>
          <delta_ts>2012-04-13 17:42:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>83899</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>epenner</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>piman</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>596927</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-05 14:50:15 -0700</bug_when>
    <thetext>[chromium] Remove viewport memory restrictions and remove duplicate memory limit reductions on setVisible(false)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596928</commentid>
    <comment_count>1</comment_count>
      <attachid>135909</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-05 14:50:50 -0700</bug_when>
    <thetext>Created attachment 135909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596931</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-05 14:57:40 -0700</bug_when>
    <thetext>Attachment 135909 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597091</commentid>
    <comment_count>3</comment_count>
      <attachid>135955</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-05 18:12:44 -0700</bug_when>
    <thetext>Created attachment 135955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597093</commentid>
    <comment_count>4</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-05 18:13:42 -0700</bug_when>
    <thetext>Proper changelog with explanation :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597222</commentid>
    <comment_count>5</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-05 23:27:43 -0700</bug_when>
    <thetext>Can you explain the rationale on some of this? I&apos;ve gotten a little stale on this material lately...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597223</commentid>
    <comment_count>6</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-05 23:28:26 -0700</bug_when>
    <thetext>Oh look. Nice long changelog on the second patch. Whommmp!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597224</commentid>
    <comment_count>7</comment_count>
      <attachid>135955</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-05 23:33:19 -0700</bug_when>
    <thetext>Comment on attachment 135955
Patch

So two questions:
1) does this regress android in any way? Ping epenner to see if the loss of a viewport multiplier makes sense to him
2) should we be mucking around with this code at all? In particular, I&apos;m wondering if we should focus on adding memory request APIs to the GpuMemoryManager and then having those limits drive the texture manager limits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597363</commentid>
    <comment_count>8</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-06 08:08:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 135955 [details])
&gt; So two questions:
&gt; 1) does this regress android in any way? Ping epenner to see if the loss of a viewport multiplier makes sense to him

Will discuss.

&gt; 2) should we be mucking around with this code at all? In particular, I&apos;m wondering if we should focus on adding memory request APIs to the GpuMemoryManager and then having those limits drive the texture manager limits.

I think this is potentially backportable to M19, where we are seeing problems already, especially since Accelerated Canvas is turning on the compositor more often. I agree GpuMemoryManager is the way to go to make this better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597450</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Penner">epenner</who>
    <bug_when>2012-04-06 10:22:16 -0700</bug_when>
    <thetext>Yeah we need the viewport multiplier to keep the limit lower on low resolution devices. The original patch had logic to prevent the some of the problems described (issues with small viewports), but it was removed before landing.

If a short term fix is needed why not just increase the viewport size or multiplier?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597475</commentid>
    <comment_count>10</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-04-06 10:50:00 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Yeah we need the viewport multiplier to keep the limit lower on low resolution devices. The original patch had logic to prevent the some of the problems described (issues with small viewports), but it was removed before landing.
&gt; 
&gt; If a short term fix is needed why not just increase the viewport size or multiplier?

The problem is that the viewport size isn&apos;t necessarily a good indicator of how much vram is available, at least not for desktop platforms. Maybe a more flexible solution would be to set the min and max values once, at TextureManager creation time and let each platform decide what it wants to set them to.  For example on Android we can use the viewport size (which will most likely be constant) and on the desktop use some other reasonable fixed value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597488</commentid>
    <comment_count>11</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-06 11:03:34 -0700</bug_when>
    <thetext>Is there a crbug that justifies M19-related flailing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597492</commentid>
    <comment_count>12</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-06 11:07:52 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Is there a crbug that justifies M19-related flailing?

http://code.google.com/p/chromium/issues/detail?id=121605 : There&apos;re are a few problems caused there due to OOM. But no OOM would avoid them. 

http://code.google.com/p/chromium/issues/detail?id=121557 : Also causes OOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597497</commentid>
    <comment_count>13</comment_count>
      <attachid>136044</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-06 11:15:16 -0700</bug_when>
    <thetext>Created attachment 136044
Patch

This keeps the multipliers for android as requested by Eric. I updated the android multipliers/values to what they are actually using downstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597522</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Penner">epenner</who>
    <bug_when>2012-04-06 11:37:30 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Yeah we need the viewport multiplier to keep the limit lower on low resolution devices. The original patch had logic to prevent the some of the problems described (issues with small viewports), but it was removed before landing.
&gt; &gt; 
&gt; &gt; If a short term fix is needed why not just increase the viewport size or multiplier?
&gt; 
&gt; The problem is that the viewport size isn&apos;t necessarily a good indicator of how much vram is available, at least not for desktop platforms. Maybe a more flexible solution would be to set the min and max values once, at TextureManager creation time and let each platform decide what it wants to set them to.  For example on Android we can use the viewport size (which will most likely be constant) and on the desktop use some other reasonable fixed value.

Yeah makes sense. The point is to prevent hitting a real OOM (vram limit). We do set the max limit at one other place (to prevent pre-painting from consuming the entire max limit), so I like Dana&apos;s new patch which just ignores the viewport on Desktop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599555</commentid>
    <comment_count>15</comment_count>
      <attachid>136044</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-10 13:03:58 -0700</bug_when>
    <thetext>Comment on attachment 136044
Patch

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

I would prefer if the refactoring &quot;foremost, make no change&quot; was separate from behavior changing.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp:176
&gt; +    if (m_contentsTextureManager &amp;&amp; m_layerRendererInitialized)

why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599998</commentid>
    <comment_count>16</comment_count>
      <attachid>136044</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-10 20:52:38 -0700</bug_when>
    <thetext>Comment on attachment 136044
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [chromium] Remove viewport memory restrictions and remove duplicate memory limit reductions on setVisible(false)

I think you should separate these two changes, especially if you want to merge one of them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601711</commentid>
    <comment_count>17</comment_count>
      <attachid>137014</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-12 18:22:41 -0700</bug_when>
    <thetext>Created attachment 137014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601804</commentid>
    <comment_count>18</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-12 21:08:46 -0700</bug_when>
    <thetext>I&apos;ve split this patch up. This CL removes the viewport restriction on the preferred/max memory limits. And removes the min memory limit entirely.

This means instead of possibly preserving some number of prepainted tiles, we evict all non-visible tiles when we background a tab (if we aren&apos;t deleting all textures anyways).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602141</commentid>
    <comment_count>19</comment_count>
      <attachid>137014</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-04-13 09:31:25 -0700</bug_when>
    <thetext>Comment on attachment 137014
Patch

Why not set these limits via API calls to the TextureManager rather than baking them into the class? We&apos;ll need that functionality soon anyway, when gpu memory manager starts telling the renderers how much memory they can use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602155</commentid>
    <comment_count>20</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-13 09:45:23 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 137014 [details])
&gt; Why not set these limits via API calls to the TextureManager rather than baking them into the class? We&apos;ll need that functionality soon anyway, when gpu memory manager starts telling the renderers how much memory they can use.

I am not sure I get what you mean. What sort of API calls are you thinking? They are currently baked into the TextureManager, but we&apos;d like to get them from GpuMemManager. I think we&apos;ll likely deal with the GpuMemManager in a separate PriorityTextureManager implementation, and we can probably just leave this one as fixed values anyhow as it&apos;ll be replaced by the new one.

For this patch, though, I&apos;m approaching it as a minimal thing to make us not use the viewport, so that we can easily merge it back to M19.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602182</commentid>
    <comment_count>21</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-04-13 10:34:54 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; (From update of attachment 137014 [details] [details])
&gt; &gt; Why not set these limits via API calls to the TextureManager rather than baking them into the class? We&apos;ll need that functionality soon anyway, when gpu memory manager starts telling the renderers how much memory they can use.
&gt; 
&gt; I am not sure I get what you mean. What sort of API calls are you thinking? They are currently baked into the TextureManager, but we&apos;d like to get them from GpuMemManager. I think we&apos;ll likely deal with the GpuMemManager in a separate PriorityTextureManager implementation, and we can probably just leave this one as fixed values anyhow as it&apos;ll be replaced by the new one.
&gt; 
&gt; For this patch, though, I&apos;m approaching it as a minimal thing to make us not use the viewport, so that we can easily merge it back to M19.

What I had in mind was defining a method like:

TextureManager::SetLimits(min, max, viewportMultiplier)

so that we can set different limits depending on what the TextureManager is used for (e.g. is this the layer or the rendersurface TM) and we can also reset them as needed.

However, if we are going to throw away the TM class once we implement the GpuMemManager then maybe it&apos;s not worth it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602192</commentid>
    <comment_count>22</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-13 10:45:54 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; What I had in mind was defining a method like:
&gt; 
&gt; TextureManager::SetLimits(min, max, viewportMultiplier)
&gt; 
&gt; so that we can set different limits depending on what the TextureManager is used for (e.g. is this the layer or the rendersurface TM) and we can also reset them as needed.

Oh ok. So basically dropping the static methods and setMax/setPreferred from the class and just calling the setLimits() instead.

&gt; However, if we are going to throw away the TM class once we implement the GpuMemManager then maybe it&apos;s not worth it.

I think it&apos;s something we could do separately from this CL either way. I think that would be a nicer API for the current TM as well to even just say setLimits(viewportSize), but maybe not worth it as you say.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602332</commentid>
    <comment_count>23</comment_count>
      <attachid>137014</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-13 12:49:11 -0700</bug_when>
    <thetext>Comment on attachment 137014
Patch

R=me.  Thanks for chopping this up somewhat.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602557</commentid>
    <comment_count>24</comment_count>
      <attachid>137014</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-13 17:42:16 -0700</bug_when>
    <thetext>Comment on attachment 137014
Patch

Clearing flags on attachment: 137014

Committed r114191: &lt;http://trac.webkit.org/changeset/114191&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602558</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-13 17:42:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135909</attachid>
            <date>2012-04-05 14:50:50 -0700</date>
            <delta_ts>2012-04-05 18:12:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83316-20120405175049.patch</filename>
            <type>text/plain</type>
            <size>7412</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUzOGY5OTY0YzYyNDU1
NmNjZjIxYzFlYzllN2NiY2JhZjlhYzE2Ni4uZDUwOTZmMDNlYjM1YTExNWIwOTZkMTVlMTI0MDk4
MjVkNTc1MWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA0LTA1ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVt
b3ZlIHZpZXdwb3J0IG1lbW9yeSByZXN0cmljdGlvbnMgYW5kIHJlbW92ZSBkdXBsaWNhdGUgbWVt
b3J5IGxpbWl0IHJlZHVjdGlvbnMgb24gc2V0VmlzaWJsZShmYWxzZSkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMzE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFuYWdlcjo6aGlnaExpbWl0Qnl0ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hbmFnZXI6OnJlY2xhaW1MaW1pdEJ5dGVzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5oOgorICAgICAg
ICAoVGV4dHVyZU1hbmFnZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhv
c3Q6OmRlbGV0ZUNvbnRlbnRzVGV4dHVyZXNPbkltcGxUaHJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NMYXllclRyZWVIb3N0OjpzZXRWaXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5
ZXJUcmVlSG9zdDo6ZGlkQmVjb21lSW52aXNpYmxlT25JbXBsVGhyZWFkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJzKToKKwogMjAxMi0wNC0wNSAgU2hh
d24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1d
IE5lZWQgdG8gY2xpcCB0byBob21vZ2VuZW91cyB3PTAgcGxhbmUgd2hlbiBhcHBseWluZyB0cmFu
c2Zvcm1zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVGV4dHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuY3BwCmluZGV4IDBjNmZlMTRmOWFkNjVmYzAyZjJk
NWU0OWVmNTI1NDUzMjQyZmE2ZmIuLmM4NjdkY2EyMDlmYzkyMDQwMmI1ZTQzNWVkNGU2ZTc2YTRk
ZDk5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RleHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5jcHAKQEAgLTM3LDE4ICszNywxNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIAogbmFtZXNwYWNlIHsKLXNpemVfdCBtZW1vcnlMaW1pdEJ5dGVz
KHNpemVfdCB2aWV3cG9ydE11bHRpcGxpZXIsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwg
c2l6ZV90IG1pbk1lZ2FieXRlcywgc2l6ZV90IG1heE1lZ2FieXRlcykKK3NpemVfdCBtZW1vcnlM
aW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgc2l6ZV90IG1pbk1lZ2FieXRl
cywgc2l6ZV90IG1heE1lZ2FieXRlcykKIHsKICAgICBpZiAodmlld3BvcnRTaXplLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIG1pbk1lZ2FieXRlcyAqIDEwMjQgKiAxMDI0OwotICAgIHJldHVy
biBtYXgobWluTWVnYWJ5dGVzICogMTAyNCAqIDEwMjQsIG1pbihtYXhNZWdhYnl0ZXMgKiAxMDI0
ICogMTAyNCwgdmlld3BvcnRNdWx0aXBsaWVyICogVGV4dHVyZU1hbmFnZXI6Om1lbW9yeVVzZUJ5
dGVzKHZpZXdwb3J0U2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKSk7CisgICAgcmV0dXJu
IG1heE1lZ2FieXRlcyAqIDEwMjQgKiAxMDI0OwogfQogfQogCiBzaXplX3QgVGV4dHVyZU1hbmFn
ZXI6OmhpZ2hMaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKIHsKLSAgICBz
aXplX3Qgdmlld3BvcnRNdWx0aXBsaWVyLCBtaW5NZWdhYnl0ZXMsIG1heE1lZ2FieXRlczsKLSAg
ICB2aWV3cG9ydE11bHRpcGxpZXIgPSAxMjsKKyAgICBzaXplX3QgbWluTWVnYWJ5dGVzLCBtYXhN
ZWdhYnl0ZXM7CiAjaWYgT1MoQU5EUk9JRCkKICAgICBtaW5NZWdhYnl0ZXMgPSAyNDsKICAgICBt
YXhNZWdhYnl0ZXMgPSA0MDsKQEAgLTU2LDEzICs1NSwxMiBAQCBzaXplX3QgVGV4dHVyZU1hbmFn
ZXI6OmhpZ2hMaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKICAgICBtaW5N
ZWdhYnl0ZXMgPSA2NDsKICAgICBtYXhNZWdhYnl0ZXMgPSAxMjg7CiAjZW5kaWYKLSAgICByZXR1
cm4gbWVtb3J5TGltaXRCeXRlcyh2aWV3cG9ydE11bHRpcGxpZXIsIHZpZXdwb3J0U2l6ZSwgbWlu
TWVnYWJ5dGVzLCBtYXhNZWdhYnl0ZXMpOworICAgIHJldHVybiBtZW1vcnlMaW1pdEJ5dGVzKHZp
ZXdwb3J0U2l6ZSwgbWluTWVnYWJ5dGVzLCBtYXhNZWdhYnl0ZXMpOwogfQogCiBzaXplX3QgVGV4
dHVyZU1hbmFnZXI6OnJlY2xhaW1MaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6
ZSkKIHsKLSAgICBzaXplX3Qgdmlld3BvcnRNdWx0aXBsaWVyLCBtaW5NZWdhYnl0ZXMsIG1heE1l
Z2FieXRlczsKLSAgICB2aWV3cG9ydE11bHRpcGxpZXIgPSA2OworICAgIHNpemVfdCBtaW5NZWdh
Ynl0ZXMsIG1heE1lZ2FieXRlczsKICNpZiBPUyhBTkRST0lEKQogICAgIG1pbk1lZ2FieXRlcyA9
IDk7CiAgICAgbWF4TWVnYWJ5dGVzID0gMzI7CkBAIC03MCwxNiArNjgsNyBAQCBzaXplX3QgVGV4
dHVyZU1hbmFnZXI6OnJlY2xhaW1MaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6
ZSkKICAgICBtaW5NZWdhYnl0ZXMgPSAzMjsKICAgICBtYXhNZWdhYnl0ZXMgPSA2NDsKICNlbmRp
ZgotICAgIHJldHVybiBtZW1vcnlMaW1pdEJ5dGVzKHZpZXdwb3J0TXVsdGlwbGllciwgdmlld3Bv
cnRTaXplLCBtaW5NZWdhYnl0ZXMsIG1heE1lZ2FieXRlcyk7Ci19Ci0KLXNpemVfdCBUZXh0dXJl
TWFuYWdlcjo6bG93TGltaXRCeXRlcyhjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUpCi17Ci0g
ICAgc2l6ZV90IHZpZXdwb3J0TXVsdGlwbGllciwgbWluTWVnYWJ5dGVzLCBtYXhNZWdhYnl0ZXM7
Ci0gICAgdmlld3BvcnRNdWx0aXBsaWVyID0gMTsKLSAgICBtaW5NZWdhYnl0ZXMgPSAyOwotICAg
IG1heE1lZ2FieXRlcyA9IDM7Ci0gICAgcmV0dXJuIG1lbW9yeUxpbWl0Qnl0ZXModmlld3BvcnRN
dWx0aXBsaWVyLCB2aWV3cG9ydFNpemUsIG1pbk1lZ2FieXRlcywgbWF4TWVnYWJ5dGVzKTsKKyAg
ICByZXR1cm4gbWVtb3J5TGltaXRCeXRlcyh2aWV3cG9ydFNpemUsIG1pbk1lZ2FieXRlcywgbWF4
TWVnYWJ5dGVzKTsKIH0KIAogc2l6ZV90IFRleHR1cmVNYW5hZ2VyOjptZW1vcnlVc2VCeXRlcyhj
b25zdCBJbnRTaXplJiBzaXplLCBHQzNEZW51bSB0ZXh0dXJlRm9ybWF0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5h
Z2VyLmgKaW5kZXggZTRkNmQzOGI4Y2I5OGY1Yjc0NGFlYWI5MmUyZGIxYTBmZTZkYWZhYi4uNzBk
MDg2MWM1Nzg2ZmJlYzAyNWI0Yzk2YzkxYmU4YmRkZmQ1OGRjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdl
ci5oCkBAIC02Miw4ICs2Miw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgc2l6ZV90IGhpZ2hMaW1p
dEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSk7CiAgICAgLy8gUHJlZmVycmVkIHRl
eHR1cmUgc2l6ZSBsaW1pdCBnaXZlbiB0aGUgdmlld3BvcnQgc2l6ZS4KICAgICBzdGF0aWMgc2l6
ZV90IHJlY2xhaW1MaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSk7Ci0gICAg
Ly8gVGhlIG1heGltdW0gdGV4dHVyZSBtZW1vcnkgdXNhZ2Ugd2hlbiBhc2tlZCB0byByZWxlYXNl
IHRleHR1cmVzLgotICAgIHN0YXRpYyBzaXplX3QgbG93TGltaXRCeXRlcyhjb25zdCBJbnRTaXpl
JiB2aWV3cG9ydCk7CiAKICAgICBzdGF0aWMgc2l6ZV90IG1lbW9yeVVzZUJ5dGVzKGNvbnN0IElu
dFNpemUmLCBHQzNEZW51bSBmb3JtYXQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNw
cAppbmRleCBkM2ZjOTcwYmQzNjczZDcxYzgyMGJhMzM4YTZiZDA2ZDQ2MjM1NmVlLi5mMmUzZmQ0
MWZiYWNkYTQ1YjhlOWZiMTA1ZDU5ZjZiZWVlZWI2MmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5jcHAKQEAgLTE3Myw3ICsxNzMsNyBAQCBDQ0xheWVyVHJlZUhvc3Q6OlJlY3JlYXRl
UmVzdWx0IENDTGF5ZXJUcmVlSG9zdDo6cmVjcmVhdGVDb250ZXh0KCkKIHZvaWQgQ0NMYXllclRy
ZWVIb3N0OjpkZWxldGVDb250ZW50c1RleHR1cmVzT25JbXBsVGhyZWFkKFRleHR1cmVBbGxvY2F0
b3IqIGFsbG9jYXRvcikKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwot
ICAgIGlmIChtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXIpCisgICAgaWYgKG1fY29udGVudHNUZXh0
dXJlTWFuYWdlciAmJiBtX2xheWVyUmVuZGVyZXJJbml0aWFsaXplZCkKICAgICAgICAgbV9jb250
ZW50c1RleHR1cmVNYW5hZ2VyLT5ldmljdEFuZERlbGV0ZUFsbFRleHR1cmVzKGFsbG9jYXRvcik7
CiB9CiAKQEAgLTM2Myw4ICszNjMsNiBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJs
ZShib29sIHZpc2libGUpCiAgICAgbV92aXNpYmxlID0gdmlzaWJsZTsKIAogICAgIGlmICghdmlz
aWJsZSAmJiBtX2xheWVyUmVuZGVyZXJJbml0aWFsaXplZCkgewotICAgICAgICBtX2NvbnRlbnRz
VGV4dHVyZU1hbmFnZXItPnJlZHVjZU1lbW9yeVRvTGltaXQoVGV4dHVyZU1hbmFnZXI6Omxvd0xp
bWl0Qnl0ZXModmlld3BvcnRTaXplKCkpKTsKLSAgICAgICAgbV9jb250ZW50c1RleHR1cmVNYW5h
Z2VyLT51bnByb3RlY3RBbGxUZXh0dXJlcygpOwogICAgIH0KIAogICAgIC8vIFRlbGxzIHRoZSBw
cm94eSB0aGF0IHZpc2liaWxpdHkgc3RhdGUgaGFzIGNoYW5nZWQuIFRoaXMgd2lsbCBpbiB0dXJu
IGNhbGwKQEAgLTM3OSwxMyArMzc3LDE0IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpkaWRCZWNv
bWVJbnZpc2libGVPbkltcGxUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaG9zdEltCiAgICAg
aWYgKCFtX2xheWVyUmVuZGVyZXJJbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKG1fcHJveHktPmxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS5jb250ZXh0SGFzQ2FjaGVk
RnJvbnRCdWZmZXIpCi0gICAgICAgIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKS0+ZXZpY3RBbmRE
ZWxldGVBbGxUZXh0dXJlcyhob3N0SW1wbC0+Y29udGVudHNUZXh0dXJlQWxsb2NhdG9yKCkpOwot
ICAgIGVsc2UgewotICAgICAgICBjb250ZW50c1RleHR1cmVNYW5hZ2VyKCktPnJlZHVjZU1lbW9y
eVRvTGltaXQoVGV4dHVyZU1hbmFnZXI6OnJlY2xhaW1MaW1pdEJ5dGVzKHZpZXdwb3J0U2l6ZSgp
KSk7Ci0gICAgICAgIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKS0+ZGVsZXRlRXZpY3RlZFRleHR1
cmVzKGhvc3RJbXBsLT5jb250ZW50c1RleHR1cmVBbGxvY2F0b3IoKSk7CisgICAgaWYgKG1fcHJv
eHktPmxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS5jb250ZXh0SGFzQ2FjaGVkRnJvbnRCdWZm
ZXIpIHsKKyAgICAgICAgLy8gVW5wcm90ZWN0IGFuZCBkZWxldGUgYWxsIHRleHR1cmVzLgorICAg
ICAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnVucHJvdGVjdEFsbFRleHR1cmVzKCk7CiAg
ICAgfQogCisgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5yZWR1Y2VNZW1vcnlUb0xpbWl0
KDApOworICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+ZGVsZXRlRXZpY3RlZFRleHR1cmVz
KGhvc3RJbXBsLT5jb250ZW50c1RleHR1cmVBbGxvY2F0b3IoKSk7CisKICAgICAvLyBFbnN1cmUg
dGhhdCB0aGUgZHJvcHBlZCB0aWxlcyBhcmUgcHJvcGFnYXRlZCB0byB0aGUgaW1wbCB0cmVlLgog
ICAgIC8vIElmIHRoZSBmcm9udGJ1ZmZlciBpcyBjYWNoZWQsIHRoZW4gY2xvYmJlciB0aGUgaW1w
bCB0cmVlLiBPdGhlcndpc2UsCiAgICAgLy8gcHVzaCBvdmVyIHRoZSB0cmVlIGNoYW5nZXMuCkBA
IC00ODQsOCArNDgzLDggQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVycyhMYXll
ckNocm9taXVtKiByb290TGF5ZXIpCiAgICAgaWYgKCFtX3RyaWdnZXJJZGxlUGFpbnRzKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzaXplX3QgcHJlZmVycmVkTGltaXRCeXRlcyA9IFRleHR1cmVN
YW5hZ2VyOjpyZWNsYWltTGltaXRCeXRlcyhtX3ZpZXdwb3J0U2l6ZSk7Ci0gICAgc2l6ZV90IG1h
eExpbWl0Qnl0ZXMgPSBUZXh0dXJlTWFuYWdlcjo6aGlnaExpbWl0Qnl0ZXMobV92aWV3cG9ydFNp
emUpOworICAgIHNpemVfdCBwcmVmZXJyZWRMaW1pdEJ5dGVzID0gbV9jb250ZW50c1RleHR1cmVN
YW5hZ2VyLT5wcmVmZXJyZWRNZW1vcnlMaW1pdEJ5dGVzKCk7CisgICAgc2l6ZV90IG1heExpbWl0
Qnl0ZXMgPSBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPm1heE1lbW9yeUxpbWl0Qnl0ZXMoKTsK
ICAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnJlZHVjZU1lbW9yeVRvTGltaXQocHJlZmVy
cmVkTGltaXRCeXRlcyk7CiAgICAgaWYgKG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+Y3VycmVu
dE1lbW9yeVVzZUJ5dGVzKCkgPj0gcHJlZmVycmVkTGltaXRCeXRlcykKICAgICAgICAgcmV0dXJu
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135955</attachid>
            <date>2012-04-05 18:12:44 -0700</date>
            <delta_ts>2012-04-06 11:15:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83316-20120405211242.patch</filename>
            <type>text/plain</type>
            <size>9313</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUzOGY5OTY0YzYyNDU1
NmNjZjIxYzFlYzllN2NiY2JhZjlhYzE2Ni4uZTQ2NjVkOTFiZGRjYWU3ZjAyNzA1OTQ5ZDZhZDBm
YTg2NzBjODhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA0LTA1ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVt
b3ZlIHZpZXdwb3J0IG1lbW9yeSByZXN0cmljdGlvbnMgYW5kIHJlbW92ZSBkdXBsaWNhdGUgbWVt
b3J5IGxpbWl0IHJlZHVjdGlvbnMgb24gc2V0VmlzaWJsZShmYWxzZSkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMzE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmVtb3ZlIHRoZSBtZW1vcnkgcmVz
dHJpY3Rpb24gb24gd2ViIHBhZ2VzIGJhc2VkIG9uIHZpZXdwb3J0IHNpemUuCisgICAgICAgIFRo
aXMgaXMgY2F1c2luZyBwYWdlcyB0aGF0IGhhdmUgY29tcGxleCB1c2Ugb2YgbGF5ZXJzIHRvIGVu
ZCB1cCBoaXR0aW5nCisgICAgICAgIG91ciBtZW1vcnkgbGltaXRzLCBhbmQgbW9yZXNvIHdoZW4g
dGhlIHdpbmRvdyBpcyBzbWFsbC4gUGFnZSBjb21wbGV4aXR5CisgICAgICAgIGlzIG5vdCByZWFs
bHkgYSBmdW5jdGlvbiBvZiB0aGUgdmlld3BvcnQgc2l6ZS4KKworICAgICAgICBXaGlsZSB3ZSdy
ZSBhdCBpdCB3ZSBjbGVhbiB1cCB0aGUgbWVtb3J5IGxpbWl0IGNvZGU6CisKKyAgICAgICAgMS4g
V2UgdW5pdCB0ZXN0IHRoYXQgdGhlIHRleHR1cmUgbWFuYWdlciBwcmVmZXJyZWQgYW5kIG1heGlt
dW0gbWVtb3J5CisgICAgICAgIGxpbWl0cyBhcmUgc2V0IGNvcnJlY3RseSwgYnV0IHdlIG5ldmVy
IGFjdHVhbGx5IHVzZSB0aGVzZSB2YWx1ZXMgaW4KKyAgICAgICAgdGhlIGNvZGUuIEluc3RlYWQg
b2YgY29tcHV0aW5nIHRoZW0gb3ZlciBhbmQgb3ZlciBpbiB1cGRhdGVMYXllcnMoKSwKKyAgICAg
ICAgd2UgdXNlIHZhbHVlcyBzdG9yZWQgaW4gdGhlIHRleHR1cmUgbWFuYWdlciwgYW5kIHRlc3Rl
ZCBpbiB1bml0IHRlc3RzLgorCisgICAgICAgIDIuIFdoZW4gdGhlIExUSCBiZWNvbWVzIGludmlz
aWJsZSwgYW5kIHdlIHdlcmUgbm90IGNhY2hlaW5nIHRoZSBmcm9udAorICAgICAgICBidWZmZXIs
IHdlIHdvdWxkOgorICAgICAgICBhKSBTZXQgdGhlIGxpbWl0IHRvIHRoZSBtaW5pbnVtTWVtb3J5
TGltaXRCeXRlcyAoZXZpY3RpbmcgYWxsCisgICAgICAgIHVucHJvdGVjdGVkIHRleHR1cmVzIGFi
b3ZlIGl0KS4KKyAgICAgICAgYikgVW5yZXNlcnZlIGFsbCB0ZXh0dXJlcy4KKyAgICAgICAgYykg
U2V0IHRoZSBsaW1pdCB0byB0aGUgcHJlZmVycmVkTWVtb3J5TGltaXRCeXRlcyAoZXZpY3Rpbmcg
YW55IHRleHR1cmVzCisgICAgICAgIGFib3ZlIHRoZSBwcmVmZXJyZWQgbGltaXQgdGhhdCB3ZXJl
IG90aGVyd2lzZSBwcm90ZWN0ZWQpLgorICAgICAgICBkKSBEZWxldGUgYWxsIGV2aWN0ZWQgdGV4
dHVyZXMuCisKKyAgICAgICAgV2UgZHJvcCB0aGUgbWluaW51bSBtZW1vcnkgbGltaXQsIGFuZCBq
dXN0IGV2aWN0IGFsbCB1bnByb3RlY3RlZCB0ZXh0dXJlcworICAgICAgICBpbnN0ZWFkLCBhbmQg
cHV0IHRoaXMgY29kZSBpbiBvbmUgcGxhY2UsIGluc3RlYWQgb2Ygc3RyZXRjaGluZyBhY3Jvc3MK
KyAgICAgICAgTFRIOjpzZXRWaXNpYmxlKCkgYW5kIExUSDo6ZGlkQmVjb21lSW52aXNpYmxlT25J
bXBsVGhyZWFkKCkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYW5hZ2VyOjpoaWdoTGltaXRCeXRlcyk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFuYWdlcjo6cmVjbGFpbUxpbWl0Qnl0ZXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmg6CisgICAgICAgIChU
ZXh0dXJlTWFuYWdlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6
ZGVsZXRlQ29udGVudHNUZXh0dXJlc09uSW1wbFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpD
Q0xheWVyVHJlZUhvc3Q6OnNldFZpc2libGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRy
ZWVIb3N0OjpkaWRCZWNvbWVJbnZpc2libGVPbkltcGxUaHJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMpOgorCiAyMDEyLTA0LTA1ICBTaGF3biBT
aW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTmVl
ZCB0byBjbGlwIHRvIGhvbW9nZW5lb3VzIHc9MCBwbGFuZSB3aGVuIGFwcGx5aW5nIHRyYW5zZm9y
bXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9UZXh0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UZXh0dXJlTWFuYWdlci5jcHAKaW5kZXggMGM2ZmUxNGY5YWQ2NWZjMDJmMmQ1ZTQ5
ZWY1MjU0NTMyNDJmYTZmYi4uYzg2N2RjYTIwOWZjOTIwNDAyYjVlNDM1ZWQ0ZTZlNzZhNGRkOTk1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VGV4dHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmNwcApAQCAtMzcsMTggKzM3LDE3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogCiBuYW1lc3BhY2Ugewotc2l6ZV90IG1lbW9yeUxpbWl0Qnl0ZXMoc2l6
ZV90IHZpZXdwb3J0TXVsdGlwbGllciwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBzaXpl
X3QgbWluTWVnYWJ5dGVzLCBzaXplX3QgbWF4TWVnYWJ5dGVzKQorc2l6ZV90IG1lbW9yeUxpbWl0
Qnl0ZXMoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBzaXplX3QgbWluTWVnYWJ5dGVzLCBz
aXplX3QgbWF4TWVnYWJ5dGVzKQogewogICAgIGlmICh2aWV3cG9ydFNpemUuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gbWluTWVnYWJ5dGVzICogMTAyNCAqIDEwMjQ7Ci0gICAgcmV0dXJuIG1h
eChtaW5NZWdhYnl0ZXMgKiAxMDI0ICogMTAyNCwgbWluKG1heE1lZ2FieXRlcyAqIDEwMjQgKiAx
MDI0LCB2aWV3cG9ydE11bHRpcGxpZXIgKiBUZXh0dXJlTWFuYWdlcjo6bWVtb3J5VXNlQnl0ZXMo
dmlld3BvcnRTaXplLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSkpKTsKKyAgICByZXR1cm4gbWF4
TWVnYWJ5dGVzICogMTAyNCAqIDEwMjQ7CiB9CiB9CiAKIHNpemVfdCBUZXh0dXJlTWFuYWdlcjo6
aGlnaExpbWl0Qnl0ZXMoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKQogewotICAgIHNpemVf
dCB2aWV3cG9ydE11bHRpcGxpZXIsIG1pbk1lZ2FieXRlcywgbWF4TWVnYWJ5dGVzOwotICAgIHZp
ZXdwb3J0TXVsdGlwbGllciA9IDEyOworICAgIHNpemVfdCBtaW5NZWdhYnl0ZXMsIG1heE1lZ2Fi
eXRlczsKICNpZiBPUyhBTkRST0lEKQogICAgIG1pbk1lZ2FieXRlcyA9IDI0OwogICAgIG1heE1l
Z2FieXRlcyA9IDQwOwpAQCAtNTYsMTMgKzU1LDEyIEBAIHNpemVfdCBUZXh0dXJlTWFuYWdlcjo6
aGlnaExpbWl0Qnl0ZXMoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKQogICAgIG1pbk1lZ2Fi
eXRlcyA9IDY0OwogICAgIG1heE1lZ2FieXRlcyA9IDEyODsKICNlbmRpZgotICAgIHJldHVybiBt
ZW1vcnlMaW1pdEJ5dGVzKHZpZXdwb3J0TXVsdGlwbGllciwgdmlld3BvcnRTaXplLCBtaW5NZWdh
Ynl0ZXMsIG1heE1lZ2FieXRlcyk7CisgICAgcmV0dXJuIG1lbW9yeUxpbWl0Qnl0ZXModmlld3Bv
cnRTaXplLCBtaW5NZWdhYnl0ZXMsIG1heE1lZ2FieXRlcyk7CiB9CiAKIHNpemVfdCBUZXh0dXJl
TWFuYWdlcjo6cmVjbGFpbUxpbWl0Qnl0ZXMoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKQog
ewotICAgIHNpemVfdCB2aWV3cG9ydE11bHRpcGxpZXIsIG1pbk1lZ2FieXRlcywgbWF4TWVnYWJ5
dGVzOwotICAgIHZpZXdwb3J0TXVsdGlwbGllciA9IDY7CisgICAgc2l6ZV90IG1pbk1lZ2FieXRl
cywgbWF4TWVnYWJ5dGVzOwogI2lmIE9TKEFORFJPSUQpCiAgICAgbWluTWVnYWJ5dGVzID0gOTsK
ICAgICBtYXhNZWdhYnl0ZXMgPSAzMjsKQEAgLTcwLDE2ICs2OCw3IEBAIHNpemVfdCBUZXh0dXJl
TWFuYWdlcjo6cmVjbGFpbUxpbWl0Qnl0ZXMoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKQog
ICAgIG1pbk1lZ2FieXRlcyA9IDMyOwogICAgIG1heE1lZ2FieXRlcyA9IDY0OwogI2VuZGlmCi0g
ICAgcmV0dXJuIG1lbW9yeUxpbWl0Qnl0ZXModmlld3BvcnRNdWx0aXBsaWVyLCB2aWV3cG9ydFNp
emUsIG1pbk1lZ2FieXRlcywgbWF4TWVnYWJ5dGVzKTsKLX0KLQotc2l6ZV90IFRleHR1cmVNYW5h
Z2VyOjpsb3dMaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKLXsKLSAgICBz
aXplX3Qgdmlld3BvcnRNdWx0aXBsaWVyLCBtaW5NZWdhYnl0ZXMsIG1heE1lZ2FieXRlczsKLSAg
ICB2aWV3cG9ydE11bHRpcGxpZXIgPSAxOwotICAgIG1pbk1lZ2FieXRlcyA9IDI7Ci0gICAgbWF4
TWVnYWJ5dGVzID0gMzsKLSAgICByZXR1cm4gbWVtb3J5TGltaXRCeXRlcyh2aWV3cG9ydE11bHRp
cGxpZXIsIHZpZXdwb3J0U2l6ZSwgbWluTWVnYWJ5dGVzLCBtYXhNZWdhYnl0ZXMpOworICAgIHJl
dHVybiBtZW1vcnlMaW1pdEJ5dGVzKHZpZXdwb3J0U2l6ZSwgbWluTWVnYWJ5dGVzLCBtYXhNZWdh
Ynl0ZXMpOwogfQogCiBzaXplX3QgVGV4dHVyZU1hbmFnZXI6Om1lbW9yeVVzZUJ5dGVzKGNvbnN0
IEludFNpemUmIHNpemUsIEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIu
aAppbmRleCBlNGQ2ZDM4YjhjYjk4ZjViNzQ0YWVhYjkyZTJkYjFhMGZlNmRhZmFiLi43MGQwODYx
YzU3ODZmYmVjMDI1YjRjOTZjOTFiZThiZGRmZDU4ZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmgK
QEAgLTYyLDggKzYyLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBzaXplX3QgaGlnaExpbWl0Qnl0
ZXMoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKTsKICAgICAvLyBQcmVmZXJyZWQgdGV4dHVy
ZSBzaXplIGxpbWl0IGdpdmVuIHRoZSB2aWV3cG9ydCBzaXplLgogICAgIHN0YXRpYyBzaXplX3Qg
cmVjbGFpbUxpbWl0Qnl0ZXMoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKTsKLSAgICAvLyBU
aGUgbWF4aW11bSB0ZXh0dXJlIG1lbW9yeSB1c2FnZSB3aGVuIGFza2VkIHRvIHJlbGVhc2UgdGV4
dHVyZXMuCi0gICAgc3RhdGljIHNpemVfdCBsb3dMaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0KTsKIAogICAgIHN0YXRpYyBzaXplX3QgbWVtb3J5VXNlQnl0ZXMoY29uc3QgSW50U2l6
ZSYsIEdDM0RlbnVtIGZvcm1hdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmlu
ZGV4IGQzZmM5NzBiZDM2NzNkNzFjODIwYmEzMzhhNmJkMDZkNDYyMzU2ZWUuLmY2YTc0OGNiMjU1
NjBiNDUwYTBmNjYyYWRmZjI1ZDQ2MzhiMTg5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmNwcApAQCAtMTczLDcgKzE3Myw3IEBAIENDTGF5ZXJUcmVlSG9zdDo6UmVjcmVhdGVSZXN1
bHQgQ0NMYXllclRyZWVIb3N0OjpyZWNyZWF0ZUNvbnRleHQoKQogdm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OmRlbGV0ZUNvbnRlbnRzVGV4dHVyZXNPbkltcGxUaHJlYWQoVGV4dHVyZUFsbG9jYXRvciog
YWxsb2NhdG9yKQogewogICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7Ci0gICAg
aWYgKG1fY29udGVudHNUZXh0dXJlTWFuYWdlcikKKyAgICBpZiAobV9jb250ZW50c1RleHR1cmVN
YW5hZ2VyICYmIG1fbGF5ZXJSZW5kZXJlckluaXRpYWxpemVkKQogICAgICAgICBtX2NvbnRlbnRz
VGV4dHVyZU1hbmFnZXItPmV2aWN0QW5kRGVsZXRlQWxsVGV4dHVyZXMoYWxsb2NhdG9yKTsKIH0K
IApAQCAtMzYyLDExICszNjIsNiBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZShi
b29sIHZpc2libGUpCiAKICAgICBtX3Zpc2libGUgPSB2aXNpYmxlOwogCi0gICAgaWYgKCF2aXNp
YmxlICYmIG1fbGF5ZXJSZW5kZXJlckluaXRpYWxpemVkKSB7Ci0gICAgICAgIG1fY29udGVudHNU
ZXh0dXJlTWFuYWdlci0+cmVkdWNlTWVtb3J5VG9MaW1pdChUZXh0dXJlTWFuYWdlcjo6bG93TGlt
aXRCeXRlcyh2aWV3cG9ydFNpemUoKSkpOwotICAgICAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFn
ZXItPnVucHJvdGVjdEFsbFRleHR1cmVzKCk7Ci0gICAgfQotCiAgICAgLy8gVGVsbHMgdGhlIHBy
b3h5IHRoYXQgdmlzaWJpbGl0eSBzdGF0ZSBoYXMgY2hhbmdlZC4gVGhpcyB3aWxsIGluIHR1cm4g
Y2FsbAogICAgIC8vIENDTGF5ZXJUcmVlSG9zdDo6ZGlkQmVjb21lSW52aXNpYmxlT25JbXBsVGhy
ZWFkIG9uIHRoZSBhcHByb3ByaWF0ZSB0aHJlYWQsIGZvcgogICAgIC8vIHRoZSBjYXNlIHdoZXJl
ICF2aXNpYmxlLgpAQCAtMzc5LDEzICszNzQsMjAgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmRp
ZEJlY29tZUludmlzaWJsZU9uSW1wbFRocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKiBob3N0SW0K
ICAgICBpZiAoIW1fbGF5ZXJSZW5kZXJlckluaXRpYWxpemVkKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAobV9wcm94eS0+bGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcygpLmNvbnRleHRIYXND
YWNoZWRGcm9udEJ1ZmZlcikKLSAgICAgICAgY29udGVudHNUZXh0dXJlTWFuYWdlcigpLT5ldmlj
dEFuZERlbGV0ZUFsbFRleHR1cmVzKGhvc3RJbXBsLT5jb250ZW50c1RleHR1cmVBbGxvY2F0b3Io
KSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKS0+cmVkdWNl
TWVtb3J5VG9MaW1pdChUZXh0dXJlTWFuYWdlcjo6cmVjbGFpbUxpbWl0Qnl0ZXModmlld3BvcnRT
aXplKCkpKTsKLSAgICAgICAgY29udGVudHNUZXh0dXJlTWFuYWdlcigpLT5kZWxldGVFdmljdGVk
VGV4dHVyZXMoaG9zdEltcGwtPmNvbnRlbnRzVGV4dHVyZUFsbG9jYXRvcigpKTsKKyAgICBpZiAo
bV9wcm94eS0+bGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcygpLmNvbnRleHRIYXNDYWNoZWRGcm9u
dEJ1ZmZlcikgeworICAgICAgICAvLyBVbnByb3RlY3QgYW5kIGRlbGV0ZSBhbGwgdGV4dHVyZXMu
CisgICAgICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+dW5wcm90ZWN0QWxsVGV4dHVyZXMo
KTsKKyAgICAgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5yZWR1Y2VNZW1vcnlUb0xpbWl0
KDApOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIERlbGV0ZSBhbGwgdW5wcm90ZWN0ZWQgdGV4
dHVyZXMsIGFuZCBvbmx5IHNhdmUgdGV4dHVyZXMgdGhhdCBmaXQgaW4gdGhlIHByZWZlcnJlZCBt
ZW1vcnkgbGltaXQuCisgICAgICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+cmVkdWNlTWVt
b3J5VG9MaW1pdCgwKTsKKyAgICAgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT51bnByb3Rl
Y3RBbGxUZXh0dXJlcygpOworICAgICAgICBzaXplX3QgcHJlZmVycmVkTGltaXRCeXRlcyA9IG1f
Y29udGVudHNUZXh0dXJlTWFuYWdlci0+cHJlZmVycmVkTWVtb3J5TGltaXRCeXRlcygpOworICAg
ICAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnJlZHVjZU1lbW9yeVRvTGltaXQocHJlZmVy
cmVkTGltaXRCeXRlcyk7CiAgICAgfQogCisgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5k
ZWxldGVFdmljdGVkVGV4dHVyZXMoaG9zdEltcGwtPmNvbnRlbnRzVGV4dHVyZUFsbG9jYXRvcigp
KTsKKwogICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBkcm9wcGVkIHRpbGVzIGFyZSBwcm9wYWdhdGVk
IHRvIHRoZSBpbXBsIHRyZWUuCiAgICAgLy8gSWYgdGhlIGZyb250YnVmZmVyIGlzIGNhY2hlZCwg
dGhlbiBjbG9iYmVyIHRoZSBpbXBsIHRyZWUuIE90aGVyd2lzZSwKICAgICAvLyBwdXNoIG92ZXIg
dGhlIHRyZWUgY2hhbmdlcy4KQEAgLTQ4NCw4ICs0ODYsOCBAQCB2b2lkIENDTGF5ZXJUcmVlSG9z
dDo6dXBkYXRlTGF5ZXJzKExheWVyQ2hyb21pdW0qIHJvb3RMYXllcikKICAgICBpZiAoIW1fdHJp
Z2dlcklkbGVQYWludHMpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNpemVfdCBwcmVmZXJyZWRM
aW1pdEJ5dGVzID0gVGV4dHVyZU1hbmFnZXI6OnJlY2xhaW1MaW1pdEJ5dGVzKG1fdmlld3BvcnRT
aXplKTsKLSAgICBzaXplX3QgbWF4TGltaXRCeXRlcyA9IFRleHR1cmVNYW5hZ2VyOjpoaWdoTGlt
aXRCeXRlcyhtX3ZpZXdwb3J0U2l6ZSk7CisgICAgc2l6ZV90IHByZWZlcnJlZExpbWl0Qnl0ZXMg
PSBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnByZWZlcnJlZE1lbW9yeUxpbWl0Qnl0ZXMoKTsK
KyAgICBzaXplX3QgbWF4TGltaXRCeXRlcyA9IG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+bWF4
TWVtb3J5TGltaXRCeXRlcygpOwogICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+cmVkdWNl
TWVtb3J5VG9MaW1pdChwcmVmZXJyZWRMaW1pdEJ5dGVzKTsKICAgICBpZiAobV9jb250ZW50c1Rl
eHR1cmVNYW5hZ2VyLT5jdXJyZW50TWVtb3J5VXNlQnl0ZXMoKSA+PSBwcmVmZXJyZWRMaW1pdEJ5
dGVzKQogICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136044</attachid>
            <date>2012-04-06 11:15:16 -0700</date>
            <delta_ts>2012-04-12 18:22:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83316-20120406141515.patch</filename>
            <type>text/plain</type>
            <size>9368</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRkNmE2YjkzMDE1MGNm
NmYyMDhiZjUyMTJiODE2MThhZDM3ZWM4Ny4uMzUyNjdkODJjNDYwYTg5NDdkYmY1NTRlNDE0ZDll
OGM0ODI5YjE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA0LTA1ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVt
b3ZlIHZpZXdwb3J0IG1lbW9yeSByZXN0cmljdGlvbnMgYW5kIHJlbW92ZSBkdXBsaWNhdGUgbWVt
b3J5IGxpbWl0IHJlZHVjdGlvbnMgb24gc2V0VmlzaWJsZShmYWxzZSkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMzE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmVtb3ZlIHRoZSBtZW1vcnkgcmVz
dHJpY3Rpb24gb24gd2ViIHBhZ2VzIGJhc2VkIG9uIHZpZXdwb3J0IHNpemUKKyAgICAgICAgb24g
ZGVza3RvcC4gVGhpcyBpcyBjYXVzaW5nIHBhZ2VzIHRoYXQgaGF2ZSBjb21wbGV4IHVzZSBvZiBs
YXllcnMgdG8KKyAgICAgICAgZW5kIHVwIGhpdHRpbmcgb3VyIG1lbW9yeSBsaW1pdHMsIGFuZCBt
b3Jlc28gd2hlbiB0aGUgd2luZG93IGlzIHNtYWxsLgorICAgICAgICBQYWdlIGNvbXBsZXhpdHkg
aXMgbm90IHJlYWxseSBhIGZ1bmN0aW9uIG9mIHRoZSB2aWV3cG9ydCBzaXplLgorCisgICAgICAg
IFdoaWxlIHdlJ3JlIGF0IGl0IHdlIGNsZWFuIHVwIHRoZSBtZW1vcnkgbGltaXQgY29kZToKKwor
ICAgICAgICAxLiBXZSB1bml0IHRlc3QgdGhhdCB0aGUgdGV4dHVyZSBtYW5hZ2VyIHByZWZlcnJl
ZCBhbmQgbWF4aW11bSBtZW1vcnkKKyAgICAgICAgbGltaXRzIGFyZSBzZXQgY29ycmVjdGx5LCBi
dXQgd2UgbmV2ZXIgYWN0dWFsbHkgdXNlIHRoZXNlIHZhbHVlcyBpbgorICAgICAgICB0aGUgY29k
ZS4gSW5zdGVhZCBvZiBjb21wdXRpbmcgdGhlbSBvdmVyIGFuZCBvdmVyIGluIHVwZGF0ZUxheWVy
cygpLAorICAgICAgICB3ZSB1c2UgdmFsdWVzIHN0b3JlZCBpbiB0aGUgdGV4dHVyZSBtYW5hZ2Vy
LCBhbmQgdGVzdGVkIGluIHVuaXQgdGVzdHMuCisKKyAgICAgICAgMi4gV2hlbiB0aGUgTFRIIGJl
Y29tZXMgaW52aXNpYmxlLCBhbmQgd2Ugd2VyZSBub3QgY2FjaGVpbmcgdGhlIGZyb250CisgICAg
ICAgIGJ1ZmZlciwgd2Ugd291bGQ6CisgICAgICAgIGEpIFNldCB0aGUgbGltaXQgdG8gdGhlIG1p
bmludW1NZW1vcnlMaW1pdEJ5dGVzIChldmljdGluZyBhbGwKKyAgICAgICAgdW5wcm90ZWN0ZWQg
dGV4dHVyZXMgYWJvdmUgaXQpLgorICAgICAgICBiKSBVbnJlc2VydmUgYWxsIHRleHR1cmVzLgor
ICAgICAgICBjKSBTZXQgdGhlIGxpbWl0IHRvIHRoZSBwcmVmZXJyZWRNZW1vcnlMaW1pdEJ5dGVz
IChldmljdGluZyBhbnkgdGV4dHVyZXMKKyAgICAgICAgYWJvdmUgdGhlIHByZWZlcnJlZCBsaW1p
dCB0aGF0IHdlcmUgb3RoZXJ3aXNlIHByb3RlY3RlZCkuCisgICAgICAgIGQpIERlbGV0ZSBhbGwg
ZXZpY3RlZCB0ZXh0dXJlcy4KKworICAgICAgICBXZSBkcm9wIHRoZSBtaW5pbnVtIG1lbW9yeSBs
aW1pdCwgYW5kIGp1c3QgZXZpY3QgYWxsIHVucHJvdGVjdGVkIHRleHR1cmVzCisgICAgICAgIGlu
c3RlYWQsIGFuZCBwdXQgdGhpcyBjb2RlIGluIG9uZSBwbGFjZSwgaW5zdGVhZCBvZiBzdHJldGNo
aW5nIGFjcm9zcworICAgICAgICBMVEg6OnNldFZpc2libGUoKSBhbmQgTFRIOjpkaWRCZWNvbWVJ
bnZpc2libGVPbkltcGxUaHJlYWQoKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRl
c3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hbmFnZXI6OmhpZ2hMaW1pdEJ5dGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYW5hZ2VyOjpyZWNsYWltTGltaXRCeXRlcyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuaDoK
KyAgICAgICAgKFRleHR1cmVNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXll
clRyZWVIb3N0OjpkZWxldGVDb250ZW50c1RleHR1cmVzT25JbXBsVGhyZWFkKToKKyAgICAgICAg
KFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVyVHJlZUhvc3Q6OmRpZEJlY29tZUludmlzaWJsZU9uSW1wbFRocmVhZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVycyk6CisKIDIwMTItMDQt
MDYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTA5MTI0NzY+IFBpeGVsIGFjY2VzcyBjYW52YXMgQVBJcyBkbyBub3Qgd29yayB0cmFu
c3BhcmVudGx5IHdpdGggaGlnaC1EUEkgYmFja2luZyBzdG9yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIu
Y3BwCmluZGV4IDBjNmZlMTRmOWFkNjVmYzAyZjJkNWU0OWVmNTI1NDUzMjQyZmE2ZmIuLmQ0ZDhj
MTgyY2ZlNTI1ZjU2MDA4OGFhMTI2Njk4ZDlkOTMyNGFlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdl
ci5jcHAKQEAgLTM5LDYgKzM5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIHsK
IHNpemVfdCBtZW1vcnlMaW1pdEJ5dGVzKHNpemVfdCB2aWV3cG9ydE11bHRpcGxpZXIsIGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgc2l6ZV90IG1pbk1lZ2FieXRlcywgc2l6ZV90IG1heE1l
Z2FieXRlcykKIHsKKyAgICBpZiAoIXZpZXdwb3J0TXVsdGlwbGllcikKKyAgICAgICAgcmV0dXJu
IG1heE1lZ2FieXRlcyAqIDEwMjQgKiAxMDI0OwogICAgIGlmICh2aWV3cG9ydFNpemUuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm4gbWluTWVnYWJ5dGVzICogMTAyNCAqIDEwMjQ7CiAgICAgcmV0
dXJuIG1heChtaW5NZWdhYnl0ZXMgKiAxMDI0ICogMTAyNCwgbWluKG1heE1lZ2FieXRlcyAqIDEw
MjQgKiAxMDI0LCB2aWV3cG9ydE11bHRpcGxpZXIgKiBUZXh0dXJlTWFuYWdlcjo6bWVtb3J5VXNl
Qnl0ZXModmlld3BvcnRTaXplLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSkpKTsKQEAgLTQ4LDEy
ICs1MCwxMyBAQCBzaXplX3QgbWVtb3J5TGltaXRCeXRlcyhzaXplX3Qgdmlld3BvcnRNdWx0aXBs
aWVyLCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsCiBzaXplX3QgVGV4dHVyZU1hbmFnZXI6
OmhpZ2hMaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKIHsKICAgICBzaXpl
X3Qgdmlld3BvcnRNdWx0aXBsaWVyLCBtaW5NZWdhYnl0ZXMsIG1heE1lZ2FieXRlczsKLSAgICB2
aWV3cG9ydE11bHRpcGxpZXIgPSAxMjsKICNpZiBPUyhBTkRST0lEKQotICAgIG1pbk1lZ2FieXRl
cyA9IDI0OwotICAgIG1heE1lZ2FieXRlcyA9IDQwOworICAgIHZpZXdwb3J0TXVsdGlwbGllciA9
IDE2OworICAgIG1pbk1lZ2FieXRlcyA9IDMyOworICAgIG1heE1lZ2FieXRlcyA9IDY0OwogI2Vs
c2UKLSAgICBtaW5NZWdhYnl0ZXMgPSA2NDsKKyAgICB2aWV3cG9ydE11bHRpcGxpZXIgPSAwOwor
ICAgIG1pbk1lZ2FieXRlcyA9IDA7CiAgICAgbWF4TWVnYWJ5dGVzID0gMTI4OwogI2VuZGlmCiAg
ICAgcmV0dXJuIG1lbW9yeUxpbWl0Qnl0ZXModmlld3BvcnRNdWx0aXBsaWVyLCB2aWV3cG9ydFNp
emUsIG1pbk1lZ2FieXRlcywgbWF4TWVnYWJ5dGVzKTsKQEAgLTYyLDI2ICs2NSwxOCBAQCBzaXpl
X3QgVGV4dHVyZU1hbmFnZXI6OmhpZ2hMaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0
U2l6ZSkKIHNpemVfdCBUZXh0dXJlTWFuYWdlcjo6cmVjbGFpbUxpbWl0Qnl0ZXMoY29uc3QgSW50
U2l6ZSYgdmlld3BvcnRTaXplKQogewogICAgIHNpemVfdCB2aWV3cG9ydE11bHRpcGxpZXIsIG1p
bk1lZ2FieXRlcywgbWF4TWVnYWJ5dGVzOwotICAgIHZpZXdwb3J0TXVsdGlwbGllciA9IDY7CiAj
aWYgT1MoQU5EUk9JRCkKLSAgICBtaW5NZWdhYnl0ZXMgPSA5OworICAgIHZpZXdwb3J0TXVsdGlw
bGllciA9IDg7CisgICAgbWluTWVnYWJ5dGVzID0gMTY7CiAgICAgbWF4TWVnYWJ5dGVzID0gMzI7
CiAjZWxzZQotICAgIG1pbk1lZ2FieXRlcyA9IDMyOworICAgIHZpZXdwb3J0TXVsdGlwbGllciA9
IDA7CisgICAgbWluTWVnYWJ5dGVzID0gMDsKICAgICBtYXhNZWdhYnl0ZXMgPSA2NDsKICNlbmRp
ZgogICAgIHJldHVybiBtZW1vcnlMaW1pdEJ5dGVzKHZpZXdwb3J0TXVsdGlwbGllciwgdmlld3Bv
cnRTaXplLCBtaW5NZWdhYnl0ZXMsIG1heE1lZ2FieXRlcyk7CiB9CiAKLXNpemVfdCBUZXh0dXJl
TWFuYWdlcjo6bG93TGltaXRCeXRlcyhjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUpCi17Ci0g
ICAgc2l6ZV90IHZpZXdwb3J0TXVsdGlwbGllciwgbWluTWVnYWJ5dGVzLCBtYXhNZWdhYnl0ZXM7
Ci0gICAgdmlld3BvcnRNdWx0aXBsaWVyID0gMTsKLSAgICBtaW5NZWdhYnl0ZXMgPSAyOwotICAg
IG1heE1lZ2FieXRlcyA9IDM7Ci0gICAgcmV0dXJuIG1lbW9yeUxpbWl0Qnl0ZXModmlld3BvcnRN
dWx0aXBsaWVyLCB2aWV3cG9ydFNpemUsIG1pbk1lZ2FieXRlcywgbWF4TWVnYWJ5dGVzKTsKLX0K
LQogc2l6ZV90IFRleHR1cmVNYW5hZ2VyOjptZW1vcnlVc2VCeXRlcyhjb25zdCBJbnRTaXplJiBz
aXplLCBHQzNEZW51bSB0ZXh0dXJlRm9ybWF0KQogewogICAgIC8vIEZJWE1FOiBUaGlzIGFzc3Vt
ZXMgYWxsIHRleHR1cmVzIGFyZSAxIGJ5dGUvY29tcG9uZW50LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmgK
aW5kZXggZTRkNmQzOGI4Y2I5OGY1Yjc0NGFlYWI5MmUyZGIxYTBmZTZkYWZhYi4uNzBkMDg2MWM1
Nzg2ZmJlYzAyNWI0Yzk2YzkxYmU4YmRkZmQ1OGRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5oCkBA
IC02Miw4ICs2Miw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgc2l6ZV90IGhpZ2hMaW1pdEJ5dGVz
KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSk7CiAgICAgLy8gUHJlZmVycmVkIHRleHR1cmUg
c2l6ZSBsaW1pdCBnaXZlbiB0aGUgdmlld3BvcnQgc2l6ZS4KICAgICBzdGF0aWMgc2l6ZV90IHJl
Y2xhaW1MaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSk7Ci0gICAgLy8gVGhl
IG1heGltdW0gdGV4dHVyZSBtZW1vcnkgdXNhZ2Ugd2hlbiBhc2tlZCB0byByZWxlYXNlIHRleHR1
cmVzLgotICAgIHN0YXRpYyBzaXplX3QgbG93TGltaXRCeXRlcyhjb25zdCBJbnRTaXplJiB2aWV3
cG9ydCk7CiAKICAgICBzdGF0aWMgc2l6ZV90IG1lbW9yeVVzZUJ5dGVzKGNvbnN0IEludFNpemUm
LCBHQzNEZW51bSBmb3JtYXQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRl
eCBkM2ZjOTcwYmQzNjczZDcxYzgyMGJhMzM4YTZiZDA2ZDQ2MjM1NmVlLi5mNmE3NDhjYjI1NTYw
YjQ1MGEwZjY2MmFkZmYyNWQ0NjM4YjE4OTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dC5jcHAKQEAgLTE3Myw3ICsxNzMsNyBAQCBDQ0xheWVyVHJlZUhvc3Q6OlJlY3JlYXRlUmVzdWx0
IENDTGF5ZXJUcmVlSG9zdDo6cmVjcmVhdGVDb250ZXh0KCkKIHZvaWQgQ0NMYXllclRyZWVIb3N0
OjpkZWxldGVDb250ZW50c1RleHR1cmVzT25JbXBsVGhyZWFkKFRleHR1cmVBbGxvY2F0b3IqIGFs
bG9jYXRvcikKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwotICAgIGlm
IChtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXIpCisgICAgaWYgKG1fY29udGVudHNUZXh0dXJlTWFu
YWdlciAmJiBtX2xheWVyUmVuZGVyZXJJbml0aWFsaXplZCkKICAgICAgICAgbV9jb250ZW50c1Rl
eHR1cmVNYW5hZ2VyLT5ldmljdEFuZERlbGV0ZUFsbFRleHR1cmVzKGFsbG9jYXRvcik7CiB9CiAK
QEAgLTM2MiwxMSArMzYyLDYgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldFZpc2libGUoYm9v
bCB2aXNpYmxlKQogCiAgICAgbV92aXNpYmxlID0gdmlzaWJsZTsKIAotICAgIGlmICghdmlzaWJs
ZSAmJiBtX2xheWVyUmVuZGVyZXJJbml0aWFsaXplZCkgewotICAgICAgICBtX2NvbnRlbnRzVGV4
dHVyZU1hbmFnZXItPnJlZHVjZU1lbW9yeVRvTGltaXQoVGV4dHVyZU1hbmFnZXI6Omxvd0xpbWl0
Qnl0ZXModmlld3BvcnRTaXplKCkpKTsKLSAgICAgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2Vy
LT51bnByb3RlY3RBbGxUZXh0dXJlcygpOwotICAgIH0KLQogICAgIC8vIFRlbGxzIHRoZSBwcm94
eSB0aGF0IHZpc2liaWxpdHkgc3RhdGUgaGFzIGNoYW5nZWQuIFRoaXMgd2lsbCBpbiB0dXJuIGNh
bGwKICAgICAvLyBDQ0xheWVyVHJlZUhvc3Q6OmRpZEJlY29tZUludmlzaWJsZU9uSW1wbFRocmVh
ZCBvbiB0aGUgYXBwcm9wcmlhdGUgdGhyZWFkLCBmb3IKICAgICAvLyB0aGUgY2FzZSB3aGVyZSAh
dmlzaWJsZS4KQEAgLTM3OSwxMyArMzc0LDIwIEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpkaWRC
ZWNvbWVJbnZpc2libGVPbkltcGxUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaG9zdEltCiAg
ICAgaWYgKCFtX2xheWVyUmVuZGVyZXJJbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKG1fcHJveHktPmxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS5jb250ZXh0SGFzQ2Fj
aGVkRnJvbnRCdWZmZXIpCi0gICAgICAgIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKS0+ZXZpY3RB
bmREZWxldGVBbGxUZXh0dXJlcyhob3N0SW1wbC0+Y29udGVudHNUZXh0dXJlQWxsb2NhdG9yKCkp
OwotICAgIGVsc2UgewotICAgICAgICBjb250ZW50c1RleHR1cmVNYW5hZ2VyKCktPnJlZHVjZU1l
bW9yeVRvTGltaXQoVGV4dHVyZU1hbmFnZXI6OnJlY2xhaW1MaW1pdEJ5dGVzKHZpZXdwb3J0U2l6
ZSgpKSk7Ci0gICAgICAgIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKS0+ZGVsZXRlRXZpY3RlZFRl
eHR1cmVzKGhvc3RJbXBsLT5jb250ZW50c1RleHR1cmVBbGxvY2F0b3IoKSk7CisgICAgaWYgKG1f
cHJveHktPmxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS5jb250ZXh0SGFzQ2FjaGVkRnJvbnRC
dWZmZXIpIHsKKyAgICAgICAgLy8gVW5wcm90ZWN0IGFuZCBkZWxldGUgYWxsIHRleHR1cmVzLgor
ICAgICAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnVucHJvdGVjdEFsbFRleHR1cmVzKCk7
CisgICAgICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+cmVkdWNlTWVtb3J5VG9MaW1pdCgw
KTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBEZWxldGUgYWxsIHVucHJvdGVjdGVkIHRleHR1
cmVzLCBhbmQgb25seSBzYXZlIHRleHR1cmVzIHRoYXQgZml0IGluIHRoZSBwcmVmZXJyZWQgbWVt
b3J5IGxpbWl0LgorICAgICAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnJlZHVjZU1lbW9y
eVRvTGltaXQoMCk7CisgICAgICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+dW5wcm90ZWN0
QWxsVGV4dHVyZXMoKTsKKyAgICAgICAgc2l6ZV90IHByZWZlcnJlZExpbWl0Qnl0ZXMgPSBtX2Nv
bnRlbnRzVGV4dHVyZU1hbmFnZXItPnByZWZlcnJlZE1lbW9yeUxpbWl0Qnl0ZXMoKTsKKyAgICAg
ICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5yZWR1Y2VNZW1vcnlUb0xpbWl0KHByZWZlcnJl
ZExpbWl0Qnl0ZXMpOwogICAgIH0KIAorICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+ZGVs
ZXRlRXZpY3RlZFRleHR1cmVzKGhvc3RJbXBsLT5jb250ZW50c1RleHR1cmVBbGxvY2F0b3IoKSk7
CisKICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgZHJvcHBlZCB0aWxlcyBhcmUgcHJvcGFnYXRlZCB0
byB0aGUgaW1wbCB0cmVlLgogICAgIC8vIElmIHRoZSBmcm9udGJ1ZmZlciBpcyBjYWNoZWQsIHRo
ZW4gY2xvYmJlciB0aGUgaW1wbCB0cmVlLiBPdGhlcndpc2UsCiAgICAgLy8gcHVzaCBvdmVyIHRo
ZSB0cmVlIGNoYW5nZXMuCkBAIC00ODQsOCArNDg2LDggQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6
OnVwZGF0ZUxheWVycyhMYXllckNocm9taXVtKiByb290TGF5ZXIpCiAgICAgaWYgKCFtX3RyaWdn
ZXJJZGxlUGFpbnRzKQogICAgICAgICByZXR1cm47CiAKLSAgICBzaXplX3QgcHJlZmVycmVkTGlt
aXRCeXRlcyA9IFRleHR1cmVNYW5hZ2VyOjpyZWNsYWltTGltaXRCeXRlcyhtX3ZpZXdwb3J0U2l6
ZSk7Ci0gICAgc2l6ZV90IG1heExpbWl0Qnl0ZXMgPSBUZXh0dXJlTWFuYWdlcjo6aGlnaExpbWl0
Qnl0ZXMobV92aWV3cG9ydFNpemUpOworICAgIHNpemVfdCBwcmVmZXJyZWRMaW1pdEJ5dGVzID0g
bV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5wcmVmZXJyZWRNZW1vcnlMaW1pdEJ5dGVzKCk7Cisg
ICAgc2l6ZV90IG1heExpbWl0Qnl0ZXMgPSBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPm1heE1l
bW9yeUxpbWl0Qnl0ZXMoKTsKICAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnJlZHVjZU1l
bW9yeVRvTGltaXQocHJlZmVycmVkTGltaXRCeXRlcyk7CiAgICAgaWYgKG1fY29udGVudHNUZXh0
dXJlTWFuYWdlci0+Y3VycmVudE1lbW9yeVVzZUJ5dGVzKCkgPj0gcHJlZmVycmVkTGltaXRCeXRl
cykKICAgICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137014</attachid>
            <date>2012-04-12 18:22:41 -0700</date>
            <delta_ts>2012-04-13 17:42:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83316-20120412182240.patch</filename>
            <type>text/plain</type>
            <size>7478</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBhMjAyNDFmNWJkZWIy
ZDUyN2FiNWI2OThkYjVmMzk3ZTUzMTJlOS4uNjRmNzRiYWYwYjViYWQwM2IzNTFiNTU1YzMzODA3
ZGFjZjAxYWU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA0LTEyICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVt
b3ZlIHZpZXdwb3J0IG1lbW9yeSByZXN0cmljdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmVtb3ZlIHRoZSBtZW1vcnkgcmVzdHJpY3Rpb24g
b24gd2ViIHBhZ2VzIGJhc2VkIG9uIHZpZXdwb3J0IHNpemUKKyAgICAgICAgb24gZGVza3RvcC4g
VGhpcyBpcyBjYXVzaW5nIHBhZ2VzIHRoYXQgaGF2ZSBjb21wbGV4IHVzZSBvZiBsYXllcnMgdG8K
KyAgICAgICAgZW5kIHVwIGhpdHRpbmcgb3VyIG1lbW9yeSBsaW1pdHMsIGFuZCBtb3Jlc28gd2hl
biB0aGUgd2luZG93IGlzIHNtYWxsLgorICAgICAgICBQYWdlIGNvbXBsZXhpdHkgaXMgbm90IHJl
YWxseSBhIGZ1bmN0aW9uIG9mIHRoZSB2aWV3cG9ydCBzaXplLgorCisgICAgICAgIFdlIGRyb3Ag
dGhlIG1pbmludW0gbWVtb3J5IGxpbWl0IGVudGlyZWx5LCBhbmQganVzdCBldmljdCBhbGwKKyAg
ICAgICAgdW5wcm90ZWN0ZWQgdGV4dHVyZXMgaW5zdGVhZC4KKworICAgICAgICBDb3ZlcmVkIGJ5
IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VGV4dHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hbmFnZXI6Omhp
Z2hMaW1pdEJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYW5hZ2VyOjpyZWNsYWlt
TGltaXRCeXRlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVy
ZU1hbmFnZXIuaDoKKyAgICAgICAgKFRleHR1cmVNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllclRyZWVIb3N0OjpiZWdpbkNvbW1pdE9uSW1wbFRocmVhZCk6CisgICAgICAg
IChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNldFZpc2libGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NMYXllclRyZWVIb3N0OjpkaWRCZWNvbWVJbnZpc2libGVPbkltcGxUaHJlYWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMpOgorCiAyMDEyLTA0
LTEyICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OKDExMjc0NSkgW0NTUyBGaWx0ZXJzXSBNZW1vcnkgdXNlIGV4cGxvc2lvbiBmb3Ig
b2Zmc2NyZWVuIGZpbHRlcmVkIGVsZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5jcHAKaW5kZXgg
MGM2ZmUxNGY5YWQ2NWZjMDJmMmQ1ZTQ5ZWY1MjU0NTMyNDJmYTZmYi4uZDRkOGMxODJjZmU1MjVm
NTYwMDg4YWExMjY2OThkOWQ5MzI0YWUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmNwcApAQCAt
MzksNiArMzksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2Ugewogc2l6ZV90IG1l
bW9yeUxpbWl0Qnl0ZXMoc2l6ZV90IHZpZXdwb3J0TXVsdGlwbGllciwgY29uc3QgSW50U2l6ZSYg
dmlld3BvcnRTaXplLCBzaXplX3QgbWluTWVnYWJ5dGVzLCBzaXplX3QgbWF4TWVnYWJ5dGVzKQog
eworICAgIGlmICghdmlld3BvcnRNdWx0aXBsaWVyKQorICAgICAgICByZXR1cm4gbWF4TWVnYWJ5
dGVzICogMTAyNCAqIDEwMjQ7CiAgICAgaWYgKHZpZXdwb3J0U2l6ZS5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBtaW5NZWdhYnl0ZXMgKiAxMDI0ICogMTAyNDsKICAgICByZXR1cm4gbWF4KG1p
bk1lZ2FieXRlcyAqIDEwMjQgKiAxMDI0LCBtaW4obWF4TWVnYWJ5dGVzICogMTAyNCAqIDEwMjQs
IHZpZXdwb3J0TXVsdGlwbGllciAqIFRleHR1cmVNYW5hZ2VyOjptZW1vcnlVc2VCeXRlcyh2aWV3
cG9ydFNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKSkpOwpAQCAtNDgsMTIgKzUwLDEzIEBA
IHNpemVfdCBtZW1vcnlMaW1pdEJ5dGVzKHNpemVfdCB2aWV3cG9ydE11bHRpcGxpZXIsIGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSwKIHNpemVfdCBUZXh0dXJlTWFuYWdlcjo6aGlnaExpbWl0
Qnl0ZXMoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKQogewogICAgIHNpemVfdCB2aWV3cG9y
dE11bHRpcGxpZXIsIG1pbk1lZ2FieXRlcywgbWF4TWVnYWJ5dGVzOwotICAgIHZpZXdwb3J0TXVs
dGlwbGllciA9IDEyOwogI2lmIE9TKEFORFJPSUQpCi0gICAgbWluTWVnYWJ5dGVzID0gMjQ7Ci0g
ICAgbWF4TWVnYWJ5dGVzID0gNDA7CisgICAgdmlld3BvcnRNdWx0aXBsaWVyID0gMTY7CisgICAg
bWluTWVnYWJ5dGVzID0gMzI7CisgICAgbWF4TWVnYWJ5dGVzID0gNjQ7CiAjZWxzZQotICAgIG1p
bk1lZ2FieXRlcyA9IDY0OworICAgIHZpZXdwb3J0TXVsdGlwbGllciA9IDA7CisgICAgbWluTWVn
YWJ5dGVzID0gMDsKICAgICBtYXhNZWdhYnl0ZXMgPSAxMjg7CiAjZW5kaWYKICAgICByZXR1cm4g
bWVtb3J5TGltaXRCeXRlcyh2aWV3cG9ydE11bHRpcGxpZXIsIHZpZXdwb3J0U2l6ZSwgbWluTWVn
YWJ5dGVzLCBtYXhNZWdhYnl0ZXMpOwpAQCAtNjIsMjYgKzY1LDE4IEBAIHNpemVfdCBUZXh0dXJl
TWFuYWdlcjo6aGlnaExpbWl0Qnl0ZXMoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKQogc2l6
ZV90IFRleHR1cmVNYW5hZ2VyOjpyZWNsYWltTGltaXRCeXRlcyhjb25zdCBJbnRTaXplJiB2aWV3
cG9ydFNpemUpCiB7CiAgICAgc2l6ZV90IHZpZXdwb3J0TXVsdGlwbGllciwgbWluTWVnYWJ5dGVz
LCBtYXhNZWdhYnl0ZXM7Ci0gICAgdmlld3BvcnRNdWx0aXBsaWVyID0gNjsKICNpZiBPUyhBTkRS
T0lEKQotICAgIG1pbk1lZ2FieXRlcyA9IDk7CisgICAgdmlld3BvcnRNdWx0aXBsaWVyID0gODsK
KyAgICBtaW5NZWdhYnl0ZXMgPSAxNjsKICAgICBtYXhNZWdhYnl0ZXMgPSAzMjsKICNlbHNlCi0g
ICAgbWluTWVnYWJ5dGVzID0gMzI7CisgICAgdmlld3BvcnRNdWx0aXBsaWVyID0gMDsKKyAgICBt
aW5NZWdhYnl0ZXMgPSAwOwogICAgIG1heE1lZ2FieXRlcyA9IDY0OwogI2VuZGlmCiAgICAgcmV0
dXJuIG1lbW9yeUxpbWl0Qnl0ZXModmlld3BvcnRNdWx0aXBsaWVyLCB2aWV3cG9ydFNpemUsIG1p
bk1lZ2FieXRlcywgbWF4TWVnYWJ5dGVzKTsKIH0KIAotc2l6ZV90IFRleHR1cmVNYW5hZ2VyOjps
b3dMaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKLXsKLSAgICBzaXplX3Qg
dmlld3BvcnRNdWx0aXBsaWVyLCBtaW5NZWdhYnl0ZXMsIG1heE1lZ2FieXRlczsKLSAgICB2aWV3
cG9ydE11bHRpcGxpZXIgPSAxOwotICAgIG1pbk1lZ2FieXRlcyA9IDI7Ci0gICAgbWF4TWVnYWJ5
dGVzID0gMzsKLSAgICByZXR1cm4gbWVtb3J5TGltaXRCeXRlcyh2aWV3cG9ydE11bHRpcGxpZXIs
IHZpZXdwb3J0U2l6ZSwgbWluTWVnYWJ5dGVzLCBtYXhNZWdhYnl0ZXMpOwotfQotCiBzaXplX3Qg
VGV4dHVyZU1hbmFnZXI6Om1lbW9yeVVzZUJ5dGVzKGNvbnN0IEludFNpemUmIHNpemUsIEdDM0Rl
bnVtIHRleHR1cmVGb3JtYXQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgYXNzdW1lcyBhbGwgdGV4
dHVyZXMgYXJlIDEgYnl0ZS9jb21wb25lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuaAppbmRleCBlNGQ2
ZDM4YjhjYjk4ZjViNzQ0YWVhYjkyZTJkYjFhMGZlNmRhZmFiLi43MGQwODYxYzU3ODZmYmVjMDI1
YjRjOTZjOTFiZThiZGRmZDU4ZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmgKQEAgLTYyLDggKzYy
LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBzaXplX3QgaGlnaExpbWl0Qnl0ZXMoY29uc3QgSW50
U2l6ZSYgdmlld3BvcnRTaXplKTsKICAgICAvLyBQcmVmZXJyZWQgdGV4dHVyZSBzaXplIGxpbWl0
IGdpdmVuIHRoZSB2aWV3cG9ydCBzaXplLgogICAgIHN0YXRpYyBzaXplX3QgcmVjbGFpbUxpbWl0
Qnl0ZXMoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKTsKLSAgICAvLyBUaGUgbWF4aW11bSB0
ZXh0dXJlIG1lbW9yeSB1c2FnZSB3aGVuIGFza2VkIHRvIHJlbGVhc2UgdGV4dHVyZXMuCi0gICAg
c3RhdGljIHNpemVfdCBsb3dMaW1pdEJ5dGVzKGNvbnN0IEludFNpemUmIHZpZXdwb3J0KTsKIAog
ICAgIHN0YXRpYyBzaXplX3QgbWVtb3J5VXNlQnl0ZXMoY29uc3QgSW50U2l6ZSYsIEdDM0RlbnVt
IGZvcm1hdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDhkNDdhNzk5
YTlkNDJkZjlkNTZmY2M0OGI2M2UxYmU1ZWJhMjRlNWMuLjgyODVhZmEzY2Y1MjFlOTliNzJkZjIx
MDk3MTFlNWE4NmY0N2FmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAt
MTk1LDcgKzE5NSw3IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpiZWdpbkNvbW1pdE9uSW1wbFRo
cmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKiBob3N0SW1wbCkKICAgICBBU1NFUlQoQ0NQcm94eTo6
aXNJbXBsVGhyZWFkKCkpOwogICAgIFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJlZUhvc3Q6OmNvbW1p
dFRvIiwgdGhpcywgMCk7CiAKLSAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnJlZHVjZU1l
bW9yeVRvTGltaXQoVGV4dHVyZU1hbmFnZXI6OnJlY2xhaW1MaW1pdEJ5dGVzKHZpZXdwb3J0U2l6
ZSgpKSk7CisgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5yZWR1Y2VNZW1vcnlUb0xpbWl0
KG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+cHJlZmVycmVkTWVtb3J5TGltaXRCeXRlcygpKTsK
ICAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPmRlbGV0ZUV2aWN0ZWRUZXh0dXJlcyhob3N0
SW1wbC0+Y29udGVudHNUZXh0dXJlQWxsb2NhdG9yKCkpOwogfQogCkBAIC0zNjMsNyArMzYzLDgg
QEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldFZpc2libGUoYm9vbCB2aXNpYmxlKQogICAgIG1f
dmlzaWJsZSA9IHZpc2libGU7CiAKICAgICBpZiAoIXZpc2libGUgJiYgbV9sYXllclJlbmRlcmVy
SW5pdGlhbGl6ZWQpIHsKLSAgICAgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5yZWR1Y2VN
ZW1vcnlUb0xpbWl0KFRleHR1cmVNYW5hZ2VyOjpsb3dMaW1pdEJ5dGVzKHZpZXdwb3J0U2l6ZSgp
KSk7CisgICAgICAgIC8vIERyb3AgYWxsIHVucHJvdGVjdGVkIHRleHR1cmVzLgorICAgICAgICBt
X2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnJlZHVjZU1lbW9yeVRvTGltaXQoMCk7CiAgICAgICAg
IG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+dW5wcm90ZWN0QWxsVGV4dHVyZXMoKTsKICAgICB9
CiAKQEAgLTM4Miw3ICszODMsNyBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6ZGlkQmVjb21lSW52
aXNpYmxlT25JbXBsVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGhvc3RJbQogICAgIGlmICht
X3Byb3h5LT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkuY29udGV4dEhhc0NhY2hlZEZyb250
QnVmZmVyKQogICAgICAgICBjb250ZW50c1RleHR1cmVNYW5hZ2VyKCktPmV2aWN0QW5kRGVsZXRl
QWxsVGV4dHVyZXMoaG9zdEltcGwtPmNvbnRlbnRzVGV4dHVyZUFsbG9jYXRvcigpKTsKICAgICBl
bHNlIHsKLSAgICAgICAgY29udGVudHNUZXh0dXJlTWFuYWdlcigpLT5yZWR1Y2VNZW1vcnlUb0xp
bWl0KFRleHR1cmVNYW5hZ2VyOjpyZWNsYWltTGltaXRCeXRlcyh2aWV3cG9ydFNpemUoKSkpOwor
ICAgICAgICBjb250ZW50c1RleHR1cmVNYW5hZ2VyKCktPnJlZHVjZU1lbW9yeVRvTGltaXQobV9j
b250ZW50c1RleHR1cmVNYW5hZ2VyLT5wcmVmZXJyZWRNZW1vcnlMaW1pdEJ5dGVzKCkpOwogICAg
ICAgICBjb250ZW50c1RleHR1cmVNYW5hZ2VyKCktPmRlbGV0ZUV2aWN0ZWRUZXh0dXJlcyhob3N0
SW1wbC0+Y29udGVudHNUZXh0dXJlQWxsb2NhdG9yKCkpOwogICAgIH0KIApAQCAtNDc0LDggKzQ3
NSw4IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMoTGF5ZXJDaHJvbWl1bSog
cm9vdExheWVyLCBDQ1RleHR1cmVVcGRhdGVyJiB1CiAgICAgaWYgKCFtX3RyaWdnZXJJZGxlUGFp
bnRzKQogICAgICAgICByZXR1cm47CiAKLSAgICBzaXplX3QgcHJlZmVycmVkTGltaXRCeXRlcyA9
IFRleHR1cmVNYW5hZ2VyOjpyZWNsYWltTGltaXRCeXRlcyhtX3ZpZXdwb3J0U2l6ZSk7Ci0gICAg
c2l6ZV90IG1heExpbWl0Qnl0ZXMgPSBUZXh0dXJlTWFuYWdlcjo6aGlnaExpbWl0Qnl0ZXMobV92
aWV3cG9ydFNpemUpOworICAgIHNpemVfdCBwcmVmZXJyZWRMaW1pdEJ5dGVzID0gbV9jb250ZW50
c1RleHR1cmVNYW5hZ2VyLT5wcmVmZXJyZWRNZW1vcnlMaW1pdEJ5dGVzKCk7CisgICAgc2l6ZV90
IG1heExpbWl0Qnl0ZXMgPSBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPm1heE1lbW9yeUxpbWl0
Qnl0ZXMoKTsKICAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnJlZHVjZU1lbW9yeVRvTGlt
aXQocHJlZmVycmVkTGltaXRCeXRlcyk7CiAgICAgaWYgKG1fY29udGVudHNUZXh0dXJlTWFuYWdl
ci0+Y3VycmVudE1lbW9yeVVzZUJ5dGVzKCkgPj0gcHJlZmVycmVkTGltaXRCeXRlcykKICAgICAg
ICAgcmV0dXJuOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>