<?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>90325</bug_id>
          
          <creation_ts>2012-06-29 17:11:18 -0700</creation_ts>
          <short_desc>[chromium] Use shallow flushes that don&apos;t glFlush</short_desc>
          <delta_ts>2012-07-23 19:04:19 -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>
          <dependson>89035</dependson>
    
    <dependson>91793</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Anderson">brianderson</reporter>
          <assigned_to name="Brian Anderson">brianderson</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>nduca</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>660876</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-06-29 17:11:18 -0700</bug_when>
    <thetext>Shallow flushes that don&apos;t glFlush</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660877</commentid>
    <comment_count>1</comment_count>
      <attachid>150277</attachid>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-06-29 17:14:16 -0700</bug_when>
    <thetext>Created attachment 150277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662620</commentid>
    <comment_count>2</comment_count>
      <attachid>150702</attachid>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-03 18:05:17 -0700</bug_when>
    <thetext>Created attachment 150702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666405</commentid>
    <comment_count>3</comment_count>
      <attachid>150702</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-07-10 23:31:47 -0700</bug_when>
    <thetext>Comment on attachment 150702
Patch

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

You&apos;ll need to rebase so you&apos;re ToT. This patch isn&apos;t cleanly applying.

&gt; Source/Platform/chromium/public/WebGraphicsContext3D.h:266
&gt; +    virtual void shallowFlush() { };

Look at the other extensions, I think you&apos;ll find that they suffix these methods with CHROMIUM, e.g. texImageIOSurface2DCHROMIUM. They&apos;re also supposed to be put down at the bottom of the file, with a // block with the extension name they&apos;re part of.

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:690
&gt; +#if PLATFORM(CHROMIUM)

You shouldnt edit gc3d, that&apos;s common code.

Chrome-specific extensions go on Extensions3DChromium. Look at some of the methods there and grep for their name to see how the plumbing for that is done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669632</commentid>
    <comment_count>4</comment_count>
      <attachid>152386</attachid>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-13 17:45:15 -0700</bug_when>
    <thetext>Created attachment 152386
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671525</commentid>
    <comment_count>5</comment_count>
      <attachid>152386</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-07-17 13:17:21 -0700</bug_when>
    <thetext>Comment on attachment 152386
Patch

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

+kbr for real review. I&apos;m happy +/- minor nits.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCGraphicsContext.h:57
&gt; +    void shallowFlushCHROMIUM()

What if the flush extension is not supported? I think since this code wraps a GC3D, we could make it probe the context for support of the extension and store that support as a member var. If its not supported, this could degrade to a flush, which I like more. Then you could make this method name just shallowestFlushIfPossible. Or something like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671540</commentid>
    <comment_count>6</comment_count>
      <attachid>152386</attachid>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-17 13:37:20 -0700</bug_when>
    <thetext>Comment on attachment 152386
Patch

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

Rebased patch set incoming.

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCGraphicsContext.h:57
&gt;&gt; +    void shallowFlushCHROMIUM()
&gt; 
&gt; What if the flush extension is not supported? I think since this code wraps a GC3D, we could make it probe the context for support of the extension and store that support as a member var. If its not supported, this could degrade to a flush, which I like more. Then you could make this method name just shallowestFlushIfPossible. Or something like that.

I considered degrading to a glFlush, but I think we want to stay away from the overhead of glFlushes if possible.  For example, this extension is not supported by WebGraphicsContext3DInProcessImpl.  Do we want to degrade to glFlush in that case?

I saw a comment somewhere that if an extension is not supported, calling it on a GC3D should not have any side effects.  I could check for it more explicitly though so that it is clear this extension isn&apos;t supported by all WGC3D&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671680</commentid>
    <comment_count>7</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-07-17 15:48:49 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 152386 [details])
&gt; 
&gt; I considered degrading to a glFlush, but I think we want to stay away from the overhead of glFlushes if possible.  For example, this extension is not supported by WebGraphicsContext3DInProcessImpl.  Do we want to degrade to glFlush in that case?

That&apos;s what we&apos;re doing now and its a win. But, if you&apos;re really worried, then I&apos;d rather that it check for support and not make the call, then have it make a call that inside is assumed to just noop.

You don&apos;t want to check for an extension every time you call this. So you should add a method to CCGraphicsContext that caches the value for you, maybe. E.g. supportsShallowFlush?

&gt; I saw a comment somewhere that if an extension is not supported, calling it on a GC3D should not have any side effects.  I could check for it more explicitly though so that it is clear this extension isn&apos;t supported by all WGC3D&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673113</commentid>
    <comment_count>8</comment_count>
      <attachid>153165</attachid>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-18 20:01:02 -0700</bug_when>
    <thetext>Created attachment 153165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673114</commentid>
    <comment_count>9</comment_count>
      <attachid>153165</attachid>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-18 20:06:34 -0700</bug_when>
    <thetext>Comment on attachment 153165
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCGraphicsContext.h:86
&gt; +    void shallowFlushWithFallbackOnFlush()

Ended up going with the glFlush fallback but wanted to double check: Why do we want to glFlush() for the in-thread case but not the command buffer case?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:725
&gt; +        m_context-&gt;initializeOnImplThread();

I was getting crashes if I didn&apos;t initialize on the impl thread.  Is there a better method to initialize the m_context on the impl thread?

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp:1723
&gt; +                .WillByDefault(Return(WebString(&quot;&quot;)));

Is there a prettier way of doing this?  CCGraphicsContext initialization fails in this test otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673122</commentid>
    <comment_count>10</comment_count>
      <attachid>153165</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-07-18 20:45:21 -0700</bug_when>
    <thetext>Comment on attachment 153165
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCGraphicsContext.h:54
&gt; +    void initializeOnImplThread()

We do this already by calling makeCurrent. How about making the call in LRC to makeCurrent go through CCGraphicsContext instead of the GC3D. This can then do its one-off init code, and then call down to the wgc3d makecurrent.

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCGraphicsContext.h:86
&gt;&gt; +    void shallowFlushWithFallbackOnFlush()
&gt; 
&gt; Ended up going with the glFlush fallback but wanted to double check: Why do we want to glFlush() for the in-thread case but not the command buffer case?

Well, when you put it that way, its a fair point. If we&apos;re doing in-process GL, the glFlush is I guess a noop, right? I hadn&apos;t really thought that through last night when I was giving you feedback, my apologies. The case I had in mind was downstream folks who use CC for their compositor, e.g. Blackberry used to use Chromium Compositor. For that sort of use case, they dont have all our extensions. When I was thinking about this the other day, i was thinking &quot;gee, they&apos;d still want the flush.&quot; But, now I&apos;m sort of realizing that that isn&apos;t the case.

Suppose we make this shallowFlushIfNeeded, where if its not supported, its a nop as you originally (correctly) suggested.

Can land the chromium-side of this change first? If we land this side of the patch first, then we&apos;d have a period of time where the compositor simply stops flushing on texture uploads. That&apos;s a complication we would be better off avoiding.

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:725
&gt;&gt; +        m_context-&gt;initializeOnImplThread();
&gt; 
&gt; I was getting crashes if I didn&apos;t initialize on the impl thread.  Is there a better method to initialize the m_context on the impl thread?

There should be some code in this same function that makes the context current. Hook that if you can?

&gt;&gt; Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp:1723
&gt;&gt; +                .WillByDefault(Return(WebString(&quot;&quot;)));
&gt; 
&gt; Is there a prettier way of doing this?  CCGraphicsContext initialization fails in this test otherwise.

This seems fine. I&apos;m not sure if we have a best-known-method for this. I might just implement the function if I had tried it. I guess I have no opinion. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673791</commentid>
    <comment_count>11</comment_count>
      <attachid>153165</attachid>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-19 12:32:57 -0700</bug_when>
    <thetext>Comment on attachment 153165
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCGraphicsContext.h:54
&gt;&gt; +    void initializeOnImplThread()
&gt; 
&gt; We do this already by calling makeCurrent. How about making the call in LRC to makeCurrent go through CCGraphicsContext instead of the GC3D. This can then do its one-off init code, and then call down to the wgc3d makecurrent.

Looks like doing that is going to get ugly.  I see four options:
1) Use m_context-&gt;context3D() everywhere m_context is used in LRC (139 places).
2) Fill out the implementation of CCGraphicsContext.
3) Keep it as is.

1 and 2 are going to be more invasive than 3, but are also less error prone.

I&apos;m going to go with 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673869</commentid>
    <comment_count>12</comment_count>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-19 13:33:13 -0700</bug_when>
    <thetext>Using CCGraphicsContext inside of the LRC is turned out to be more invasive than I thought.  I got it working, but I no longer think it&apos;s worth it just for CCGraphicsContext initialization - unless we want to use CCGraphicsContext inside the LRC in the future anyway.

Nat, are you okay with sticking to the initializeOnImplThread() as it is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673895</commentid>
    <comment_count>13</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-07-19 13:59:43 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Using CCGraphicsContext inside of the LRC is turned out to be more invasive than I thought.  I got it working, but I no longer think it&apos;s worth it just for CCGraphicsContext initialization - unless we want to use CCGraphicsContext inside the LRC in the future anyway.
&gt; 
&gt; Nat, are you okay with sticking to the initializeOnImplThread() as it is?


NO</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674028</commentid>
    <comment_count>14</comment_count>
      <attachid>153370</attachid>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-19 16:17:45 -0700</bug_when>
    <thetext>Created attachment 153370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674029</commentid>
    <comment_count>15</comment_count>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-19 16:19:42 -0700</bug_when>
    <thetext>This patch is on top of the patch in bug 91793 and does initialization in the makeContextCurrent method of CCGraphicsContext.

I agree with waiting for the chromium patches to land first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675074</commentid>
    <comment_count>16</comment_count>
      <attachid>153619</attachid>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-20 16:41:52 -0700</bug_when>
    <thetext>Created attachment 153619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675075</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-20 16:43:44 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675085</commentid>
    <comment_count>18</comment_count>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-20 16:53:29 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.

Hmm, I think I may have hit a button I wasn&apos;t supposed to hit yet.  I was trying to get the sanity checks to run.  Assuming they&apos;re all green though, I think this patch is good to go after http://codereview.chromium.org/10782005 lands.

Note: Bug 91793 is no longer a dependency as there were other commits yesterday that simplified this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675865</commentid>
    <comment_count>19</comment_count>
      <attachid>153619</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-07-23 11:55:32 -0700</bug_when>
    <thetext>Comment on attachment 153619
Patch

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

Looks fine overall. One question. r=me; please mark cq? if the answer to the question above is &quot;yes&quot;.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.cpp:105
&gt; +                resourceProvider-&gt;shallowFlushIfSupported();

Is the change from &quot;flush&quot; to &quot;shallow flush&quot; correct in all cases? In other words, the flushes before were only to &quot;kick&quot; the command processor, and weren&apos;t needed for correctness at the OpenGL level?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675940</commentid>
    <comment_count>20</comment_count>
      <attachid>153619</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-07-23 13:22:14 -0700</bug_when>
    <thetext>Comment on attachment 153619
Patch

Looks great Brian.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676270</commentid>
    <comment_count>21</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-07-23 18:10:35 -0700</bug_when>
    <thetext>OK. Setting cq+ based on Nat&apos;s additional feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676280</commentid>
    <comment_count>22</comment_count>
      <attachid>153619</attachid>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-07-23 18:17:49 -0700</bug_when>
    <thetext>Comment on attachment 153619
Patch

Thanks Ken.  I should have mentioned I was waiting for the chromium side of this patch to land before setting cq+.  It already landed earlier today, so we should be good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676313</commentid>
    <comment_count>23</comment_count>
      <attachid>153619</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-23 19:04:13 -0700</bug_when>
    <thetext>Comment on attachment 153619
Patch

Clearing flags on attachment: 153619

Committed r123416: &lt;http://trac.webkit.org/changeset/123416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676314</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-23 19:04:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150277</attachid>
            <date>2012-06-29 17:14:16 -0700</date>
            <delta_ts>2012-07-03 18:05:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90325-20120629171415.patch</filename>
            <type>text/plain</type>
            <size>8610</size>
            <attacher name="Brian Anderson">brianderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggMGU0MGY1ZmFhNGU5
NWRjNzJlNmY1NWFhOThjZGFjYjYwMWU0MDUyMi4uZTA1NjUzMzIzMjBhMjRjMjk3OGY1ZDY4NmNm
NGU2OTc3MWNlYmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMjYzLDYgKzI2Myw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoV0dDM0R1aW50IGluZGV4
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Zmx1c2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNoYWxsb3dGbHVzaCgpIHsgfTsKICAgICB2
aXJ0dWFsIHZvaWQgZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoV0dDM0RlbnVtIHRhcmdldCwgV0dD
M0RlbnVtIGF0dGFjaG1lbnQsIFdHQzNEZW51bSByZW5kZXJidWZmZXJ0YXJnZXQsIFdlYkdMSWQg
cmVuZGVyYnVmZmVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJE
KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBhdHRhY2htZW50LCBXR0MzRGVudW0gdGV4dGFy
Z2V0LCBXZWJHTElkIHRleHR1cmUsIFdHQzNEaW50IGxldmVsKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGZyb250RmFjZShXR0MzRGVudW0gbW9kZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENo
cm9taXVtLmNwcAppbmRleCBhNjRhNzdlZmE1MDA2Zjg0NzgyODVhODEyN2FhNmE5YzIyNDEwZDY0
Li4yNjEyNjUxZmQ5ZTQyMjU3NWE3ZjVkODg4MDkwMDU4MmJiYjdiMDM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENocm9t
aXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0V4
dGVuc2lvbnMzRENocm9taXVtLmNwcApAQCAtNTgsNiArNTgsMTEgQEAgYm9vbCBFeHRlbnNpb25z
M0RDaHJvbWl1bTo6aXNFbmFibGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICByZXR1cm4gbV9w
cml2YXRlLT5pc0V4dGVuc2lvbkVuYWJsZWQobmFtZSk7CiB9CiAKK3ZvaWQgRXh0ZW5zaW9uczNE
Q2hyb21pdW06OnNoYWxsb3dGbHVzaCgpCit7CisgICAgbV9wcml2YXRlLT53ZWJDb250ZXh0KCkt
PnNoYWxsb3dGbHVzaCgpOworfQorCiBpbnQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmdldEdyYXBo
aWNzUmVzZXRTdGF0dXNBUkIoKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KG1fcHJp
dmF0ZS0+d2ViQ29udGV4dCgpLT5nZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0Nv
bnRleHQzRENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAKaW5kZXggZDAyMGFjYzM4MWQ3MmNm
YjE1MjM0OGE4NGFiODFhZTRmZjA4OTZhNy4uNmQ4ZWFhYmFjMzJhYjJlZWU0MjE0OTNlZGEyNDRk
MDE0YjE5MTRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3Bw
CkBAIC0yODQsNiArMjg0LDcgQEAgREVMRUdBVEVfVE9fV0VCQ09OVEVYVF8xKGVuYWJsZSwgR0Mz
RGVudW0pCiBERUxFR0FURV9UT19XRUJDT05URVhUXzEoZW5hYmxlVmVydGV4QXR0cmliQXJyYXks
IEdDM0R1aW50KQogREVMRUdBVEVfVE9fV0VCQ09OVEVYVChmaW5pc2gpCiBERUxFR0FURV9UT19X
RUJDT05URVhUKGZsdXNoKQorREVMRUdBVEVfVE9fV0VCQ09OVEVYVChzaGFsbG93Rmx1c2gpCiBE
RUxFR0FURV9UT19XRUJDT05URVhUXzQoZnJhbWVidWZmZXJSZW5kZXJidWZmZXIsIEdDM0RlbnVt
LCBHQzNEZW51bSwgR0MzRGVudW0sIFBsYXRmb3JtM0RPYmplY3QpCiBERUxFR0FURV9UT19XRUJD
T05URVhUXzUoZnJhbWVidWZmZXJUZXh0dXJlMkQsIEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVu
dW0sIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQpCiBERUxFR0FURV9UT19XRUJDT05URVhUXzEo
ZnJvbnRGYWNlLCBHQzNEZW51bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDExM2QzY2ZhZmYzMWJlYzQ2MWY2MzIz
MTNkYzllODRiZDBjNzdhZGQuLjMxY2YwMWMyMmQ1OWFjOTk4OTZlNmQxZjZhNzhiN2RiM2FiYTJl
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaApAQCAtNjg4LDYgKzY4OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJs
ZVZlcnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KTsKICAgICB2b2lkIGZpbmlzaCgpOwog
ICAgIHZvaWQgZmx1c2goKTsKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICB2b2lkIHNoYWxs
b3dGbHVzaCgpOworI2VuZGlmCiAgICAgdm9pZCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHQzNE
ZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHJlbmRlcmJ1ZmZlcnRh
cmdldCwgUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmUyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHRleHRhcmdldCwg
UGxhdGZvcm0zRE9iamVjdCwgR0MzRGludCBsZXZlbCk7CiAgICAgdm9pZCBmcm9udEZhY2UoR0Mz
RGVudW0gbW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAppbmRleCA5MjgyMTM2
MGJhYTk2ZDQ5MmJkYWZhN2YyZWNkNTc1MTgzZDhlOTUzLi5jOTc1NjA5NmM1MTBmZTc0YWQ0NWI5
MzY1Y2U3OWY4NTg3NmYxNjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgKQEAg
LTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0cyhjb25zdCBT
dHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgZW5zdXJlRW5hYmxlZChjb25zdCBTdHJpbmcmKTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwg
dm9pZCBzaGFsbG93Rmx1c2goKTsKICAgICB2aXJ0dWFsIGludCBnZXRHcmFwaGljc1Jlc2V0U3Rh
dHVzQVJCKCk7CiAgICAgdmlydHVhbCB2b2lkIGJsaXRGcmFtZWJ1ZmZlcihsb25nIHNyY1gwLCBs
b25nIHNyY1kwLCBsb25nIHNyY1gxLCBsb25nIHNyY1kxLCBsb25nIGRzdFgwLCBsb25nIGRzdFkw
LCBsb25nIGRzdFgxLCBsb25nIGRzdFkxLCB1bnNpZ25lZCBsb25nIG1hc2ssIHVuc2lnbmVkIGxv
bmcgZmlsdGVyKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2Ft
cGxlKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIHNhbXBsZXMsIHVuc2lnbmVk
IGxvbmcgaW50ZXJuYWxmb3JtYXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcg
aGVpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDExOTY0M2RkOGVl
MjMwM2NkMjNlODkwYzgyZjc4MWJkNmMzNDcxMDYuLjg3OWFhN2I5OTYxYTYzMzAwZGZkNWYyYmU5
ZDZhNzYyNDM3ZjE5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NHcmFwaGljc0NvbnRleHQuaApAQCAtNTEs
NiArNTEsMTEgQEAgcHVibGljOgogICAgICAgICBtX2NvbnRleHQzRC0+Zmx1c2goKTsKICAgICB9
CiAKKyAgICB2b2lkIHNoYWxsb3dGbHVzaCgpCisgICAgeworICAgICAgICBtX2NvbnRleHQzRC0+
c2hhbGxvd0ZsdXNoKCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIENDR3JhcGhpY3NDb250ZXh0
KCkgeyB9CiAgICAgZXhwbGljaXQgQ0NHcmFwaGljc0NvbnRleHQoUGFzc1JlZlB0cjxHcmFwaGlj
c0NvbnRleHQzRD4gY29udGV4dDNEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNwcApp
bmRleCAzY2E0ZGQ3OGM2YTczNzdhMDAyOTA2YzFlNjJhMjcwYmQ5YjI2OWFkLi40OGRiZTBhOWIw
NzJjM2Y3YmYzYTUxNWM2YTc4MTcxYmU0ZTE5ZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVV
cGRhdGVyLmNwcApAQCAtMTAxLDEyICsxMDEsMTIgQEAgdm9pZCBDQ1RleHR1cmVVcGRhdGVyOjp1
cGRhdGUoQ0NHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFRleHR1cmVBbGxvY2F0b3IqIGFsbG8K
ICAgICAgICAgICAgIHVwbG9hZGVyLT51cGxvYWRUZXh0dXJlKGNvbnRleHQsIGVudHJ5LnRleHR1
cmUsIGFsbG9jYXRvciwgZW50cnkuc291cmNlUmVjdCwgZW50cnkuZGVzdFJlY3QpOwogICAgICAg
ICAgICAgdXBsb2FkQ291bnQrKzsKICAgICAgICAgICAgIGlmICghKHVwbG9hZENvdW50ICUga1Vw
bG9hZEZsdXNoUGVyaW9kKSkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5mbHVzaCgpOworICAg
ICAgICAgICAgICAgIGNvbnRleHQtPnNoYWxsb3dGbHVzaCgpOwogICAgICAgICB9CiAKICAgICAg
ICAgLy8gTWFrZSBzdXJlIHRoZXJlIGFyZSBubyBkYW5nbGluZyB1cGxvYWRzIHdpdGhvdXQgYSBm
bHVzaC4KICAgICAgICAgaWYgKHVwbG9hZENvdW50ICUga1VwbG9hZEZsdXNoUGVyaW9kKQotICAg
ICAgICAgICAgY29udGV4dC0+Zmx1c2goKTsKKyAgICAgICAgICAgIGNvbnRleHQtPnNoYWxsb3dG
bHVzaCgpOwogCiAgICAgICAgIGJvb2wgbW9yZVVwbG9hZHMgPSBtYXhJbmRleCA8IG1fZW50cmll
cy5zaXplKCk7CiAKQEAgLTEyOCwxMiArMTI4LDEyIEBAIHZvaWQgQ0NUZXh0dXJlVXBkYXRlcjo6
dXBkYXRlKENDR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBUZXh0dXJlQWxsb2NhdG9yKiBhbGxv
CiAgICAgICAgICAgICB1cGxvYWRlci0+dXBsb2FkVGV4dHVyZShjb250ZXh0LCBlbnRyeS50ZXh0
dXJlLCBhbGxvY2F0b3IsIGVudHJ5LnNvdXJjZVJlY3QsIGVudHJ5LmRlc3RSZWN0KTsKICAgICAg
ICAgICAgIHBhcnRpYWxVcGxvYWRDb3VudCsrOwogICAgICAgICAgICAgaWYgKCEocGFydGlhbFVw
bG9hZENvdW50ICUga1VwbG9hZEZsdXNoUGVyaW9kKSkKLSAgICAgICAgICAgICAgICBjb250ZXh0
LT5mbHVzaCgpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPnNoYWxsb3dGbHVzaCgpOwogICAg
ICAgICB9CiAKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZXJlIGFyZSBubyBkYW5nbGluZyBwYXJ0
aWFsIHVwbG9hZHMgd2l0aG91dCBhIGZsdXNoLgogICAgICAgICBpZiAocGFydGlhbFVwbG9hZENv
dW50ICUga1VwbG9hZEZsdXNoUGVyaW9kKQotICAgICAgICAgICAgY29udGV4dC0+Zmx1c2goKTsK
KyAgICAgICAgICAgIGNvbnRleHQtPnNoYWxsb3dGbHVzaCgpOwogCiAgICAgICAgIHVwbG9hZGVy
LT5lbmRVcGxvYWRzKCk7CiAgICAgfQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgQ0NUZXh0dXJl
VXBkYXRlcjo6dXBkYXRlKENDR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBUZXh0dXJlQWxsb2Nh
dG9yKiBhbGxvCiAgICAgLy8gYmVmb3JlIGxldHRpbmcgdGhlIG1haW4gdGhyZWFkIHByb2NlZWQg
YXMgaXQgbWF5IG1ha2UgZHJhdyBjYWxscyB0byB0aGUgc291cmNlIHRleHR1cmUgb2Ygb25lIG9m
CiAgICAgLy8gb3VyIGNvcHkgb3BlcmF0aW9ucy4KICAgICBpZiAobV9jb3B5RW50cmllcy5zaXpl
KCkpIHsKLSAgICAgICAgY29udGV4dC0+Zmx1c2goKTsKKyAgICAgICAgY29udGV4dC0+c2hhbGxv
d0ZsdXNoKCk7CiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyBwYXRoIGZvciBzb2Z0
d2FyZSBjb21wb3NpdGluZy4KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NUZXh0dXJlVXBkYXRlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVyVGVzdC5jcHAKaW5kZXggMGE4NzI4ZGQxYTgzMmFh
ZDZjODkzOTgyNjkyZmEyM2I0NjYzNjQxOS4uNDRhMDRjMDMzYjBkMDVmMmZhMzc0NDEyZDkxYzM4
N2M1MTQ0MTcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Rl
eHR1cmVVcGRhdGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q1RleHR1cmVVcGRhdGVyVGVzdC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgY29uc3QgaW50IGtGbHVz
aFBlcmlvZFBhcnRpYWwgPSBrRmx1c2hQZXJpb2Q7CiAKIGNsYXNzIE1vY2tDYW52YXNDb250ZXh0
IDogcHVibGljIEZha2VXZWJHcmFwaGljc0NvbnRleHQzRCB7CiBwdWJsaWM6Ci0gICAgTU9DS19N
RVRIT0QwKGZsdXNoLCB2b2lkKHZvaWQpKTsKKyAgICBNT0NLX01FVEhPRDAoc2hhbGxvd0ZsdXNo
LCB2b2lkKHZvaWQpKTsKICAgICBNT0NLX01FVEhPRDAoY3JlYXRlVGV4dHVyZSwgdW5zaWduZWQo
dm9pZCkpOwogICAgIE1PQ0tfTUVUSE9EMShkZWxldGVUZXh0dXJlLCB2b2lkKHVuc2lnbmVkKSk7
CiAKQEAgLTE5MCw3ICsxOTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICAgICAgKCh1cGxv
YWRDb3VudCArIGtGbHVzaFBlcmlvZCAtIDEpIC8ga0ZsdXNoUGVyaW9kKSArCiAgICAgICAgICAg
ICAgICAgKChwYXJ0aWFsQ291bnQgKyBrRmx1c2hQZXJpb2RQYXJ0aWFsIC0gMSkgLyBrRmx1c2hQ
ZXJpb2RQYXJ0aWFsKTsKIAotICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZmx1c2goKSkK
KyAgICAgICAgRVhQRUNUX0NBTEwobWFpbk1vY2ssIHNoYWxsb3dGbHVzaCgpKQogICAgICAgICAg
ICAgICAgIC5UaW1lcyhFeGFjdGx5KGV4cGVjdGVkRmx1c2hDb3VudCkpOwogICAgICAgICBFWFBF
Q1RfQ0FMTCh1cGxvYWRlck1vY2ssIHVwbG9hZFRleHR1cmUoXywgXywgXywgXywgXykpCiAgICAg
ICAgICAgICAgICAgLlRpbWVzKEV4YWN0bHkodG90YWxDb3VudCkpOwpAQCAtMjAwLDcgKzIwMCw3
IEBAIHByb3RlY3RlZDoKICAgICAgICAgLy8gTW9yZSBpbnRlcmVzdGluZyBjaGVja3M6CiAgICAg
ICAgIC8vIE5vIGJhY2sgdG8gYmFjayBmbHVzaGVzLCB0b28gbWFueSBjb25zZWN1dGl2ZSB1cGxv
YWRzLCBldGMuCiAgICAgICAgIEdsb2JhbFRyYWNrZXIgZ2xvYmFsVHJhY2tlcih1cGxvYWRDb3Vu
dCwgcGFydGlhbENvdW50KTsKLSAgICAgICAgT05fQ0FMTChtYWluTW9jaywgZmx1c2goKSkKKyAg
ICAgICAgT05fQ0FMTChtYWluTW9jaywgc2hhbGxvd0ZsdXNoKCkpCiAgICAgICAgICAgICAgICAg
LldpbGxCeURlZmF1bHQoSW52b2tlV2l0aG91dEFyZ3MoJmdsb2JhbFRyYWNrZXIsICZHbG9iYWxU
cmFja2VyOjpvbkZsdXNoKSk7CiAgICAgICAgIE9OX0NBTEwodXBsb2FkZXJNb2NrLCB1cGxvYWRU
ZXh0dXJlKF8sIF8sIF8sIF8sIF8pKQogICAgICAgICAgICAgICAgIC5XaWxsQnlEZWZhdWx0KElu
dm9rZVdpdGhvdXRBcmdzKCZnbG9iYWxUcmFja2VyLCAmR2xvYmFsVHJhY2tlcjo6b25VcGxvYWQp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150702</attachid>
            <date>2012-07-03 18:05:17 -0700</date>
            <delta_ts>2012-07-13 17:45:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90325-20120703180516.patch</filename>
            <type>text/plain</type>
            <size>8337</size>
            <attacher name="Brian Anderson">brianderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAwMzNmY2IyY2Y5ODgz
YTE3NGFlYjBmMTU5MTBmYWJhN2NiOTc0MDMwLi4zYmVmMDZmNDVhOWE3NjM0Y2NhYmUyZTdjN2Zk
ODE3MTFmMTFlYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNy0wMyAg
QnJpYW4gQW5kZXJzb24gIDxicmlhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2hh
bGxvdyBmbHVzaGVzIHRoYXQgZG9uJ3QgZ2xGbHVzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRl
eHQzRC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6c2hhbGxvd0Zs
dXNoKToKKwogMjAxMi0wNS0zMCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgTWVtb3J5VXNhZ2VTdXBwb3J0Ojpwcm9j
ZXNzTWVtb3J5U2l6ZXNJbkJ5dGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODJiZDI3YjgzNjA3NjdjZDhlZDUx
YjU5ODdlNjIzNDkwYjA1OWRmOC4uNTc0YjBlOGEzOTNmYTBkMWU3MmMwZDNiOTgxYWMwZTM0MjM4
MTY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDEyLTA3LTAzICBCcmlhbiBBbmRl
cnNvbiAgPGJyaWFuZGVyc29uQGNocm9taXVtLm9yZz4KIAorICAgICAgICBTaGFsbG93IGZsdXNo
ZXMgdGhhdCBkb24ndCBnbEZsdXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MDMyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENDVGV4dHVyZVVwZGF0ZXJUZXN0IHVzZXMgc2hhbGxvd0ZsdXNoZXMgbm93
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZSk6CisKKzIwMTIt
MDctMDMgIEJyaWFuIEFuZGVyc29uICA8YnJpYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCiAgICAg
ICAgIEFkZCBmbHVzaGVzIHRvIENDVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZQogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkwMzUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA3NzNiZWJkNmQ4ZmJhNDVjZDQyZWZkZDU3MzM4MTRkM2VmMWVhZjQx
Li42Yzk4OTM2MTI3OTVhYWU1ZmY1MmM2NjJiOTJlNzUxMmQwZGJlYjM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDEyLTA3LTAzICBCcmlhbiBBbmRlcnNv
biAgPGJyaWFuZGVyc29uQGNocm9taXVtLm9yZz4KIAorICAgICAgICBTaGFsbG93IGZsdXNoZXMg
dGhhdCBkb24ndCBnbEZsdXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MDMyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOgorICAg
ICAgICAoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKToKKyAgICAgICAgKiB0ZXN0cy9DQ1RleHR1
cmVVcGRhdGVyVGVzdC5jcHA6CisKKzIwMTItMDctMDMgIEJyaWFuIEFuZGVyc29uICA8YnJpYW5k
ZXJzb25AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIEFkZCBmbHVzaGVzIHRvIENDVGV4dHVyZVVw
ZGF0ZXI6OnVwZGF0ZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODkwMzUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJHcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDBlNDBmNWZhYTRlOTVkYzcyZTZmNTVhYTk4
Y2RhY2I2MDFlNDA1MjIuLmUwNTY1MzMyMzIwYTI0YzI5NzhmNWQ2ODZjZjRlNjk3NzFjZWJkN2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3ND
b250ZXh0M0QuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBo
aWNzQ29udGV4dDNELmgKQEAgLTI2Myw2ICsyNjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGVuYWJsZVZlcnRleEF0dHJpYkFycmF5KFdHQzNEdWludCBpbmRleCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBmaW5pc2goKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzaGFsbG93Rmx1c2goKSB7IH07CiAgICAgdmlydHVhbCB2b2lkIGZy
YW1lYnVmZmVyUmVuZGVyYnVmZmVyKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBhdHRhY2ht
ZW50LCBXR0MzRGVudW0gcmVuZGVyYnVmZmVydGFyZ2V0LCBXZWJHTElkIHJlbmRlcmJ1ZmZlcikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmUyRChXR0MzRGVudW0gdGFy
Z2V0LCBXR0MzRGVudW0gYXR0YWNobWVudCwgV0dDM0RlbnVtIHRleHRhcmdldCwgV2ViR0xJZCB0
ZXh0dXJlLCBXR0MzRGludCBsZXZlbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmcm9udEZhY2Uo
V0dDM0RlbnVtIG1vZGUpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDY5MmRhNTZhNTM3YTJhNmRhNWU1ZTIz
MWM2MDU4NDU0YWU1MGQ0OWMuLjlmNGFiZGZmYzYxNTcxNDk4YjlkNTNhYTkwOTU5OGJlMTA3ZDg3
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaApAQCAtNjg3LDYgKzY4Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJs
ZVZlcnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KTsKICAgICB2b2lkIGZpbmlzaCgpOwog
ICAgIHZvaWQgZmx1c2goKTsKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICB2b2lkIHNoYWxs
b3dGbHVzaCgpOworI2VuZGlmCiAgICAgdm9pZCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHQzNE
ZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHJlbmRlcmJ1ZmZlcnRh
cmdldCwgUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmUyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHRleHRhcmdldCwg
UGxhdGZvcm0zRE9iamVjdCwgR0MzRGludCBsZXZlbCk7CiAgICAgdm9pZCBmcm9udEZhY2UoR0Mz
RGVudW0gbW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwCmluZGV4IGY3NWZm
ZTY1NDVjY2MyMGZjNjNkZWZkYWNiNTVhZDc0ZmJmYjY4NjEuLmJlZDQ2YTBiNmIyN2Q2YTdlNWY5
ZWUyZjNlZjJmMTVlMjAzNTFkZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3Bw
CkBAIC0xMTEsMTIgKzExMSwxMiBAQCB2b2lkIENDVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZShHcmFw
aGljc0NvbnRleHQzRCogY29udGV4dCwgVGV4dHVyZUFsbG9jYXRvciogYWxsbwogICAgICAgICAg
ICAgdXBsb2FkZXItPnVwbG9hZFRleHR1cmUoY29udGV4dCwgZW50cnkudGV4dHVyZSwgYWxsb2Nh
dG9yLCBlbnRyeS5zb3VyY2VSZWN0LCBlbnRyeS5kZXN0UmVjdCk7CiAgICAgICAgICAgICB1cGxv
YWRDb3VudCsrOwogICAgICAgICAgICAgaWYgKCEodXBsb2FkQ291bnQgJSBrVXBsb2FkRmx1c2hQ
ZXJpb2QpKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmZsdXNoKCk7CisgICAgICAgICAgICAg
ICAgY29udGV4dC0+c2hhbGxvd0ZsdXNoKCk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBNYWtl
IHN1cmUgdGhlcmUgYXJlIG5vIGRhbmdsaW5nIHVwbG9hZHMgd2l0aG91dCBhIGZsdXNoLgogICAg
ICAgICBpZiAodXBsb2FkQ291bnQgJSBrVXBsb2FkRmx1c2hQZXJpb2QpCi0gICAgICAgICAgICBj
b250ZXh0LT5mbHVzaCgpOworICAgICAgICAgICAgY29udGV4dC0+c2hhbGxvd0ZsdXNoKCk7CiAK
ICAgICAgICAgYm9vbCBtb3JlVXBsb2FkcyA9IG1heEluZGV4IDwgbV9mdWxsRW50cmllcy5zaXpl
KCk7CiAKQEAgLTEzOCwxMiArMTM4LDEyIEBAIHZvaWQgQ0NUZXh0dXJlVXBkYXRlcjo6dXBkYXRl
KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBUZXh0dXJlQWxsb2NhdG9yKiBhbGxvCiAgICAg
ICAgICAgICB1cGxvYWRlci0+dXBsb2FkVGV4dHVyZShjb250ZXh0LCBlbnRyeS50ZXh0dXJlLCBh
bGxvY2F0b3IsIGVudHJ5LnNvdXJjZVJlY3QsIGVudHJ5LmRlc3RSZWN0KTsKICAgICAgICAgICAg
IHBhcnRpYWxVcGxvYWRDb3VudCsrOwogICAgICAgICAgICAgaWYgKCEocGFydGlhbFVwbG9hZENv
dW50ICUga1VwbG9hZEZsdXNoUGVyaW9kKSkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5mbHVz
aCgpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPnNoYWxsb3dGbHVzaCgpOwogICAgICAgICB9
CiAKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZXJlIGFyZSBubyBkYW5nbGluZyBwYXJ0aWFsIHVw
bG9hZHMgd2l0aG91dCBhIGZsdXNoLgogICAgICAgICBpZiAocGFydGlhbFVwbG9hZENvdW50ICUg
a1VwbG9hZEZsdXNoUGVyaW9kKQotICAgICAgICAgICAgY29udGV4dC0+Zmx1c2goKTsKKyAgICAg
ICAgICAgIGNvbnRleHQtPnNoYWxsb3dGbHVzaCgpOwogCiAgICAgICAgIHVwbG9hZGVyLT5lbmRV
cGxvYWRzKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
R3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAppbmRleCAzZWY4Y2Y4YTJiZTNjMzE1MDM4
YWE4OTBmMmRhZmNjZTNkODg3Y2I5Li41OGViNGE5NDEyMTJkNzM4NjhkNTFjZWFmZWE2MjdhOGQz
YTQzM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0Nv
bnRleHQzRENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFw
aGljc0NvbnRleHQzRENocm9taXVtLmNwcApAQCAtNDkyLDYgKzQ5Miw3IEBAIERFTEVHQVRFX1RP
X0lNUExfMShlbmFibGUsIEdDM0RlbnVtKQogREVMRUdBVEVfVE9fSU1QTF8xKGVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5LCBHQzNEdWludCkKIERFTEVHQVRFX1RPX0lNUEwoZmluaXNoKQogREVMRUdB
VEVfVE9fSU1QTChmbHVzaCkKK0RFTEVHQVRFX1RPX0lNUEwoc2hhbGxvd0ZsdXNoKQogREVMRUdB
VEVfVE9fSU1QTF80KGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyLCBHQzNEZW51bSwgR0MzRGVudW0s
IEdDM0RlbnVtLCBQbGF0Zm9ybTNET2JqZWN0KQogREVMRUdBVEVfVE9fSU1QTF81KGZyYW1lYnVm
ZmVyVGV4dHVyZTJELCBHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RlbnVtLCBQbGF0Zm9ybTNET2Jq
ZWN0LCBHQzNEaW50KQogREVMRUdBVEVfVE9fSU1QTF8xKGZyb250RmFjZSwgR0MzRGVudW0pCkBA
IC0xMDkwLDYgKzEwOTEsNyBAQCBERUxFR0FURV9UT19JTlRFUk5BTF8xKGVuYWJsZSwgR0MzRGVu
dW0pCiBERUxFR0FURV9UT19JTlRFUk5BTF8xKGVuYWJsZVZlcnRleEF0dHJpYkFycmF5LCBHQzNE
dWludCkKIERFTEVHQVRFX1RPX0lOVEVSTkFMKGZpbmlzaCkKIERFTEVHQVRFX1RPX0lOVEVSTkFM
KGZsdXNoKQorREVMRUdBVEVfVE9fSU5URVJOQUwoc2hhbGxvd0ZsdXNoKQogREVMRUdBVEVfVE9f
SU5URVJOQUxfNChmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlciwgR0MzRGVudW0sIEdDM0RlbnVtLCBH
QzNEZW51bSwgUGxhdGZvcm0zRE9iamVjdCkKIERFTEVHQVRFX1RPX0lOVEVSTkFMXzUoZnJhbWVi
dWZmZXJUZXh0dXJlMkQsIEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0sIFBsYXRmb3JtM0RP
YmplY3QsIEdDM0RpbnQpCiBERUxFR0FURV9UT19JTlRFUk5BTF8xKGZyb250RmFjZSwgR0MzRGVu
dW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZS5oCmluZGV4IGEyNjkxOTJhNDQ2NzIzYWNlZmEwYzEzMmY5NzBkZjIxMjg5NmE5
ZjcuLjhiMzNiN2EzNDJhZGVjZTc2ZTM1NjEyZTRiNjk1NWJmOGUzNDNiNmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5o
CkBAIC0xMzcsNiArMTM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlVmVydGV4QXR0cmli
QXJyYXkoR0MzRHVpbnQgaW5kZXgpOwogICAgIHZvaWQgZmluaXNoKCk7CiAgICAgdm9pZCBmbHVz
aCgpOworICAgIHZvaWQgc2hhbGxvd0ZsdXNoKCk7CiAgICAgdm9pZCBmcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHJl
bmRlcmJ1ZmZlcnRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdm9pZCBmcmFtZWJ1ZmZl
clRleHR1cmUyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVt
IHRleHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGludCBsZXZlbCk7CiAgICAgdm9pZCBm
cm9udEZhY2UoR0MzRGVudW0gbW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NUZXh0dXJlVXBkYXRlclRlc3QuY3BwCmluZGV4IDA4NDU3NWI3NDU4NDEzNzMy
ODk1N2QwOTM4YzI2MmM0NTZhZGYwY2YuLmVjMTJjNmQxZGNjODJhOWUyMzZlYzMzZTVhZTZlMzky
NmEzZTM3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUZXh0
dXJlVXBkYXRlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NU
ZXh0dXJlVXBkYXRlclRlc3QuY3BwCkBAIC0xNDQsNiArMTQ0LDcgQEAgcHVibGljOgogICAgIE15
RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEKEdsb2JhbFRyYWNrZXIgKmd0KSA6IG1fZ2xvYmFsVHJh
Y2tlcihndCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2godm9pZCkgT1ZFUlJJREUgeyBt
X2dsb2JhbFRyYWNrZXItPm9uRmx1c2goKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzaGFsbG93Rmx1
c2godm9pZCkgT1ZFUlJJREUgeyBtX2dsb2JhbFRyYWNrZXItPm9uRmx1c2goKTsgfQogCiAgICAg
dmlydHVhbCBHckdMSW50ZXJmYWNlKiBvbkNyZWF0ZUdyR0xJbnRlcmZhY2UoKSBPVkVSUklERSB7
IHJldHVybiAwOyB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152386</attachid>
            <date>2012-07-13 17:45:15 -0700</date>
            <delta_ts>2012-07-18 20:00:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90325-20120713174514.patch</filename>
            <type>text/plain</type>
            <size>9067</size>
            <attacher name="Brian Anderson">brianderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAxNjE2MzI1MDljZTk3
YTM0NmQyNTYzYTNiM2RjZWUxMGQ1MGQ2YjU0Li43ZjBmMjAzMWMzYjE1MzEzY2Y2OTNjZDJiZmQy
YmE1N2IyYjQyMGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNy0xMiAg
QnJpYW4gQW5kZXJzb24gIDxicmlhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2No
cm9taXVtXSBVc2Ugc2hhbGxvdyBmbHVzaGVzIHRoYXQgZG9uJ3QgZ2xGbHVzaAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzMjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHNoYWxsb3dGbHVzaENI
Uk9NSVVNIHRvIFdlYkdyYXBoaWNzQ29udGV4dDNELgorCisgICAgICAgICogY2hyb21pdW0vcHVi
bGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNz
Q29udGV4dDNEOjpzaGFsbG93Rmx1c2hDSFJPTUlVTSk6CisKIDIwMTItMDctMTEgIEFsZXhhbmRy
ZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTW92ZSBj
b21wb3NpdG9yIHF1YWRzIHRvIFBsYXRmb3JtL2Nocm9taXVtL3B1YmxpYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDc1OTM1NTc2M2M4MTM3NzNhZjU5YWYzNjE3YjllMzc2NDViZTEwNDkuLjlmMDZkNWM3NDM4NGRm
OTNmNTg1ZDA1NTE0ZGNmNWE4Y2Q0OTlhZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAor
MjAxMi0wNy0xMiAgQnJpYW4gQW5kZXJzb24gIDxicmlhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBVc2Ugc2hhbGxvdyBmbHVzaGVzIHRoYXQgZG9uJ3QgZ2xGbHVz
aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzMjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHBs
dW1iaW5nIGZvciB0aGUgc2hhbGxvd0ZsdXNoQ0hST01JVU0gZXh0ZW5zaW9uIGFuZCB1c2VzCisg
ICAgICAgIHNoYWxsb3cgZmx1c2hlcyBpbnN0ZWFkIG9mIG5vcm1hbCBmbHVzaGVzIHdoZW4gdXBs
b2FkaW5nIHRleHR1cmVzLgorICAgICAgICBTaGFsbG93IGZsdXNoZXMgYWxsb3cgdXMgdG8gaW5p
dGlhdGUgY29tbWFuZCBidWZmZXIgZmx1c2hlcyB0bworICAgICAgICB0aGUgR1BVIHRocmVhZC9w
cm9jZXNzIHdpdGhvdXQgdGhlIG92ZXJoZWFkIG9mIGEgdHJ1ZSBnbEZsdXNoLgorCisgICAgICAg
IENDVGV4dHVyZVVwZGF0ZXJUZXN0IHVwZGF0ZWQgdG8gcmVjb2duaXplIHNoYWxsb3cgZmx1c2hl
cy4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNEQ2hyb21pdW06OnNoYWxs
b3dGbHVzaENIUk9NSVVNKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmg6CisgICAgICAgIChFeHRl
bnNpb25zM0RDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NHcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDR3JhcGhpY3NDb250
ZXh0OjpzaGFsbG93Rmx1c2gpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBk
YXRlcjo6dXBkYXRlKToKKwogMjAxMi0wNy0xMSAgQnJpYW4gQW5kZXJzb24gIDxicmlhbmRlcnNv
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgZmx1c2hlcyB0byBDQ1Rl
eHR1cmVVcGRhdGVyOjp1cGRhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2RmZDVl
YTFlMTM0YzVhYWNjNTc4N2MyZDE1NDE1MzFiZjFlZDIwZS4uMTY2ZjQwMmY3MGI3MzBmNGU2ZTQx
NjBmNDY5OThhZTQxMjE2YjVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMi0wNy0xMiAgQnJpYW4gQW5kZXJzb24gIDxicmlhbmRlcnNvbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBVc2Ugc2hhbGxvdyBmbHVzaGVzIHRoYXQgZG9u
J3QgZ2xGbHVzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTAzMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaGFuZ2VkIENDVGV4dHVyZVVwZGF0ZXJUZXN0IHRvIHJlY29nbml6ZSBzaGFsbG93Rmx1c2hD
SFJPTUlVTSgpLgorCisgICAgICAgICogdGVzdHMvQ0NUZXh0dXJlVXBkYXRlclRlc3QuY3BwOgor
CiAyMDEyLTA3LTExICBCcmlhbiBBbmRlcnNvbiAgPGJyaWFuZGVyc29uQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBBZGQgZmx1c2hlcyB0byBDQ1RleHR1cmVVcGRhdGVyOjp1cGRhdGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0
M0QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0
M0QuaAppbmRleCA0NGMyMDY3MTlhZjE4ZDhhNjFiMmQ0MTc2ZjllM2RkYTk1NmY4MmFiLi5lN2Q3
YTY0YjRkODgzOTBiZGMyM2YwMWM4OWJmYTY0NzgxMDE1MDk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCkBAIC00
MjEsNiArNDIxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4dHVyZUNIUk9N
SVVNKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEdWludCBzb3VyY2VJZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXR0MzRHVpbnQgZGVzdElkLCBXR0MzRGludCBsZXZlbCwg
V0dDM0RlbnVtIGludGVybmFsRm9ybWF0KSB7IH0KIAorICAgIC8vIEdMX0NIUk9NSVVNX3NoYWxs
b3dfZmx1c2gKKyAgICB2aXJ0dWFsIHZvaWQgc2hhbGxvd0ZsdXNoQ0hST01JVU0oKSB7IH0KKwog
ICAgIEdyR0xJbnRlcmZhY2UqIGNyZWF0ZUdyR0xJbnRlcmZhY2UoKTsKIAogcHJvdGVjdGVkOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9FeHRl
bnNpb25zM0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9z
dXBwb3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAppbmRleCA3NWE3Njg5ZTNiMmU0NGRiZmUz
MWQ5YTVhZGE1OTI4NjcxZjkyNjM0Li5lN2IxYTIyY2Y5Yjg5YzU3MDJiODJlODU1MDUyNDQwOTQy
M2RiODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBw
b3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcApAQCAtMTc2LDQgKzE3
Niw5IEBAIHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmNvcHlUZXh0dXJlQ0hST01JVU0oR0Mz
RGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0CiAgICAgbV9wcml2YXRlLT53ZWJDb250ZXh0
KCktPmNvcHlUZXh0dXJlQ0hST01JVU0odGFyZ2V0LCBzb3VyY2VJZCwgZGVzdElkLCBsZXZlbCwg
aW50ZXJuYWxGb3JtYXQpOwogfQogCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpzaGFsbG93
Rmx1c2hDSFJPTUlVTSgpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+d2ViQ29udGV4dCgpLT5z
aGFsbG93Rmx1c2hDSFJPTUlVTSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNp
b25zM0RDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAppbmRleCBmZjdlZDdlMjlmYTllNDBiMGE0NzM5YjVm
MWRkMjg0M2ExZDA1NjlhLi4zN2QwYjc4NzEzZDA0ZDZmNDY0ZDlhODEwNzI4OTY0NjU2Y2Q3MTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9F
eHRlbnNpb25zM0RDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgfkV4dGVuc2lvbnMzRENocm9taXVtKCk7CiAKICAgICAvLyBTdXBw
b3J0ZWQgZXh0ZW5zaW9uczoKKyAgICAvLyAgIEdMX0NIUk9NSVVNX3NoYWxsb3dfZmx1c2ggIDog
b25seSBzdXBwb3J0ZWQgaWYgYW4gaXBjIGNvbW1hbmQgYnVmZmVyIGlzIHVzZWQKICAgICAvLyAg
IEdMX0NIUk9NSVVNX3Jlc291cmNlX3NhZmUgIDogaW5kaWNhdGluZyB0aGF0IHRleHR1cmVzL3Jl
bmRlcmJ1ZmZlcnMgYXJlIGFsd2F5cyBpbml0aWFsaXplZCBiZWZvcmUgcmVhZC93cml0ZS4KICAg
ICAvLyAgIEdMX0NIUk9NSVVNX3N0cmljdF9hdHRyaWJzIDogaW5kaWNhdGluZyBhIEdMIGVycm9y
IGlzIGdlbmVyYXRlZCBmb3Igb3V0LW9mLWJvdW5kcyBidWZmZXIgYWNjZXNzZXMuCiAgICAgLy8g
ICBHTF9DSFJPTUlVTV9wb3N0X3N1Yl9idWZmZXIKQEAgLTEyMiw2ICsxMjMsOSBAQCBwdWJsaWM6
CiAgICAgLy8gR0xfQ0hST01JVU1fY29weV90ZXh0dXJlCiAgICAgdm9pZCBjb3B5VGV4dHVyZUNI
Uk9NSVVNKEdDM0RlbnVtLCBQbGF0Zm9ybTNET2JqZWN0LCBQbGF0Zm9ybTNET2JqZWN0LCBHQzNE
aW50LCBHQzNEZW51bSk7CiAKKyAgICAvLyBHTF9DSFJPTUlVTV9zaGFsbG93X2ZsdXNoCisgICAg
dmlydHVhbCB2b2lkIHNoYWxsb3dGbHVzaENIUk9NSVVNKCk7CisKIHByaXZhdGU6CiAgICAgLy8g
SW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIHN0cmljdGx5IG93bmVkIGJ5IHRoZSBHcmFwaGlj
c0NvbnRleHQzRCBpbXBsZW1lbnRhdGlvbiBhbmQgZG8gbm90CiAgICAgLy8gbmVlZCB0byBiZSBp
bnN0YW50aWF0ZWQgYnkgYW55IG90aGVyIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0dyYXBoaWNzQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NHcmFwaGljc0NvbnRl
eHQuaAppbmRleCBiZThjOGE1NTdhOTM0MDM4ZWFmYWZmZTM1ODAwZDVhNGZiNWNiNmJkLi4zZmU3
NzJjN2Q5MDZlOWMyNzg5YjdiN2U2ZDYwMTI2ZTkzZjA2MWQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0dyYXBoaWNzQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDR3Jh
cGhpY3NDb250ZXh0LmgKQEAgLTU0LDYgKzU0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1f
Y29udGV4dDNELT5mbHVzaCgpOwogICAgIH0KIAorICAgIHZvaWQgc2hhbGxvd0ZsdXNoQ0hST01J
VU0oKQorICAgIHsKKyAgICAgICAgaWYgKG1fY29udGV4dDNEKQorICAgICAgICAgICAgbV9jb250
ZXh0M0QtPnNoYWxsb3dGbHVzaENIUk9NSVVNKCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIEND
R3JhcGhpY3NDb250ZXh0KCkgeyB9CiAgICAgZXhwbGljaXQgQ0NHcmFwaGljc0NvbnRleHQoUGFz
c093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0M0QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1
cmVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwCmluZGV4IGJjMWVkNzVhZjlhZjUwZDk2NGI3NDczMTQz
MzdmZTljNGVjMWZlNGIuLjAxMTYzNTZlM2Q5NzhiNDc1YjRmYjJhYzk5MTE2ZTZiMTBhNjk4Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGV4dHVyZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwCkBAIC0xMDIsMTIgKzEwMiwxMiBA
QCB2b2lkIENDVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZShDQ0dyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgVGV4dHVyZUFsbG9jYXRvciogYWxsbwogICAgICAgICAgICAgdXBsb2FkZXItPnVwbG9hZFRl
eHR1cmUoY29udGV4dCwgZW50cnkudGV4dHVyZSwgYWxsb2NhdG9yLCBlbnRyeS5zb3VyY2VSZWN0
LCBlbnRyeS5kZXN0UmVjdCk7CiAgICAgICAgICAgICBmdWxsVXBsb2FkQ291bnQrKzsKICAgICAg
ICAgICAgIGlmICghKGZ1bGxVcGxvYWRDb3VudCAlIGtVcGxvYWRGbHVzaFBlcmlvZCkpCi0gICAg
ICAgICAgICAgICAgY29udGV4dC0+Zmx1c2goKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5z
aGFsbG93Rmx1c2hDSFJPTUlVTSgpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTWFrZSBzdXJl
IHRoZXJlIGFyZSBubyBkYW5nbGluZyB1cGxvYWRzIHdpdGhvdXQgYSBmbHVzaC4KICAgICAgICAg
aWYgKGZ1bGxVcGxvYWRDb3VudCAlIGtVcGxvYWRGbHVzaFBlcmlvZCkKLSAgICAgICAgICAgIGNv
bnRleHQtPmZsdXNoKCk7CisgICAgICAgICAgICBjb250ZXh0LT5zaGFsbG93Rmx1c2hDSFJPTUlV
TSgpOwogCiAgICAgICAgIGJvb2wgbW9yZVVwbG9hZHMgPSBtYXhJbmRleCA8IG1fZnVsbEVudHJp
ZXMuc2l6ZSgpOwogCkBAIC0xMjcsMTQgKzEyNywxNCBAQCB2b2lkIENDVGV4dHVyZVVwZGF0ZXI6
OnVwZGF0ZShDQ0dyYXBoaWNzQ29udGV4dCogY29udGV4dCwgVGV4dHVyZUFsbG9jYXRvciogYWxs
bwogICAgICAgICAgICAgVXBkYXRlRW50cnkmIGVudHJ5ID0gbV9wYXJ0aWFsRW50cmllc1tpbmRl
eF07CiAgICAgICAgICAgICB1cGxvYWRlci0+dXBsb2FkVGV4dHVyZShjb250ZXh0LCBlbnRyeS50
ZXh0dXJlLCBhbGxvY2F0b3IsIGVudHJ5LnNvdXJjZVJlY3QsIGVudHJ5LmRlc3RSZWN0KTsKICAg
ICAgICAgICAgIGlmICghKChpbmRleCsxKSAlIGtVcGxvYWRGbHVzaFBlcmlvZCkpCi0gICAgICAg
ICAgICAgICAgY29udGV4dC0+Zmx1c2goKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5zaGFs
bG93Rmx1c2hDSFJPTUlVTSgpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTWFrZSBzdXJlIHRo
ZXJlIGFyZSBubyBkYW5nbGluZyBwYXJ0aWFsIHVwbG9hZHMgd2l0aG91dCBhIGZsdXNoLgogICAg
ICAgICAvLyBOb3RlOiBXZSBkb24ndCBuZWVkIHRvIHVzZSAoaW5kZXgrMSkgaW4gdGhpcyBjYXNl
IGJlY2F1c2UgaW5kZXggd2FzCiAgICAgICAgIC8vIGluY3JlbWVudGVkIGF0IHRoZSBlbmQgb2Yg
dGhlIGZvciBsb29wLgogICAgICAgICBpZiAoaW5kZXggJSBrVXBsb2FkRmx1c2hQZXJpb2QpCi0g
ICAgICAgICAgICBjb250ZXh0LT5mbHVzaCgpOworICAgICAgICAgICAgY29udGV4dC0+c2hhbGxv
d0ZsdXNoQ0hST01JVU0oKTsKIAogICAgICAgICB1cGxvYWRlci0+ZW5kVXBsb2FkcygpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUZXh0dXJlVXBk
YXRlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRh
dGVyVGVzdC5jcHAKaW5kZXggZDBiYmQzNmY0NzhlYzU4ODQyZTNjNWUxZmM0ZjkwYTE3NWQ0M2Ni
OS4uZThiZDM2NWQ1ZTIzZTJhNDViYjgxODFjZDM1ZTViYWJiMTVkMThlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVyVGVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVyVGVzdC5jcHAK
QEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0RGb3JVcGxvYWRUZXN0
IDogcHVibGljIEZha2VXZWJHcmFwaGljc0NvbnRleHQzRCB7CiBwdWJsaWM6CiAgICAgV2ViR3Jh
cGhpY3NDb250ZXh0M0RGb3JVcGxvYWRUZXN0KENDVGV4dHVyZVVwZGF0ZXJUZXN0ICp0ZXN0KSA6
IG1fdGVzdCh0ZXN0KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmx1c2godm9pZCk7CisgICAgdmly
dHVhbCB2b2lkIHNoYWxsb3dGbHVzaENIUk9NSVVNKHZvaWQpOwogICAgIHZpcnR1YWwgR3JHTElu
dGVyZmFjZSogb25DcmVhdGVHckdMSW50ZXJmYWNlKCkgeyByZXR1cm4gMDsgfQogCiBwcml2YXRl
OgpAQCAtMjI5LDYgKzIzMCwxMSBAQCB2b2lkIFdlYkdyYXBoaWNzQ29udGV4dDNERm9yVXBsb2Fk
VGVzdDo6Zmx1c2godm9pZCkKICAgICBtX3Rlc3QtPm9uRmx1c2goKTsKIH0KIAordm9pZCBXZWJH
cmFwaGljc0NvbnRleHQzREZvclVwbG9hZFRlc3Q6OnNoYWxsb3dGbHVzaENIUk9NSVVNKHZvaWQp
Cit7CisgICAgbV90ZXN0LT5vbkZsdXNoKCk7Cit9CisKIHZvaWQgVGV4dHVyZVVwbG9hZGVyRm9y
VXBsb2FkVGVzdDo6YmVnaW5VcGxvYWRzKCkKIHsKICAgICBtX3Rlc3QtPm9uQmVnaW5VcGxvYWRz
KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153165</attachid>
            <date>2012-07-18 20:01:02 -0700</date>
            <delta_ts>2012-07-19 16:17:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90325-20120718200102.patch</filename>
            <type>text/plain</type>
            <size>12534</size>
            <attacher name="Brian Anderson">brianderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAxZmU5OWIxM2Q2ODkx
ZTg2MzBkOTU2MWI0YTQ0NThmMzUzMzI0NzYxLi4wYTNmODE4OGNlM2VkMWU0OTljYTI1ZjZmMDFl
NWIyYjUyOWUxZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNy0xMiAg
QnJpYW4gQW5kZXJzb24gIDxicmlhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2No
cm9taXVtXSBVc2Ugc2hhbGxvdyBmbHVzaGVzIHRoYXQgZG9uJ3QgZ2xGbHVzaAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzMjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHNoYWxsb3dGbHVzaENI
Uk9NSVVNIHRvIFdlYkdyYXBoaWNzQ29udGV4dDNELgorCisgICAgICAgICogY2hyb21pdW0vcHVi
bGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNz
Q29udGV4dDNEOjpzaGFsbG93Rmx1c2hDSFJPTUlVTSk6CisKIDIwMTItMDctMTMgIFRvbnkgUGF5
bmUgIDx0cGF5bmVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBXaWRnZXQgZnJvbSBz
Y3JlZW5Db2xvclByb2ZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYWU1NjRiY2Q5MDdhYmNhYzgwNTFlMjNk
ZjBmMTgzZmNjMGZhYmYxLi4wN2FlNGI4MmQyMDQzOWM3ZGQ2MTBmODMxMTA2ZGYxZGNkN2M5NGU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDctMTIgIEJyaWFuIEFuZGVyc29u
ICA8YnJpYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVXNlIHNo
YWxsb3cgZmx1c2hlcyB0aGF0IGRvbid0IGdsRmx1c2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBwbHVtYmluZyBmb3IgdGhlIHNoYWxsb3dGbHVz
aENIUk9NSVVNIGV4dGVuc2lvbiBhbmQgdXNlcworICAgICAgICBzaGFsbG93IGZsdXNoZXMgaW5z
dGVhZCBvZiBub3JtYWwgZmx1c2hlcyB3aGVuIHVwbG9hZGluZyB0ZXh0dXJlcy4KKyAgICAgICAg
U2hhbGxvdyBmbHVzaGVzIGFsbG93IHVzIHRvIGluaXRpYXRlIGNvbW1hbmQgYnVmZmVyIGZsdXNo
ZXMgdG8KKyAgICAgICAgdGhlIEdQVSB0aHJlYWQvcHJvY2VzcyB3aXRob3V0IHRoZSBvdmVyaGVh
ZCBvZiBhIHRydWUgZ2xGbHVzaC4KKworICAgICAgICBDQ1RleHR1cmVVcGRhdGVyVGVzdCB1cGRh
dGVkIHRvIHJlY29nbml6ZSBzaGFsbG93IGZsdXNoZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkV4dGVuc2lvbnMzRENocm9taXVtOjpzaGFsbG93Rmx1c2hDSFJPTUlVTSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNp
b25zM0RDaHJvbWl1bS5oOgorICAgICAgICAoRXh0ZW5zaW9uczNEQ2hyb21pdW0pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDR3JhcGhpY3NDb250ZXh0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0dyYXBoaWNzQ29udGV4dDo6c2hhbGxvd0ZsdXNoKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZSk6CisKIDIwMTItMDct
MTggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBG
aXggdXAgb2xkIG5hbWUgaW4gUnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggZGZiNzZkOTQ3N2NiY2UwOTFhZmIzZGNjNDk3MjhiYTIyNzIzOTc5
Ni4uYTkxZDgzNjAyZDRhNTYwOTViNzE4Yzk3YmEwY2E4MjhmN2JiNThiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNy0xMiAgQnJpYW4gQW5kZXJz
b24gIDxicmlhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBVc2Ug
c2hhbGxvdyBmbHVzaGVzIHRoYXQgZG9uJ3QgZ2xGbHVzaAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzMjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VkIENDVGV4dHVyZVVwZGF0ZXJUZXN0IHRv
IHJlY29nbml6ZSBzaGFsbG93Rmx1c2hDSFJPTUlVTSgpLgorCisgICAgICAgICogdGVzdHMvQ0NU
ZXh0dXJlVXBkYXRlclRlc3QuY3BwOgorCiAyMDEyLTA3LTE4ICBUb255IENoYW5nICA8dG9ueUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBVbnJldmlld2VkLCBtb3JlIGNvbXBp
bGUgZml4ZXMgb24gQ2hyb21pdW0gV2luLgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDQ0YzIwNjcxOWFmMThk
OGE2MWIyZDQxNzZmOWUzZGRhOTU2ZjgyYWIuLmU3ZDdhNjRiNGQ4ODM5MGJkYzIzZjAxYzg5YmZh
NjQ3ODEwMTUwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKQEAgLTQyMSw2ICs0MjEsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGNvcHlUZXh0dXJlQ0hST01JVU0oV0dDM0RlbnVtIHRhcmdldCwgV0dD
M0R1aW50IHNvdXJjZUlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdH
QzNEdWludCBkZXN0SWQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQp
IHsgfQogCisgICAgLy8gR0xfQ0hST01JVU1fc2hhbGxvd19mbHVzaAorICAgIHZpcnR1YWwgdm9p
ZCBzaGFsbG93Rmx1c2hDSFJPTUlVTSgpIHsgfQorCiAgICAgR3JHTEludGVyZmFjZSogY3JlYXRl
R3JHTEludGVyZmFjZSgpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hyb21p
dW0uY3BwCmluZGV4IDc1YTc2ODllM2IyZTQ0ZGJmZTMxZDlhNWFkYTU5Mjg2NzFmOTI2MzQuLmU3
YjFhMjJjZjliODljNTcwMmI4MmU4NTUwNTI0NDA5NDIzZGI4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvRXh0ZW5z
aW9uczNEQ2hyb21pdW0uY3BwCkBAIC0xNzYsNCArMTc2LDkgQEAgdm9pZCBFeHRlbnNpb25zM0RD
aHJvbWl1bTo6Y29weVRleHR1cmVDSFJPTUlVTShHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RP
YmplY3QKICAgICBtX3ByaXZhdGUtPndlYkNvbnRleHQoKS0+Y29weVRleHR1cmVDSFJPTUlVTSh0
YXJnZXQsIHNvdXJjZUlkLCBkZXN0SWQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCk7CiB9CiAKK3Zv
aWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OnNoYWxsb3dGbHVzaENIUk9NSVVNKCkKK3sKKyAgICBy
ZXR1cm4gbV9wcml2YXRlLT53ZWJDb250ZXh0KCktPnNoYWxsb3dGbHVzaENIUk9NSVVNKCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5o
CmluZGV4IGZmN2VkN2UyOWZhOWU0MGIwYTQ3MzliNWYxZGQyODQzYTFkMDU2OWEuLjM3ZDBiNzg3
MTNkMDRkNmY0NjRkOWE4MTA3Mjg5NjQ2NTZjZDcxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNE
Q2hyb21pdW0uaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+RXh0ZW5z
aW9uczNEQ2hyb21pdW0oKTsKIAogICAgIC8vIFN1cHBvcnRlZCBleHRlbnNpb25zOgorICAgIC8v
ICAgR0xfQ0hST01JVU1fc2hhbGxvd19mbHVzaCAgOiBvbmx5IHN1cHBvcnRlZCBpZiBhbiBpcGMg
Y29tbWFuZCBidWZmZXIgaXMgdXNlZAogICAgIC8vICAgR0xfQ0hST01JVU1fcmVzb3VyY2Vfc2Fm
ZSAgOiBpbmRpY2F0aW5nIHRoYXQgdGV4dHVyZXMvcmVuZGVyYnVmZmVycyBhcmUgYWx3YXlzIGlu
aXRpYWxpemVkIGJlZm9yZSByZWFkL3dyaXRlLgogICAgIC8vICAgR0xfQ0hST01JVU1fc3RyaWN0
X2F0dHJpYnMgOiBpbmRpY2F0aW5nIGEgR0wgZXJyb3IgaXMgZ2VuZXJhdGVkIGZvciBvdXQtb2Yt
Ym91bmRzIGJ1ZmZlciBhY2Nlc3Nlcy4KICAgICAvLyAgIEdMX0NIUk9NSVVNX3Bvc3Rfc3ViX2J1
ZmZlcgpAQCAtMTIyLDYgKzEyMyw5IEBAIHB1YmxpYzoKICAgICAvLyBHTF9DSFJPTUlVTV9jb3B5
X3RleHR1cmUKICAgICB2b2lkIGNvcHlUZXh0dXJlQ0hST01JVU0oR0MzRGVudW0sIFBsYXRmb3Jt
M0RPYmplY3QsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQsIEdDM0RlbnVtKTsKIAorICAgIC8v
IEdMX0NIUk9NSVVNX3NoYWxsb3dfZmx1c2gKKyAgICB2aXJ0dWFsIHZvaWQgc2hhbGxvd0ZsdXNo
Q0hST01JVU0oKTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBh
cmUgc3RyaWN0bHkgb3duZWQgYnkgdGhlIEdyYXBoaWNzQ29udGV4dDNEIGltcGxlbWVudGF0aW9u
IGFuZCBkbyBub3QKICAgICAvLyBuZWVkIHRvIGJlIGluc3RhbnRpYXRlZCBieSBhbnkgb3RoZXIg
Y29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IGJlOGM4YTU1N2E5MzQw
MzhlYWZhZmZlMzU4MDBkNWE0ZmI1Y2I2YmQuLjNiYzM1NDI1ZDcxZThhYmMwMzcyYmYxZWMwODA5
OWNmYWYwMjY5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NHcmFwaGljc0NvbnRleHQuaApAQCAtMjYsMTAg
KzI2LDE0IEBACiAjaWZuZGVmIENDR3JhcGhpY3NDb250ZXh0X2gKICNkZWZpbmUgQ0NHcmFwaGlj
c0NvbnRleHRfaAogCisjaW5jbHVkZSA8R0wvZ2wuaD4KKyNpbmNsdWRlIDxHTC9nbGV4dC5oPgog
I2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oPgorI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDIwICs1MCw1OSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NHcmFwaGljc0NvbnRleHQo
Y29udGV4dDNEKSk7CiAgICAgfQogCisgICAgLy8gRGVmZXJyZWQgaW5pdGlhbGl6YXRpb24gaXMg
cmVxdWlyZWQgc28gdGhhdCBtX2NvbnRleHQzRCBpcyBvbmx5IGFjY2Vzc2VkIGJ5IHRoZSBJbXBs
IHRocmVhZC4KKyAgICB2b2lkIGluaXRpYWxpemVPbkltcGxUaHJlYWQoKQorICAgIHsKKyAgICAg
ICAgU3RyaW5nIGV4dGVuc2lvbnNTdHJpbmcgPSBtX2NvbnRleHQzRC0+Z2V0U3RyaW5nKEdMX0VY
VEVOU0lPTlMpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBleHRlbnNpb25zTGlzdDsKKyAgICAg
ICAgZXh0ZW5zaW9uc1N0cmluZy5zcGxpdCgnICcsIGV4dGVuc2lvbnNMaXN0KTsKKyAgICAgICAg
SGFzaFNldDxTdHJpbmc+IGV4dGVuc2lvbnM7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgZXh0ZW5zaW9uc0xpc3Quc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBleHRlbnNpb25zLmFk
ZChleHRlbnNpb25zTGlzdFtpXSk7CisKKyAgICAgICAgbV9zaGFsbG93Rmx1c2hTdXBwb3J0ZWQg
PSBleHRlbnNpb25zLmNvbnRhaW5zKCJHTF9DSFJPTUlVTV9zaGFsbG93X2ZsdXNoIik7CisKKyAg
ICAgICAgbV9pbml0aWFsaXplZCA9IHRydWU7CisgICAgfQorCiAgICAgV2ViS2l0OjpXZWJHcmFw
aGljc0NvbnRleHQzRCogY29udGV4dDNEKCkgeyByZXR1cm4gbV9jb250ZXh0M0QuZ2V0KCk7IH0K
IAogICAgIHZvaWQgZmx1c2goKQogICAgIHsKKyAgICAgICAgQVNTRVJUKG1faW5pdGlhbGl6ZWQp
OwogICAgICAgICBpZiAobV9jb250ZXh0M0QpCiAgICAgICAgICAgICBtX2NvbnRleHQzRC0+Zmx1
c2goKTsKICAgICB9CiAKKyAgICB2b2lkIHNoYWxsb3dGbHVzaENIUk9NSVVNKCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX2luaXRpYWxpemVkKTsKKyAgICAgICAgaWYgKG1fY29udGV4dDNEKQor
ICAgICAgICAgICAgbV9jb250ZXh0M0QtPnNoYWxsb3dGbHVzaENIUk9NSVVNKCk7CisgICAgfQor
CisgICAgYm9vbCBzaGFsbG93Rmx1c2hTdXBwb3J0ZWQoKSB7IHJldHVybiBtX3NoYWxsb3dGbHVz
aFN1cHBvcnRlZDsgfQorCisgICAgdm9pZCBzaGFsbG93Rmx1c2hXaXRoRmFsbGJhY2tPbkZsdXNo
KCkKKyAgICB7CisgICAgICAgIG1fc2hhbGxvd0ZsdXNoU3VwcG9ydGVkID8gc2hhbGxvd0ZsdXNo
Q0hST01JVU0oKSA6IGZsdXNoKCk7CisgICAgfQorCiBwcml2YXRlOgotICAgIENDR3JhcGhpY3ND
b250ZXh0KCkgeyB9CisgICAgQ0NHcmFwaGljc0NvbnRleHQoKQorICAgICAgICA6IG1faW5pdGlh
bGl6ZWQoZmFsc2UpCisgICAgICAgICwgbV9zaGFsbG93Rmx1c2hTdXBwb3J0ZWQoZmFsc2UpCisg
ICAgeyB9CisKICAgICBleHBsaWNpdCBDQ0dyYXBoaWNzQ29udGV4dChQYXNzT3duUHRyPFdlYktp
dDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQzRCkKLSAgICAgICAgOiBtX2NvbnRleHQz
RChjb250ZXh0M0QpIHsgfQorICAgICAgICA6IG1fY29udGV4dDNEKGNvbnRleHQzRCkKKyAgICAg
ICAgLCBtX2luaXRpYWxpemVkKGZhbHNlKQorICAgICAgICAsIG1fc2hhbGxvd0ZsdXNoU3VwcG9y
dGVkKGZhbHNlKQorICAgIHsgfQogCiAgICAgT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250
ZXh0M0Q+IG1fY29udGV4dDNEOworICAgIGJvb2wgbV9pbml0aWFsaXplZDsKKyAgICBib29sIG1f
c2hhbGxvd0ZsdXNoU3VwcG9ydGVkOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcAppbmRleCAwNGJiNzg2NzE1OWQ3Njg4MzIwODY5NDljNGM5Mjg2N2JhNDE4
ZTliLi5jNGRiNmJjNzcxNTE5YmE5MjdjY2U3OGI1MGE0NTg0NDVkNjFhNmE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcApAQCAtNzIwLDggKzcyMCwxMCBAQCBib29s
IENDTGF5ZXJUcmVlSG9zdEltcGw6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKFBhc3NPd25QdHI8
Q0NHcmFwaGljc0NvbnRleHQ+CiAgICAgfQogCiAgICAgbV9sYXllclJlbmRlcmVyID0gbGF5ZXJS
ZW5kZXJlci5yZWxlYXNlKCk7Ci0gICAgaWYgKG1fbGF5ZXJSZW5kZXJlcikKKyAgICBpZiAobV9s
YXllclJlbmRlcmVyKSB7CiAgICAgICAgIG1fY29udGV4dCA9IGNvbnRleHQ7CisgICAgICAgIG1f
Y29udGV4dC0+aW5pdGlhbGl6ZU9uSW1wbFRocmVhZCgpOworICAgIH0KIAogICAgIGlmICghbV92
aXNpYmxlICYmIG1fbGF5ZXJSZW5kZXJlcikKICAgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+c2V0
VmlzaWJsZShtX3Zpc2libGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNwcAppbmRl
eCBiYzFlZDc1YWY5YWY1MGQ5NjRiNzQ3MzE0MzM3ZmU5YzRlYzFmZTRiLi4wNmM4ZmUyN2EyYzcy
NzFlNTVjM2NkMGI3YzllZmRjNDE5NzVlZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRh
dGVyLmNwcApAQCAtMTAyLDEyICsxMDIsMTIgQEAgdm9pZCBDQ1RleHR1cmVVcGRhdGVyOjp1cGRh
dGUoQ0NHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFRleHR1cmVBbGxvY2F0b3IqIGFsbG8KICAg
ICAgICAgICAgIHVwbG9hZGVyLT51cGxvYWRUZXh0dXJlKGNvbnRleHQsIGVudHJ5LnRleHR1cmUs
IGFsbG9jYXRvciwgZW50cnkuc291cmNlUmVjdCwgZW50cnkuZGVzdFJlY3QpOwogICAgICAgICAg
ICAgZnVsbFVwbG9hZENvdW50Kys7CiAgICAgICAgICAgICBpZiAoIShmdWxsVXBsb2FkQ291bnQg
JSBrVXBsb2FkRmx1c2hQZXJpb2QpKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmZsdXNoKCk7
CisgICAgICAgICAgICAgICAgY29udGV4dC0+c2hhbGxvd0ZsdXNoV2l0aEZhbGxiYWNrT25GbHVz
aCgpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZXJlIGFyZSBubyBkYW5n
bGluZyB1cGxvYWRzIHdpdGhvdXQgYSBmbHVzaC4KICAgICAgICAgaWYgKGZ1bGxVcGxvYWRDb3Vu
dCAlIGtVcGxvYWRGbHVzaFBlcmlvZCkKLSAgICAgICAgICAgIGNvbnRleHQtPmZsdXNoKCk7Cisg
ICAgICAgICAgICBjb250ZXh0LT5zaGFsbG93Rmx1c2hXaXRoRmFsbGJhY2tPbkZsdXNoKCk7CiAK
ICAgICAgICAgYm9vbCBtb3JlVXBsb2FkcyA9IG1heEluZGV4IDwgbV9mdWxsRW50cmllcy5zaXpl
KCk7CiAKQEAgLTEyNywxNCArMTI3LDE0IEBAIHZvaWQgQ0NUZXh0dXJlVXBkYXRlcjo6dXBkYXRl
KENDR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBUZXh0dXJlQWxsb2NhdG9yKiBhbGxvCiAgICAg
ICAgICAgICBVcGRhdGVFbnRyeSYgZW50cnkgPSBtX3BhcnRpYWxFbnRyaWVzW2luZGV4XTsKICAg
ICAgICAgICAgIHVwbG9hZGVyLT51cGxvYWRUZXh0dXJlKGNvbnRleHQsIGVudHJ5LnRleHR1cmUs
IGFsbG9jYXRvciwgZW50cnkuc291cmNlUmVjdCwgZW50cnkuZGVzdFJlY3QpOwogICAgICAgICAg
ICAgaWYgKCEoKGluZGV4KzEpICUga1VwbG9hZEZsdXNoUGVyaW9kKSkKLSAgICAgICAgICAgICAg
ICBjb250ZXh0LT5mbHVzaCgpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPnNoYWxsb3dGbHVz
aFdpdGhGYWxsYmFja09uRmx1c2goKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIE1ha2Ugc3Vy
ZSB0aGVyZSBhcmUgbm8gZGFuZ2xpbmcgcGFydGlhbCB1cGxvYWRzIHdpdGhvdXQgYSBmbHVzaC4K
ICAgICAgICAgLy8gTm90ZTogV2UgZG9uJ3QgbmVlZCB0byB1c2UgKGluZGV4KzEpIGluIHRoaXMg
Y2FzZSBiZWNhdXNlIGluZGV4IHdhcwogICAgICAgICAvLyBpbmNyZW1lbnRlZCBhdCB0aGUgZW5k
IG9mIHRoZSBmb3IgbG9vcC4KICAgICAgICAgaWYgKGluZGV4ICUga1VwbG9hZEZsdXNoUGVyaW9k
KQotICAgICAgICAgICAgY29udGV4dC0+Zmx1c2goKTsKKyAgICAgICAgICAgIGNvbnRleHQtPnNo
YWxsb3dGbHVzaFdpdGhGYWxsYmFja09uRmx1c2goKTsKIAogICAgICAgICB1cGxvYWRlci0+ZW5k
VXBsb2FkcygpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKaW5kZXggZjg0MjcyN2MwZjE0MjhkNmQy
Y2MyYTcyNGUyM2Y3OGQxZjFkNzEzOC4uNjZkY2Q1MjBkODY2OGY2YjNmNzc0NjI3NGY2Mjk1ZjBk
NWMyYjliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
VHJlZUhvc3RJbXBsVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKQEAgLTE3MTcsNiArMTcxNywxMiBAQCBuYW1lc3Bh
Y2UgewogCiBjbGFzcyBNb2NrQ29udGV4dCA6IHB1YmxpYyBGYWtlV2ViR3JhcGhpY3NDb250ZXh0
M0QgewogcHVibGljOgorICAgIE1vY2tDb250ZXh0KCkKKyAgICB7CisgICAgICAgIE9OX0NBTEwo
KnRoaXMsIGdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkKKyAgICAgICAgICAgICAgICAuV2lsbEJ5
RGVmYXVsdChSZXR1cm4oV2ViU3RyaW5nKCIiKSkpOworICAgIH0KKwogICAgIE1PQ0tfTUVUSE9E
MSh1c2VQcm9ncmFtLCB2b2lkKFdlYkdMSWQgcHJvZ3JhbSkpOwogICAgIE1PQ0tfTUVUSE9ENSh1
bmlmb3JtNGYsIHZvaWQoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9h
dCB5LCBXR0MzRGZsb2F0IHosIFdHQzNEZmxvYXQgdykpOwogICAgIE1PQ0tfTUVUSE9ENCh1bmlm
b3JtTWF0cml4NGZ2LCB2b2lkKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNvdW50LCBX
R0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBXR0MzRGZsb2F0KiB2YWx1ZSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVyVGVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZXJUZXN0LmNw
cAppbmRleCBkMGJiZDM2ZjQ3OGVjNTg4NDJlM2M1ZTFmYzRmOTBhMTc1ZDQzY2I5Li5lOGJkMzY1
ZDVlMjNlMmE0NWJiODE4MWNkMzVlNWJhYmIxNWQxOGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZXJUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZXJUZXN0LmNwcApAQCAtNTIsNiAr
NTIsNyBAQCBjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzREZvclVwbG9hZFRlc3QgOiBwdWJsaWMg
RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEIHsKIHB1YmxpYzoKICAgICBXZWJHcmFwaGljc0NvbnRl
eHQzREZvclVwbG9hZFRlc3QoQ0NUZXh0dXJlVXBkYXRlclRlc3QgKnRlc3QpIDogbV90ZXN0KHRl
c3QpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmbHVzaCh2b2lkKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2hhbGxvd0ZsdXNoQ0hST01JVU0odm9pZCk7CiAgICAgdmlydHVhbCBHckdMSW50ZXJmYWNlKiBv
bkNyZWF0ZUdyR0xJbnRlcmZhY2UoKSB7IHJldHVybiAwOyB9CiAKIHByaXZhdGU6CkBAIC0yMjks
NiArMjMwLDExIEBAIHZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0RGb3JVcGxvYWRUZXN0OjpmbHVz
aCh2b2lkKQogICAgIG1fdGVzdC0+b25GbHVzaCgpOwogfQogCit2b2lkIFdlYkdyYXBoaWNzQ29u
dGV4dDNERm9yVXBsb2FkVGVzdDo6c2hhbGxvd0ZsdXNoQ0hST01JVU0odm9pZCkKK3sKKyAgICBt
X3Rlc3QtPm9uRmx1c2goKTsKK30KKwogdm9pZCBUZXh0dXJlVXBsb2FkZXJGb3JVcGxvYWRUZXN0
OjpiZWdpblVwbG9hZHMoKQogewogICAgIG1fdGVzdC0+b25CZWdpblVwbG9hZHMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153370</attachid>
            <date>2012-07-19 16:17:45 -0700</date>
            <delta_ts>2012-07-20 16:41:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90325-20120719161744.patch</filename>
            <type>text/plain</type>
            <size>13387</size>
            <attacher name="Brian Anderson">brianderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAxZmU5OWIxM2Q2ODkx
ZTg2MzBkOTU2MWI0YTQ0NThmMzUzMzI0NzYxLi4wYTNmODE4OGNlM2VkMWU0OTljYTI1ZjZmMDFl
NWIyYjUyOWUxZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNy0xMiAg
QnJpYW4gQW5kZXJzb24gIDxicmlhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2No
cm9taXVtXSBVc2Ugc2hhbGxvdyBmbHVzaGVzIHRoYXQgZG9uJ3QgZ2xGbHVzaAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzMjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHNoYWxsb3dGbHVzaENI
Uk9NSVVNIHRvIFdlYkdyYXBoaWNzQ29udGV4dDNELgorCisgICAgICAgICogY2hyb21pdW0vcHVi
bGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNz
Q29udGV4dDNEOjpzaGFsbG93Rmx1c2hDSFJPTUlVTSk6CisKIDIwMTItMDctMTMgIFRvbnkgUGF5
bmUgIDx0cGF5bmVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBXaWRnZXQgZnJvbSBz
Y3JlZW5Db2xvclByb2ZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxM2ViYTA5NWNkOGVjM2U4OTMwNGE5M2Y0
MTExYTEyZDI5YzUwMTljLi44MDMyOGNiZDE2NDVmMWEyNjQ2NjA1MDI0YTU4YzY5OWM2NTQ4YzQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDctMTIgIEJyaWFuIEFuZGVyc29u
ICA8YnJpYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVXNlIHNo
YWxsb3cgZmx1c2hlcyB0aGF0IGRvbid0IGdsRmx1c2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBwbHVtYmluZyBmb3IgdGhlIHNoYWxsb3dGbHVz
aENIUk9NSVVNIGV4dGVuc2lvbiBhbmQgdXNlcworICAgICAgICBzaGFsbG93IGZsdXNoZXMgaW5z
dGVhZCBvZiBub3JtYWwgZmx1c2hlcyB3aGVuIHVwbG9hZGluZyB0ZXh0dXJlcy4KKyAgICAgICAg
U2hhbGxvdyBmbHVzaGVzIGFsbG93IHVzIHRvIGluaXRpYXRlIGNvbW1hbmQgYnVmZmVyIGZsdXNo
ZXMgdG8KKyAgICAgICAgdGhlIEdQVSB0aHJlYWQvcHJvY2VzcyB3aXRob3V0IHRoZSBvdmVyaGVh
ZCBvZiBhIHRydWUgZ2xGbHVzaC4KKworICAgICAgICBDQ1RleHR1cmVVcGRhdGVyVGVzdCB1cGRh
dGVkIHRvIHJlY29nbml6ZSBzaGFsbG93IGZsdXNoZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkV4dGVuc2lvbnMzRENocm9taXVtOjpzaGFsbG93Rmx1c2hDSFJPTUlVTSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNp
b25zM0RDaHJvbWl1bS5oOgorICAgICAgICAoRXh0ZW5zaW9uczNEQ2hyb21pdW0pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDR3JhcGhpY3NDb250ZXh0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0dyYXBoaWNzQ29udGV4dDo6c2hhbGxvd0ZsdXNoKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZSk6CisKIDIwMTItMDct
MTkgIEJyaWFuIEFuZGVyc29uICA8YnJpYW5kZXJzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtjaHJvbWl1bV0gVXNlIENDR3JhcGhpY3NDb250ZXh0IGluIExheWVyUmVuZGVyQ2hyb21pdW0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNjQ5MTg2ZTU2ODg1NzExMzM5Zjg1MzRjY2Rj
Yzc1YjZjNGUzMDg3NC4uMWIxYzM4NjM3Yzk2NTkxZmMwZmZjZDY1YjkyYzBjMjkyMTVlOGY1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNy0xMiAg
QnJpYW4gQW5kZXJzb24gIDxicmlhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2No
cm9taXVtXSBVc2Ugc2hhbGxvdyBmbHVzaGVzIHRoYXQgZG9uJ3QgZ2xGbHVzaAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzMjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VkIENDVGV4dHVyZVVw
ZGF0ZXJUZXN0IHRvIHJlY29nbml6ZSBzaGFsbG93Rmx1c2hDSFJPTUlVTSgpLgorCisgICAgICAg
ICogdGVzdHMvQ0NUZXh0dXJlVXBkYXRlclRlc3QuY3BwOgorCiAyMDEyLTA3LTE5ICBCcmlhbiBB
bmRlcnNvbiAgPGJyaWFuZGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1d
IFVzZSBDQ0dyYXBoaWNzQ29udGV4dCBpbiBMYXllclJlbmRlckNocm9taXVtCmRpZmYgLS1naXQg
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgK
aW5kZXggNDRjMjA2NzE5YWYxOGQ4YTYxYjJkNDE3NmY5ZTNkZGE5NTZmODJhYi4uZTdkN2E2NGI0
ZDg4MzkwYmRjMjNmMDFjODliZmE2NDc4MTAxNTA5OSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNDIxLDYg
KzQyMSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29weVRleHR1cmVDSFJPTUlVTShX
R0MzRGVudW0gdGFyZ2V0LCBXR0MzRHVpbnQgc291cmNlSWQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV0dDM0R1aW50IGRlc3RJZCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNE
ZW51bSBpbnRlcm5hbEZvcm1hdCkgeyB9CiAKKyAgICAvLyBHTF9DSFJPTUlVTV9zaGFsbG93X2Zs
dXNoCisgICAgdmlydHVhbCB2b2lkIHNoYWxsb3dGbHVzaENIUk9NSVVNKCkgeyB9CisKICAgICBH
ckdMSW50ZXJmYWNlKiBjcmVhdGVHckdMSW50ZXJmYWNlKCk7CiAKIHByb3RlY3RlZDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvRXh0ZW5zaW9u
czNEQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAKaW5kZXggNzVhNzY4OWUzYjJlNDRkYmZlMzFkOWE1
YWRhNTkyODY3MWY5MjYzNC4uZTdiMWEyMmNmOWI4OWM1NzAyYjgyZTg1NTA1MjQ0MDk0MjNkYjg3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9F
eHRlbnNpb25zM0RDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAKQEAgLTE3Niw0ICsxNzYsOSBA
QCB2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpjb3B5VGV4dHVyZUNIUk9NSVVNKEdDM0RlbnVt
IHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdAogICAgIG1fcHJpdmF0ZS0+d2ViQ29udGV4dCgpLT5j
b3B5VGV4dHVyZUNIUk9NSVVNKHRhcmdldCwgc291cmNlSWQsIGRlc3RJZCwgbGV2ZWwsIGludGVy
bmFsRm9ybWF0KTsKIH0KIAordm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6c2hhbGxvd0ZsdXNo
Q0hST01JVU0oKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPndlYkNvbnRleHQoKS0+c2hhbGxv
d0ZsdXNoQ0hST01JVU0oKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNE
Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4
dGVuc2lvbnMzRENocm9taXVtLmgKaW5kZXggZmY3ZWQ3ZTI5ZmE5ZTQwYjBhNDczOWI1ZjFkZDI4
NDNhMWQwNTY5YS4uODA1ZTIwYTc5ZDBkMDljODkxMjk0YjY5ZjNiNjM4ZDM1YTYxMzE0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5z
aW9uczNEQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5FeHRlbnNpb25zM0RDaHJvbWl1bSgpOwogCiAgICAgLy8gU3VwcG9ydGVk
IGV4dGVuc2lvbnM6CisgICAgLy8gICBHTF9DSFJPTUlVTV9zaGFsbG93X2ZsdXNoICA6IG9ubHkg
c3VwcG9ydGVkIGlmIGFuIGlwYyBjb21tYW5kIGJ1ZmZlciBpcyB1c2VkLgogICAgIC8vICAgR0xf
Q0hST01JVU1fcmVzb3VyY2Vfc2FmZSAgOiBpbmRpY2F0aW5nIHRoYXQgdGV4dHVyZXMvcmVuZGVy
YnVmZmVycyBhcmUgYWx3YXlzIGluaXRpYWxpemVkIGJlZm9yZSByZWFkL3dyaXRlLgogICAgIC8v
ICAgR0xfQ0hST01JVU1fc3RyaWN0X2F0dHJpYnMgOiBpbmRpY2F0aW5nIGEgR0wgZXJyb3IgaXMg
Z2VuZXJhdGVkIGZvciBvdXQtb2YtYm91bmRzIGJ1ZmZlciBhY2Nlc3Nlcy4KICAgICAvLyAgIEdM
X0NIUk9NSVVNX3Bvc3Rfc3ViX2J1ZmZlcgpAQCAtMTIyLDYgKzEyMyw5IEBAIHB1YmxpYzoKICAg
ICAvLyBHTF9DSFJPTUlVTV9jb3B5X3RleHR1cmUKICAgICB2b2lkIGNvcHlUZXh0dXJlQ0hST01J
VU0oR0MzRGVudW0sIFBsYXRmb3JtM0RPYmplY3QsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQs
IEdDM0RlbnVtKTsKIAorICAgIC8vIEdMX0NIUk9NSVVNX3NoYWxsb3dfZmx1c2gKKyAgICB2aXJ0
dWFsIHZvaWQgc2hhbGxvd0ZsdXNoQ0hST01JVU0oKTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnN0
YW5jZXMgb2YgdGhpcyBjbGFzcyBhcmUgc3RyaWN0bHkgb3duZWQgYnkgdGhlIEdyYXBoaWNzQ29u
dGV4dDNEIGltcGxlbWVudGF0aW9uIGFuZCBkbyBub3QKICAgICAvLyBuZWVkIHRvIGJlIGluc3Rh
bnRpYXRlZCBieSBhbnkgb3RoZXIgY29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0dyYXBoaWNzQ29udGV4dC5o
CmluZGV4IGIyMmUyNjIwZDc0ODVmNzg1MzU5ZWMxMWIzODQwNjA0MTg4NDdiOTMuLjI3NmM4NmUz
NmFmMDlhZDJhMzFjZjk3ZjIwNjAwMzhmMjI1ODU4NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDR3JhcGhpY3NDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NHcmFwaGlj
c0NvbnRleHQuaApAQCAtMjYsMTAgKzI2LDE0IEBACiAjaWZuZGVmIENDR3JhcGhpY3NDb250ZXh0
X2gKICNkZWZpbmUgQ0NHcmFwaGljc0NvbnRleHRfaAogCisjaW5jbHVkZSA8R0wvZ2wuaD4KKyNp
bmNsdWRlIDxHTC9nbGV4dC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQz
RC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTU5LDIxICs2Myw1NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZsdXNoKCkKICAgICB7
CisgICAgICAgIEFTU0VSVChtX2luaXRpYWxpemVkKTsKICAgICAgICAgaWYgKG1fY29udGV4dDNE
KQogICAgICAgICAgICAgbV9jb250ZXh0M0QtPmZsdXNoKCk7CiAgICAgfQogCisgICAgdm9pZCBz
aGFsbG93Rmx1c2hDSFJPTUlVTSgpCisgICAgeworICAgICAgICBBU1NFUlQobV9pbml0aWFsaXpl
ZCk7CisgICAgICAgIGlmIChtX2NvbnRleHQzRCkKKyAgICAgICAgICAgIG1fY29udGV4dDNELT5z
aGFsbG93Rmx1c2hDSFJPTUlVTSgpOworICAgIH0KKworICAgIGJvb2wgc2hhbGxvd0ZsdXNoU3Vw
cG9ydGVkKCkgeyByZXR1cm4gbV9zaGFsbG93Rmx1c2hTdXBwb3J0ZWQ7IH0KKworICAgIHZvaWQg
c2hhbGxvd0ZsdXNoSWZTdXBwb3J0ZWQoKQorICAgIHsKKyAgICAgICAgbV9zaGFsbG93Rmx1c2hT
dXBwb3J0ZWQgPyBzaGFsbG93Rmx1c2hDSFJPTUlVTSgpIDogZmx1c2goKTsKKyAgICB9CisKIHBy
aXZhdGU6Ci0gICAgQ0NHcmFwaGljc0NvbnRleHQoKSB7IH0KKyAgICBDQ0dyYXBoaWNzQ29udGV4
dCgpCisgICAgICAgIDogbV9pbml0aWFsaXplZChmYWxzZSkKKyAgICAgICAgLCBtX3NoYWxsb3dG
bHVzaFN1cHBvcnRlZChmYWxzZSkKKyAgICB7IH0KKwogICAgIGV4cGxpY2l0IENDR3JhcGhpY3ND
b250ZXh0KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dDNE
KQotICAgICAgICA6IG1fY29udGV4dDNEKGNvbnRleHQzRCkgeyB9CisgICAgICAgIDogbV9jb250
ZXh0M0QoY29udGV4dDNEKQorICAgICAgICAsIG1faW5pdGlhbGl6ZWQoZmFsc2UpCisgICAgICAg
ICwgbV9zaGFsbG93Rmx1c2hTdXBwb3J0ZWQoZmFsc2UpCisgICAgeyB9CiAKICAgICB2b2lkIGxh
enlJbml0aWFsaXplKCkKICAgICB7Ci0gICAgICAgIC8vIFRPRE8KKyAgICAgICAgaWYgKG1faW5p
dGlhbGl6ZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgU3RyaW5nIGV4dGVuc2lv
bnNTdHJpbmcgPSBtX2NvbnRleHQzRC0+Z2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpOworICAgICAg
ICBWZWN0b3I8U3RyaW5nPiBleHRlbnNpb25zTGlzdDsKKyAgICAgICAgZXh0ZW5zaW9uc1N0cmlu
Zy5zcGxpdCgnICcsIGV4dGVuc2lvbnNMaXN0KTsKKyAgICAgICAgSGFzaFNldDxTdHJpbmc+IGV4
dGVuc2lvbnM7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXh0ZW5zaW9uc0xpc3Qu
c2l6ZSgpOyArK2kpCisgICAgICAgICAgICBleHRlbnNpb25zLmFkZChleHRlbnNpb25zTGlzdFtp
XSk7CisKKyAgICAgICAgbV9zaGFsbG93Rmx1c2hTdXBwb3J0ZWQgPSBleHRlbnNpb25zLmNvbnRh
aW5zKCJHTF9DSFJPTUlVTV9zaGFsbG93X2ZsdXNoIik7CisKKyAgICAgICAgbV9pbml0aWFsaXpl
ZCA9IHRydWU7CiAgICAgfQogCiAgICAgT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0
M0Q+IG1fY29udGV4dDNEOworICAgIGJvb2wgbV9pbml0aWFsaXplZDsKKyAgICBib29sIG1fc2hh
bGxvd0ZsdXNoU3VwcG9ydGVkOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVy
LmNwcAppbmRleCBiYzFlZDc1YWY5YWY1MGQ5NjRiNzQ3MzE0MzM3ZmU5YzRlYzFmZTRiLi5mMWNk
MmE5ZGVkMjg2OGQwMTdjYzJmNzVmNzA0NGQxM2VmODEwZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Rl
eHR1cmVVcGRhdGVyLmNwcApAQCAtMTAyLDEyICsxMDIsMTIgQEAgdm9pZCBDQ1RleHR1cmVVcGRh
dGVyOjp1cGRhdGUoQ0NHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFRleHR1cmVBbGxvY2F0b3Iq
IGFsbG8KICAgICAgICAgICAgIHVwbG9hZGVyLT51cGxvYWRUZXh0dXJlKGNvbnRleHQsIGVudHJ5
LnRleHR1cmUsIGFsbG9jYXRvciwgZW50cnkuc291cmNlUmVjdCwgZW50cnkuZGVzdFJlY3QpOwog
ICAgICAgICAgICAgZnVsbFVwbG9hZENvdW50Kys7CiAgICAgICAgICAgICBpZiAoIShmdWxsVXBs
b2FkQ291bnQgJSBrVXBsb2FkRmx1c2hQZXJpb2QpKQotICAgICAgICAgICAgICAgIGNvbnRleHQt
PmZsdXNoKCk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+c2hhbGxvd0ZsdXNoSWZTdXBwb3J0
ZWQoKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gZGFu
Z2xpbmcgdXBsb2FkcyB3aXRob3V0IGEgZmx1c2guCiAgICAgICAgIGlmIChmdWxsVXBsb2FkQ291
bnQgJSBrVXBsb2FkRmx1c2hQZXJpb2QpCi0gICAgICAgICAgICBjb250ZXh0LT5mbHVzaCgpOwor
ICAgICAgICAgICAgY29udGV4dC0+c2hhbGxvd0ZsdXNoSWZTdXBwb3J0ZWQoKTsKIAogICAgICAg
ICBib29sIG1vcmVVcGxvYWRzID0gbWF4SW5kZXggPCBtX2Z1bGxFbnRyaWVzLnNpemUoKTsKIApA
QCAtMTI3LDE0ICsxMjcsMTQgQEAgdm9pZCBDQ1RleHR1cmVVcGRhdGVyOjp1cGRhdGUoQ0NHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIFRleHR1cmVBbGxvY2F0b3IqIGFsbG8KICAgICAgICAgICAg
IFVwZGF0ZUVudHJ5JiBlbnRyeSA9IG1fcGFydGlhbEVudHJpZXNbaW5kZXhdOwogICAgICAgICAg
ICAgdXBsb2FkZXItPnVwbG9hZFRleHR1cmUoY29udGV4dCwgZW50cnkudGV4dHVyZSwgYWxsb2Nh
dG9yLCBlbnRyeS5zb3VyY2VSZWN0LCBlbnRyeS5kZXN0UmVjdCk7CiAgICAgICAgICAgICBpZiAo
ISgoaW5kZXgrMSkgJSBrVXBsb2FkRmx1c2hQZXJpb2QpKQotICAgICAgICAgICAgICAgIGNvbnRl
eHQtPmZsdXNoKCk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+c2hhbGxvd0ZsdXNoSWZTdXBw
b3J0ZWQoKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8g
ZGFuZ2xpbmcgcGFydGlhbCB1cGxvYWRzIHdpdGhvdXQgYSBmbHVzaC4KICAgICAgICAgLy8gTm90
ZTogV2UgZG9uJ3QgbmVlZCB0byB1c2UgKGluZGV4KzEpIGluIHRoaXMgY2FzZSBiZWNhdXNlIGlu
ZGV4IHdhcwogICAgICAgICAvLyBpbmNyZW1lbnRlZCBhdCB0aGUgZW5kIG9mIHRoZSBmb3IgbG9v
cC4KICAgICAgICAgaWYgKGluZGV4ICUga1VwbG9hZEZsdXNoUGVyaW9kKQotICAgICAgICAgICAg
Y29udGV4dC0+Zmx1c2goKTsKKyAgICAgICAgICAgIGNvbnRleHQtPnNoYWxsb3dGbHVzaElmU3Vw
cG9ydGVkKCk7CiAKICAgICAgICAgdXBsb2FkZXItPmVuZFVwbG9hZHMoKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxU
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1w
bFRlc3QuY3BwCmluZGV4IGE2ZTliNTMyODZiZjFiMjA0NTlmYmM2YjU4MzZiYzViNTQ0NjAyMzku
LjU2MWIyZDQ4MDgyMzdiODIwY2M0MDM0ZGQxYWY5MzI4ZjUwYTkxY2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3Qu
Y3BwCkBAIC0xNzE3LDYgKzE3MTcsMTIgQEAgbmFtZXNwYWNlIHsKIAogY2xhc3MgTW9ja0NvbnRl
eHQgOiBwdWJsaWMgRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEIHsKIHB1YmxpYzoKKyAgICBNb2Nr
Q29udGV4dCgpCisgICAgeworICAgICAgICBPTl9DQUxMKCp0aGlzLCBnZXRTdHJpbmcoR0xfRVhU
RU5TSU9OUykpCisgICAgICAgICAgICAgICAgLldpbGxCeURlZmF1bHQoUmV0dXJuKFdlYlN0cmlu
ZygiIikpKTsKKyAgICB9CisKICAgICBNT0NLX01FVEhPRDEodXNlUHJvZ3JhbSwgdm9pZChXZWJH
TElkIHByb2dyYW0pKTsKICAgICBNT0NLX01FVEhPRDUodW5pZm9ybTRmLCB2b2lkKFdHQzNEaW50
IGxvY2F0aW9uLCBXR0MzRGZsb2F0IHgsIFdHQzNEZmxvYXQgeSwgV0dDM0RmbG9hdCB6LCBXR0Mz
RGZsb2F0IHcpKTsKICAgICBNT0NLX01FVEhPRDQodW5pZm9ybU1hdHJpeDRmdiwgdm9pZChXR0Mz
RGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgV0dDM0Rib29sZWFuIHRyYW5zcG9zZSwg
Y29uc3QgV0dDM0RmbG9hdCogdmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NUZXh0dXJlVXBkYXRlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVyVGVzdC5jcHAKaW5kZXggODllNmY4ZmYxMzI4MjRm
OTVhMTcwODM4ODkzMjU0ZTQzMTYwMmM4MC4uZDdjNzg1ZjU4MGFhZWZjYzEzMGZjODRhNGZjMzdi
MDE3ZTdlZWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Rl
eHR1cmVVcGRhdGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q1RleHR1cmVVcGRhdGVyVGVzdC5jcHAKQEAgLTUwLDEzICs1MCwyNSBAQCBjbGFzcyBDQ1RleHR1
cmVVcGRhdGVyVGVzdDsKIAogY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0RGb3JVcGxvYWRUZXN0
IDogcHVibGljIEZha2VXZWJHcmFwaGljc0NvbnRleHQzRCB7CiBwdWJsaWM6Ci0gICAgV2ViR3Jh
cGhpY3NDb250ZXh0M0RGb3JVcGxvYWRUZXN0KENDVGV4dHVyZVVwZGF0ZXJUZXN0ICp0ZXN0KSA6
IG1fdGVzdCh0ZXN0KSB7IH0KKyAgICBXZWJHcmFwaGljc0NvbnRleHQzREZvclVwbG9hZFRlc3Qo
Q0NUZXh0dXJlVXBkYXRlclRlc3QgKnRlc3QpCisgICAgICAgIDogbV90ZXN0KHRlc3QpCisgICAg
ICAgICwgbV9zdXBwb3J0U2hhbGxvd0ZsdXNoKHRydWUpCisgICAgeyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgZmx1c2godm9pZCk7CisgICAgdmlydHVhbCB2b2lkIHNoYWxsb3dGbHVzaENIUk9NSVVN
KHZvaWQpOwogICAgIHZpcnR1YWwgR3JHTEludGVyZmFjZSogb25DcmVhdGVHckdMSW50ZXJmYWNl
KCkgeyByZXR1cm4gMDsgfQogCisgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0U3RyaW5nKFdHQzNE
ZW51bSBuYW1lKQorICAgIHsKKyAgICAgICAgaWYgKG1fc3VwcG9ydFNoYWxsb3dGbHVzaCkKKyAg
ICAgICAgICAgIHJldHVybiBXZWJTdHJpbmcoIkdMX0NIUk9NSVVNX3NoYWxsb3dfZmx1c2giKTsK
KyAgICAgICAgcmV0dXJuIFdlYlN0cmluZygiIik7CisgICAgfQorCiBwcml2YXRlOgogICAgIEND
VGV4dHVyZVVwZGF0ZXJUZXN0KiBtX3Rlc3Q7CisgICAgYm9vbCBtX3N1cHBvcnRTaGFsbG93Rmx1
c2g7CiB9OwogCiAKQEAgLTIzMiw2ICsyNDQsMTEgQEAgdm9pZCBXZWJHcmFwaGljc0NvbnRleHQz
REZvclVwbG9hZFRlc3Q6OmZsdXNoKHZvaWQpCiAgICAgbV90ZXN0LT5vbkZsdXNoKCk7CiB9CiAK
K3ZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0RGb3JVcGxvYWRUZXN0OjpzaGFsbG93Rmx1c2hDSFJP
TUlVTSh2b2lkKQoreworICAgIG1fdGVzdC0+b25GbHVzaCgpOworfQorCiB2b2lkIFRleHR1cmVV
cGxvYWRlckZvclVwbG9hZFRlc3Q6OmJlZ2luVXBsb2FkcygpCiB7CiAgICAgbV90ZXN0LT5vbkJl
Z2luVXBsb2FkcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9U
aWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
VGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggOTRhYWJmOTExMjBkNzNlOTVjZjAyNTNl
YjE3YzIxMmI5ZGQ0OWZkYS4uODlmOTk0YTI2Y2I2ODMyNmIxYzNjYWNlMWUzYmY2YzE1YjA2Y2U5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hy
b21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC03Miw3ICs3MiwxMSBAQCBwcml2YXRlOgogCiBjbGFzcyBU
aWxlZExheWVyQ2hyb21pdW1UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgot
ICAgIFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QoKSA6IGNjQ29udGV4dChDQ0dyYXBoaWNzQ29udGV4
dDo6Y3JlYXRlM0QoV2ViS2l0OjpDb21wb3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpj
cmVhdGUoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcygpKSkpIHsgfQor
ICAgIFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QoKSA6IGNjQ29udGV4dChDQ0dyYXBoaWNzQ29udGV4
dDo6Y3JlYXRlM0QoV2ViS2l0OjpDb21wb3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpj
cmVhdGUoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcygpKSkpCisgICAg
eworICAgICAgICBjY0NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOworICAgIH0KKwogICAg
IHZpcnR1YWwgflRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QoKSB7IH0KIAogICAgIHZvaWQgdXBkYXRl
VGV4dHVyZXMoaW50IGNvdW50ID0gNTAwKQpAQCAtNjg0LDYgKzY4OCw3IEBAIFRFU1RfRihUaWxl
ZExheWVyQ2hyb21pdW1UZXN0LCBpbnZhbGlkYXRlRnJvbVByZXBhcmUpCiAgICAgRmFrZVRleHR1
cmVDb3BpZXIgZmFrZUNvcGllcjsKICAgICBGYWtlVGV4dHVyZVVwbG9hZGVyIGZha2VVcGxvYWRl
cjsKICAgICBPd25QdHI8Q0NHcmFwaGljc0NvbnRleHQ+IGNjQ29udGV4dCA9IENDR3JhcGhpY3ND
b250ZXh0OjpjcmVhdGUzRChXZWJLaXQ6OkNvbXBvc2l0b3JGYWtlV2ViR3JhcGhpY3NDb250ZXh0
M0Q6OmNyZWF0ZShXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKCkpKTsK
KyAgICBjY0NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogCiAgICAgLy8gVGhlIHRpbGUg
c2l6ZSBpcyAxMDB4MTAwLCBzbyB0aGlzIGludmFsaWRhdGVzIGFuZCB0aGVuIHBhaW50cyB0d28g
dGlsZXMuCiAgICAgbGF5ZXItPnNldEJvdW5kcyhJbnRTaXplKDEwMCwgMjAwKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153619</attachid>
            <date>2012-07-20 16:41:52 -0700</date>
            <delta_ts>2012-07-23 19:04:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90325-20120720164147.patch</filename>
            <type>text/plain</type>
            <size>12510</size>
            <attacher name="Brian Anderson">brianderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3NmMxNzEzM2YzOGQ4
MDE0ZWY5MGMzOTZhNzI0NWU0NzhhOTNmMTNhLi41YzFmNzVkZDc1YzAwZjVlZTM1OTg3OTY3OTg5
NGIxZTY4YzQ4MzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNy0yMCAg
QnJpYW4gQW5kZXJzb24gIDxicmlhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2No
cm9taXVtXSBVc2Ugc2hhbGxvdyBmbHVzaGVzIHRoYXQgZG9uJ3QgZ2xGbHVzaAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzMjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHNoYWxsb3dGbHVzaENI
Uk9NSVVNIHRvIFdlYkdyYXBoaWNzQ29udGV4dDNELgorCisgICAgICAgICogY2hyb21pdW0vcHVi
bGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJHcmFwaGljc0NvbnRleHQz
RCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjpzaGFsbG93Rmx1c2hD
SFJPTUlVTSk6CisKIDIwMTItMDctMTggIEFudG9pbmUgTGFib3VyICA8cGltYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gSW50cm9kdWNlIENDUmVzb3VyY2VQcm92aWRlciwg
cmVwbGFjaW5nIFRleHR1cmVBbGxvY2F0b3IgYW5kIGhpZGluZyB0ZXh0dXJlcyBmcm9tIGNsaWVu
dHMgdG8gYWxsb3cgdHJhbnNwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M4MGI1MTkwMmY0YTdhNjE5Mjhk
YTYwNGQ4ZjBjNmExYjU0N2NiOC4uODhhZmFhOGMxZDM0MWVhNGQyNWRkODI1NzBjMzQ0MTc3MWUw
MzI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA3LTIwICBCcmlhbiBBbmRl
cnNvbiAgPGJyaWFuZGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFVz
ZSBzaGFsbG93IGZsdXNoZXMgdGhhdCBkb24ndCBnbEZsdXNoCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDMyNQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgcGx1bWJpbmcgZm9yIHRoZSBzaGFsbG93
Rmx1c2hDSFJPTUlVTSBleHRlbnNpb24gYW5kIHVzZXMKKyAgICAgICAgc2hhbGxvdyBmbHVzaGVz
IGluc3RlYWQgb2Ygbm9ybWFsIGZsdXNoZXMgd2hlbiB1cGxvYWRpbmcgdGV4dHVyZXMuCisgICAg
ICAgIFNoYWxsb3cgZmx1c2hlcyBhbGxvdyB1cyB0byBpbml0aWF0ZSBjb21tYW5kIGJ1ZmZlciBm
bHVzaGVzIHRvCisgICAgICAgIHRoZSBHUFUgdGhyZWFkL3Byb2Nlc3Mgd2l0aG91dCB0aGUgb3Zl
cmhlYWQgb2YgYSB0cnVlIGdsRmx1c2guCisKKyAgICAgICAgQ0NUZXh0dXJlVXBkYXRlclRlc3Qg
dXBkYXRlZCB0byByZWNvZ25pemUgc2hhbGxvdyBmbHVzaGVzLgorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFeHRlbnNpb25zM0RDaHJvbWl1bTo6c2hhbGxvd0ZsdXNoQ0hST01JVU0pOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0
ZW5zaW9uczNEQ2hyb21pdW0uaDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRENocm9taXVtKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0dyYXBoaWNzQ29udGV4dC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVzb3VyY2VQcm92
aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1Jlc291cmNlUHJvdmlkZXI6OnNoYWxsb3dG
bHVzaElmU3VwcG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
Q0NSZXNvdXJjZVByb3ZpZGVyOjpDQ1Jlc291cmNlUHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NSZXNvdXJjZVByb3ZpZGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jlc291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKENDUmVz
b3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVy
Ojp1cGRhdGUpOgorCiAyMDEyLTA3LTIwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJFR1JFU1NJT04ocjEyMjg3Myk6IDE1JSByZWdyZXNzaW9uIG9uIERyb21h
ZW8vZG9tLWF0dHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZDk5MDE4OTdhODIwMDAy
MjY2N2QxNzQ0NzkzM2Y5YjUwMTdhYTdmNC4uYTdlYWYxZDk1NzdmMTQxY2VlMGM2NTlkNWE5MmEw
MjUwZjY5Nzc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMi0wNy0yMCAgQnJpYW4gQW5kZXJzb24gIDxicmlhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBVc2Ugc2hhbGxvdyBmbHVzaGVzIHRoYXQgZG9uJ3QgZ2xGbHVz
aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzMjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2Vk
IENDVGV4dHVyZVVwZGF0ZXJUZXN0IHRvIHJlY29nbml6ZSBzaGFsbG93Rmx1c2hDSFJPTUlVTSgp
LgorCisgICAgICAgICogdGVzdHMvQ0NUZXh0dXJlVXBkYXRlclRlc3QuY3BwOgorCiAyMDEyLTA3
LTIwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVt
XSBBZGQgV2ViVmlldzo6em9vbVRvRmluZEluUGFnZVJlY3QgZm9yIEFuZHJvaWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0Qu
aCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0Qu
aAppbmRleCA0NGMyMDY3MTlhZjE4ZDhhNjFiMmQ0MTc2ZjllM2RkYTk1NmY4MmFiLi5lN2Q3YTY0
YjRkODgzOTBiZGMyM2YwMWM4OWJmYTY0NzgxMDE1MDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCkBAIC00MjEs
NiArNDIxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4dHVyZUNIUk9NSVVN
KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEdWludCBzb3VyY2VJZCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXR0MzRHVpbnQgZGVzdElkLCBXR0MzRGludCBsZXZlbCwgV0dD
M0RlbnVtIGludGVybmFsRm9ybWF0KSB7IH0KIAorICAgIC8vIEdMX0NIUk9NSVVNX3NoYWxsb3df
Zmx1c2gKKyAgICB2aXJ0dWFsIHZvaWQgc2hhbGxvd0ZsdXNoQ0hST01JVU0oKSB7IH0KKwogICAg
IEdyR0xJbnRlcmZhY2UqIGNyZWF0ZUdyR0xJbnRlcmZhY2UoKTsKIAogcHJvdGVjdGVkOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9FeHRlbnNp
b25zM0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBw
b3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAppbmRleCA3NWE3Njg5ZTNiMmU0NGRiZmUzMWQ5
YTVhZGE1OTI4NjcxZjkyNjM0Li5lN2IxYTIyY2Y5Yjg5YzU3MDJiODJlODU1MDUyNDQwOTQyM2Ri
ODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcApAQCAtMTc2LDQgKzE3Niw5
IEBAIHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmNvcHlUZXh0dXJlQ0hST01JVU0oR0MzRGVu
dW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0CiAgICAgbV9wcml2YXRlLT53ZWJDb250ZXh0KCkt
PmNvcHlUZXh0dXJlQ0hST01JVU0odGFyZ2V0LCBzb3VyY2VJZCwgZGVzdElkLCBsZXZlbCwgaW50
ZXJuYWxGb3JtYXQpOwogfQogCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpzaGFsbG93Rmx1
c2hDSFJPTUlVTSgpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+d2ViQ29udGV4dCgpLT5zaGFs
bG93Rmx1c2hDSFJPTUlVTSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25z
M0RDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
RXh0ZW5zaW9uczNEQ2hyb21pdW0uaAppbmRleCBmZjdlZDdlMjlmYTllNDBiMGE0NzM5YjVmMWRk
Mjg0M2ExZDA1NjlhLi44MDVlMjBhNzlkMGQwOWM4OTEyOTRiNjlmM2I2MzhkMzVhNjEzMTQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRl
bnNpb25zM0RDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgfkV4dGVuc2lvbnMzRENocm9taXVtKCk7CiAKICAgICAvLyBTdXBwb3J0
ZWQgZXh0ZW5zaW9uczoKKyAgICAvLyAgIEdMX0NIUk9NSVVNX3NoYWxsb3dfZmx1c2ggIDogb25s
eSBzdXBwb3J0ZWQgaWYgYW4gaXBjIGNvbW1hbmQgYnVmZmVyIGlzIHVzZWQuCiAgICAgLy8gICBH
TF9DSFJPTUlVTV9yZXNvdXJjZV9zYWZlICA6IGluZGljYXRpbmcgdGhhdCB0ZXh0dXJlcy9yZW5k
ZXJidWZmZXJzIGFyZSBhbHdheXMgaW5pdGlhbGl6ZWQgYmVmb3JlIHJlYWQvd3JpdGUuCiAgICAg
Ly8gICBHTF9DSFJPTUlVTV9zdHJpY3RfYXR0cmlicyA6IGluZGljYXRpbmcgYSBHTCBlcnJvciBp
cyBnZW5lcmF0ZWQgZm9yIG91dC1vZi1ib3VuZHMgYnVmZmVyIGFjY2Vzc2VzLgogICAgIC8vICAg
R0xfQ0hST01JVU1fcG9zdF9zdWJfYnVmZmVyCkBAIC0xMjIsNiArMTIzLDkgQEAgcHVibGljOgog
ICAgIC8vIEdMX0NIUk9NSVVNX2NvcHlfdGV4dHVyZQogICAgIHZvaWQgY29weVRleHR1cmVDSFJP
TUlVTShHQzNEZW51bSwgUGxhdGZvcm0zRE9iamVjdCwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGlu
dCwgR0MzRGVudW0pOwogCisgICAgLy8gR0xfQ0hST01JVU1fc2hhbGxvd19mbHVzaAorICAgIHZp
cnR1YWwgdm9pZCBzaGFsbG93Rmx1c2hDSFJPTUlVTSgpOworCiBwcml2YXRlOgogICAgIC8vIElu
c3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBzdHJpY3RseSBvd25lZCBieSB0aGUgR3JhcGhpY3ND
b250ZXh0M0QgaW1wbGVtZW50YXRpb24gYW5kIGRvIG5vdAogICAgIC8vIG5lZWQgdG8gYmUgaW5z
dGFudGlhdGVkIGJ5IGFueSBvdGhlciBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NHcmFwaGljc0NvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDR3JhcGhpY3NDb250ZXh0
LmgKaW5kZXggYmU4YzhhNTU3YTkzNDAzOGVhZmFmZmUzNTgwMGQ1YTRmYjVjYjZiZC4uNDA1ODg1
ZmZiNWMzMzIzMzAxNjZkMzMzNmIwZDg5NzM4ODIwZjEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NHcmFwaGljc0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0dyYXBo
aWNzQ29udGV4dC5oCkBAIC00OCwxMiArNDgsNiBAQCBwdWJsaWM6CiAKICAgICBXZWJLaXQ6Oldl
YkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M0QoKSB7IHJldHVybiBtX2NvbnRleHQzRC5nZXQo
KTsgfQogCi0gICAgdm9pZCBmbHVzaCgpCi0gICAgewotICAgICAgICBpZiAobV9jb250ZXh0M0Qp
Ci0gICAgICAgICAgICBtX2NvbnRleHQzRC0+Zmx1c2goKTsKLSAgICB9Ci0KIHByaXZhdGU6CiAg
ICAgQ0NHcmFwaGljc0NvbnRleHQoKSB7IH0KICAgICBleHBsaWNpdCBDQ0dyYXBoaWNzQ29udGV4
dChQYXNzT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQzRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
UmVzb3VyY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1Jlc291cmNlUHJvdmlkZXIuY3BwCmluZGV4IGVmODJiZjIyYTU5NWVkN2Q5
ODZiMTQ0YWUxNjY3MmQwNTZmMDQ4OTAuLjQ5YzNiMjQzZjUxMzQwNWNjN2Y4Y2Q0NDU5MWUxMGFi
YWVlZTYxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDUmVzb3VyY2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZXNvdXJjZVByb3ZpZGVyLmNwcApAQCAtMTk1
LDYgKzE5NSwyMCBAQCB2b2lkIENDUmVzb3VyY2VQcm92aWRlcjo6Zmx1c2goKQogICAgIGNvbnRl
eHQzZC0+Zmx1c2goKTsKIH0KIAorYm9vbCBDQ1Jlc291cmNlUHJvdmlkZXI6OnNoYWxsb3dGbHVz
aElmU3VwcG9ydGVkKCkKK3sKKyAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwor
ICAgIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QgPSBtX2NvbnRleHQtPmNvbnRleHQz
RCgpOworICAgIGlmICghY29udGV4dDNkKSB7CisgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
dGhpcyBwYXRoIGZvciBzb2Z0d2FyZSBjb21wb3NpdGluZy4KKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIGlmIChtX3VzZVNoYWxsb3dGbHVzaCkKKyAgICAgICAgY29udGV4dDNk
LT5zaGFsbG93Rmx1c2hDSFJPTUlVTSgpOworICAgIHJldHVybiBtX3VzZVNoYWxsb3dGbHVzaDsK
K30KKwogdW5zaWduZWQgQ0NSZXNvdXJjZVByb3ZpZGVyOjpsb2NrRm9yUmVhZChSZXNvdXJjZUlk
IGlkKQogewogICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CkBAIC0yMTcsNiAr
MjMxLDcgQEAgQ0NSZXNvdXJjZVByb3ZpZGVyOjpDQ1Jlc291cmNlUHJvdmlkZXIoQ0NHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQpCiAgICAgLCBtX25leHRJZCgxKQogICAgICwgbV91c2VUZXh0dXJl
U3RvcmFnZUV4dChmYWxzZSkKICAgICAsIG1fdXNlVGV4dHVyZVVzYWdlSGludChmYWxzZSkKKyAg
ICAsIG1fdXNlU2hhbGxvd0ZsdXNoKGZhbHNlKQogICAgICwgbV9tYXhUZXh0dXJlU2l6ZSgwKQog
ewogfQpAQCAtMjQwLDYgKzI1NSw4IEBAIGJvb2wgQ0NSZXNvdXJjZVByb3ZpZGVyOjppbml0aWFs
aXplKCkKICAgICAgICAgICAgIG1fdXNlVGV4dHVyZVVzYWdlSGludCA9IHRydWU7CiAgICAgICAg
IGVsc2UgaWYgKGV4dGVuc2lvbnNbaV0gPT0gIkdMX0NIUk9NSVVNX21hcF9zdWIiKQogICAgICAg
ICAgICAgdXNlTWFwU3ViID0gdHJ1ZTsKKyAgICAgICAgZWxzZSBpZiAoZXh0ZW5zaW9uc1tpXSA9
PSAiR0xfQ0hST01JVU1fc2hhbGxvd19mbHVzaCIpCisgICAgICAgICAgICBtX3VzZVNoYWxsb3dG
bHVzaCA9IHRydWU7CiAgICAgfQogCiAgICAgbV90ZXhTdWJJbWFnZSA9IGFkb3B0UHRyKG5ldyBM
YXllclRleHR1cmVTdWJJbWFnZSh1c2VNYXBTdWIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVzb3VyY2VQcm92aWRlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZXNvdXJjZVBy
b3ZpZGVyLmgKaW5kZXggMDQ3NmYwZTg4NmM5ZTMzMTEyMTNlYWFmYzIzMTE5MjFmNGI0NTNmOC4u
OWIwYjQ0Y2FmMjcxZTc5NGQ2YTE0NjRkNzU4ZmVhZmZkYjVjMWFhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZXNvdXJjZVByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NSZXNvdXJjZVByb3ZpZGVyLmgKQEAgLTg1LDYgKzg1LDEwIEBAIHB1YmxpYzoKICAgICAvLyBy
ZXNwZWN0IHRvIG90aGVyIGNvbnRleHRzLgogICAgIHZvaWQgZmx1c2goKTsKIAorICAgIC8vIE9u
bHkgZmx1c2ggdGhlIGNvbW1hbmQgYnVmZmVyIGlmIHN1cHBvcnRlZC4KKyAgICAvLyBSZXR1cm5z
IHRydWUgaWYgdGhlIHNoYWxsb3cgZmx1c2ggb2NjdXJyZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAg
ICBib29sIHNoYWxsb3dGbHVzaElmU3VwcG9ydGVkKCk7CisKIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIENDU2NvcGVkTG9ja1Jlc291cmNlRm9yUmVhZDsKICAgICBmcmllbmQgY2xhc3MgQ0NT
Y29wZWRMb2NrUmVzb3VyY2VGb3JXcml0ZTsKQEAgLTExNyw2ICsxMjEsNyBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBtX3VzZVRleHR1cmVTdG9yYWdlRXh0OwogICAgIGJvb2wgbV91c2VUZXh0dXJl
VXNhZ2VIaW50OworICAgIGJvb2wgbV91c2VTaGFsbG93Rmx1c2g7CiAgICAgT3duUHRyPExheWVy
VGV4dHVyZVN1YkltYWdlPiBtX3RleFN1YkltYWdlOwogICAgIGludCBtX21heFRleHR1cmVTaXpl
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5jcHAKaW5kZXggOTY3YWQ1ZTNmZDVi
NzQxZjZkMzMwY2M1OWVkZmU4MDkzOGMyMzM4My4uYzZmNDkyOWE4NjEwNjhmMWU2ZjkwNTBlNGMx
MDQxMmU3ZTM1MDViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5jcHAKQEAgLTEw
MiwxMiArMTAyLDEyIEBAIHZvaWQgQ0NUZXh0dXJlVXBkYXRlcjo6dXBkYXRlKENDUmVzb3VyY2VQ
cm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllCiAgICAgICAgICAgICB1cGxv
YWRlci0+dXBsb2FkVGV4dHVyZShlbnRyeS50ZXh0dXJlLCByZXNvdXJjZVByb3ZpZGVyLCBlbnRy
eS5zb3VyY2VSZWN0LCBlbnRyeS5kZXN0UmVjdCk7CiAgICAgICAgICAgICBmdWxsVXBsb2FkQ291
bnQrKzsKICAgICAgICAgICAgIGlmICghKGZ1bGxVcGxvYWRDb3VudCAlIGtVcGxvYWRGbHVzaFBl
cmlvZCkpCi0gICAgICAgICAgICAgICAgcmVzb3VyY2VQcm92aWRlci0+Zmx1c2goKTsKKyAgICAg
ICAgICAgICAgICByZXNvdXJjZVByb3ZpZGVyLT5zaGFsbG93Rmx1c2hJZlN1cHBvcnRlZCgpOwog
ICAgICAgICB9CiAKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZXJlIGFyZSBubyBkYW5nbGluZyB1
cGxvYWRzIHdpdGhvdXQgYSBmbHVzaC4KICAgICAgICAgaWYgKGZ1bGxVcGxvYWRDb3VudCAlIGtV
cGxvYWRGbHVzaFBlcmlvZCkKLSAgICAgICAgICAgIHJlc291cmNlUHJvdmlkZXItPmZsdXNoKCk7
CisgICAgICAgICAgICByZXNvdXJjZVByb3ZpZGVyLT5zaGFsbG93Rmx1c2hJZlN1cHBvcnRlZCgp
OwogCiAgICAgICAgIGJvb2wgbW9yZVVwbG9hZHMgPSBtYXhJbmRleCA8IG1fZnVsbEVudHJpZXMu
c2l6ZSgpOwogCkBAIC0xMjcsMTQgKzEyNywxNCBAQCB2b2lkIENDVGV4dHVyZVVwZGF0ZXI6OnVw
ZGF0ZShDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZQog
ICAgICAgICAgICAgVXBkYXRlRW50cnkmIGVudHJ5ID0gbV9wYXJ0aWFsRW50cmllc1tpbmRleF07
CiAgICAgICAgICAgICB1cGxvYWRlci0+dXBsb2FkVGV4dHVyZShlbnRyeS50ZXh0dXJlLCByZXNv
dXJjZVByb3ZpZGVyLCBlbnRyeS5zb3VyY2VSZWN0LCBlbnRyeS5kZXN0UmVjdCk7CiAgICAgICAg
ICAgICBpZiAoISgoaW5kZXgrMSkgJSBrVXBsb2FkRmx1c2hQZXJpb2QpKQotICAgICAgICAgICAg
ICAgIHJlc291cmNlUHJvdmlkZXItPmZsdXNoKCk7CisgICAgICAgICAgICAgICAgcmVzb3VyY2VQ
cm92aWRlci0+c2hhbGxvd0ZsdXNoSWZTdXBwb3J0ZWQoKTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIE1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gZGFuZ2xpbmcgcGFydGlhbCB1cGxvYWRzIHdpdGhv
dXQgYSBmbHVzaC4KICAgICAgICAgLy8gTm90ZTogV2UgZG9uJ3QgbmVlZCB0byB1c2UgKGluZGV4
KzEpIGluIHRoaXMgY2FzZSBiZWNhdXNlIGluZGV4IHdhcwogICAgICAgICAvLyBpbmNyZW1lbnRl
ZCBhdCB0aGUgZW5kIG9mIHRoZSBmb3IgbG9vcC4KICAgICAgICAgaWYgKGluZGV4ICUga1VwbG9h
ZEZsdXNoUGVyaW9kKQotICAgICAgICAgICAgcmVzb3VyY2VQcm92aWRlci0+Zmx1c2goKTsKKyAg
ICAgICAgICAgIHJlc291cmNlUHJvdmlkZXItPnNoYWxsb3dGbHVzaElmU3VwcG9ydGVkKCk7CiAK
ICAgICAgICAgdXBsb2FkZXItPmVuZFVwbG9hZHMoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZXJUZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUZXh0dXJlVXBkYXRlclRlc3QuY3BwCmluZGV4IGI3
YTI2ZGYyZmRjYmY1OTE1ZjA2MjZiNjhkZWNlN2IwMWM0NjMxZTUuLmJmYjM1YzA0OGNhYjAyMWYw
ZjkyY2Y0NDhiNmUyYmU1MzY0MTgxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NUZXh0dXJlVXBkYXRlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NUZXh0dXJlVXBkYXRlclRlc3QuY3BwCkBAIC01MSwxMiArNTEsMjUgQEAg
Y2xhc3MgQ0NUZXh0dXJlVXBkYXRlclRlc3Q7CiAKIGNsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDNE
Rm9yVXBsb2FkVGVzdCA6IHB1YmxpYyBGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QgewogcHVibGlj
OgotICAgIFdlYkdyYXBoaWNzQ29udGV4dDNERm9yVXBsb2FkVGVzdChDQ1RleHR1cmVVcGRhdGVy
VGVzdCAqdGVzdCkgOiBtX3Rlc3QodGVzdCkgeyB9CisgICAgV2ViR3JhcGhpY3NDb250ZXh0M0RG
b3JVcGxvYWRUZXN0KENDVGV4dHVyZVVwZGF0ZXJUZXN0ICp0ZXN0KQorICAgICAgICA6IG1fdGVz
dCh0ZXN0KQorICAgICAgICAsIG1fc3VwcG9ydFNoYWxsb3dGbHVzaCh0cnVlKQorICAgIHsgfQor
CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoKHZvaWQpOworICAgIHZpcnR1YWwgdm9pZCBzaGFsbG93
Rmx1c2hDSFJPTUlVTSh2b2lkKTsKICAgICB2aXJ0dWFsIEdyR0xJbnRlcmZhY2UqIG9uQ3JlYXRl
R3JHTEludGVyZmFjZSgpIHsgcmV0dXJuIDA7IH0KIAorICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdl
dFN0cmluZyhXR0MzRGVudW0gbmFtZSkKKyAgICB7CisgICAgICAgIGlmIChtX3N1cHBvcnRTaGFs
bG93Rmx1c2gpCisgICAgICAgICAgICByZXR1cm4gV2ViU3RyaW5nKCJHTF9DSFJPTUlVTV9zaGFs
bG93X2ZsdXNoIik7CisgICAgICAgIHJldHVybiBXZWJTdHJpbmcoIiIpOworICAgIH0KKwogcHJp
dmF0ZToKICAgICBDQ1RleHR1cmVVcGRhdGVyVGVzdCogbV90ZXN0OworICAgIGJvb2wgbV9zdXBw
b3J0U2hhbGxvd0ZsdXNoOwogfTsKIAogCkBAIC0yMzEsNiArMjQ0LDExIEBAIHZvaWQgV2ViR3Jh
cGhpY3NDb250ZXh0M0RGb3JVcGxvYWRUZXN0OjpmbHVzaCh2b2lkKQogICAgIG1fdGVzdC0+b25G
bHVzaCgpOwogfQogCit2b2lkIFdlYkdyYXBoaWNzQ29udGV4dDNERm9yVXBsb2FkVGVzdDo6c2hh
bGxvd0ZsdXNoQ0hST01JVU0odm9pZCkKK3sKKyAgICBtX3Rlc3QtPm9uRmx1c2goKTsKK30KKwog
dm9pZCBUZXh0dXJlVXBsb2FkZXJGb3JVcGxvYWRUZXN0OjpiZWdpblVwbG9hZHMoKQogewogICAg
IG1fdGVzdC0+b25CZWdpblVwbG9hZHMoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>