<?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>84210</bug_id>
          
          <creation_ts>2012-04-17 16:34:48 -0700</creation_ts>
          <short_desc>[chromium] Add tracing for active composited animations</short_desc>
          <delta_ts>2012-08-20 11:22:06 -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>94350</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nat Duca">nduca</reporter>
          <assigned_to>vollick</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>jamesr</cc>
    
    <cc>vollick</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>604466</commentid>
    <comment_count>0</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-17 16:34:48 -0700</bug_when>
    <thetext>[chromium] Add tracing for active composited animations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604467</commentid>
    <comment_count>1</comment_count>
      <attachid>137632</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-17 16:35:05 -0700</bug_when>
    <thetext>Created attachment 137632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604490</commentid>
    <comment_count>2</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-04-17 16:59:29 -0700</bug_when>
    <thetext>I think this code might start a lot of unfinished async traces. Animations created on the main thread will start an async trace in their constructor, but after they&apos;re cloned they&apos;ll no longer be the controlling instance and won&apos;t end the trace in their destructor. I think this would be simpler if isControllingInstance was a constructor parameter, perhaps only available via a 2nd, private constructor. This would also let the clone method remain const.

Group id + target property (formerly known as the animation signature) uniquely identify an animation on a thread (the clone has the same signature). Could this be used instead of an instance id?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605021</commentid>
    <comment_count>3</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-18 13:08:31 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I think this code might start a lot of unfinished async traces. Animations created on the main thread will start an async trace in their constructor, but after they&apos;re cloned they&apos;ll no longer be the controlling instance and won&apos;t end the trace in their destructor.

Correct, but then there&apos;s another active animation that will take over and that one&apos;s destructor should eventually run issuing the close, right? Where did I get confused? :)

&gt; Group id + target property (formerly known as the animation signature) uniquely identify an animation on a thread (the clone has the same signature). Could this be used instead of an instance id?

Our id system requires a single integer or pointer. :&apos;(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605030</commentid>
    <comment_count>4</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-04-18 13:18:34 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; I think this code might start a lot of unfinished async traces. Animations created on the main thread will start an async trace in their constructor, but after they&apos;re cloned they&apos;ll no longer be the controlling instance and won&apos;t end the trace in their destructor.
&gt; 
&gt; Correct, but then there&apos;s another active animation that will take over and that one&apos;s destructor should eventually run issuing the close, right? Where did I get confused? :)

Ah, right. The main thread&apos;s animation totally does get closed on the impl thread (since the id gets passed across), but now I think it&apos;s the impl thread animation that won&apos;t get its trace closed. The main and impl thread animations will both start traces with different id&apos;s in their constructors, but I think that only one of those traces will get closed. Is that right?

&gt; 
&gt; &gt; Group id + target property (formerly known as the animation signature) uniquely identify an animation on a thread (the clone has the same signature). Could this be used instead of an instance id?
&gt; 
&gt; Our id system requires a single integer or pointer. :&apos;(
kk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605039</commentid>
    <comment_count>5</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-18 13:33:13 -0700</bug_when>
    <thetext>Whoops! You&apos;re right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605046</commentid>
    <comment_count>6</comment_count>
      <attachid>137756</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-18 13:40:39 -0700</bug_when>
    <thetext>Created attachment 137756
Fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605052</commentid>
    <comment_count>7</comment_count>
      <attachid>137759</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-18 13:45:10 -0700</bug_when>
    <thetext>Created attachment 137759
Fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605328</commentid>
    <comment_count>8</comment_count>
      <attachid>137759</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-18 20:12:31 -0700</bug_when>
    <thetext>Comment on attachment 137759
Fixes

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

R=me

&gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.h:137
&gt; +    // Animations live dual lives. When they are first created, they live on the main thread and there isi

typo &quot;isi&quot; -&gt; &quot;is&quot;

&gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.h:146
&gt; +    // been transfered to the impl thread, the controlling instance is the main
&gt; +    // thread.

controlling instance is the main thread what? the main thread animation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609521</commentid>
    <comment_count>9</comment_count>
      <attachid>138750</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-25 00:40:31 -0700</bug_when>
    <thetext>Created attachment 138750
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609525</commentid>
    <comment_count>10</comment_count>
      <attachid>138751</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-25 00:49:15 -0700</bug_when>
    <thetext>Created attachment 138751
One that builds, hopefully</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696188</commentid>
    <comment_count>11</comment_count>
      <attachid>158603</attachid>
    <who name="">vollick</who>
    <bug_when>2012-08-15 11:26:25 -0700</bug_when>
    <thetext>Created attachment 158603
Patch

This patch controls the tracing in the layer animation controller rather than in
the active animation. In addition to tracing the duration of the animations (on
both threads), it traces when animations change state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696201</commentid>
    <comment_count>12</comment_count>
      <attachid>158603</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-15 11:35:19 -0700</bug_when>
    <thetext>Comment on attachment 158603
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.h:97
&gt; +    virtual bool isImpl() const OVERRIDE { return false; }

This is gross to add just for debugging.  Can you find another way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696213</commentid>
    <comment_count>13</comment_count>
      <attachid>158603</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-08-15 11:44:32 -0700</bug_when>
    <thetext>Comment on attachment 158603
Patch

Wow, thats nice. Maybe just fix the impl thing with a construction-time member var?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696323</commentid>
    <comment_count>14</comment_count>
      <attachid>158628</attachid>
    <who name="">vollick</who>
    <bug_when>2012-08-15 13:38:45 -0700</bug_when>
    <thetext>Created attachment 158628
Patch

(In reply to comment #12)
&gt; (From update of attachment 158603 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=158603&amp;action=review
&gt;
&gt; &gt; Source/WebCore/platform/graphics/chromium/LayerChromium.h:97
&gt; &gt; +    virtual bool isImpl() const OVERRIDE { return false; }
&gt;
&gt; This is gross to add just for debugging.  Can you find another way?

Yeah, it is gross. I tried what Nat suggested and now CCActiveAnimations know if
they are the &apos;controlling instance&apos; (defined in CCActiveAnimation.h). Does that
seem any better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696458</commentid>
    <comment_count>15</comment_count>
      <attachid>158628</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-15 16:04:00 -0700</bug_when>
    <thetext>Comment on attachment 158628
Patch

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

I like the controlling instance concept much better.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.cpp:146
&gt; +    bool forImplThread = false;
&gt; +    return clone(forImplThread);

Looks like what you really want is for clone to take a 2-state enum parameter, not a bool

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerAnimationController.cpp:427
&gt; +const char * getTargetPropertyName(CCActiveAnimation::TargetProperty targetProperty)

&quot;const char*&quot;, no space between the * and the type. &quot;get&quot; is a bit of an odd prefix for this. Why not have a static lookup table keyed by enum? it could live in .rodata

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerAnimationController.cpp:462
&gt; +    char nameBuffer[256];
&gt; +    sprintf(nameBuffer, &quot;%s-%d%s&quot;, getTargetPropertyName(animation-&gt;targetProperty()), animation-&gt;group(), animation-&gt;isControllingInstance() ? &quot;(impl)&quot; : &quot;&quot;);

use snprintf() if you have a fixed-sized buffer

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerAnimationController.cpp:473
&gt; +    const char *oldRunStateName = getRunStateName(animation-&gt;runState());

The * goes with the type (const char), not the variable name.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerAnimationController.cpp:481
&gt; +    char stateBuffer[256];
&gt; +    sprintf(stateBuffer, &quot;%s-&gt;%s&quot;, oldRunStateName, newRunStateName);

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696653</commentid>
    <comment_count>16</comment_count>
      <attachid>158628</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-15 19:32:45 -0700</bug_when>
    <thetext>Comment on attachment 158628
Patch

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

I think with those changes you&apos;re good to go.  Feel free to put another patch up for review if you&apos;re unsure about any of it or just want a second look.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerAnimationController.cpp:475
&gt; +    const char *newRunStateName = getRunStateName(runState);

and again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697190</commentid>
    <comment_count>17</comment_count>
      <attachid>158835</attachid>
    <who name="">vollick</who>
    <bug_when>2012-08-16 09:03:54 -0700</bug_when>
    <thetext>Created attachment 158835
Patch

Addressed reviewer comments, but adding r? because I reworked the patch a fair
bit. Now that CCActiveAnimations own all the information to do the tracing, it
makes no sense for that code to live in CCLayerAnimationController. This made
the patch much cleaner, but there was one catch -- in the animation controller,
when we cloned animations for the impl thread, this was often followed by an
initialization step to set up the initial run state and start time. These state
changes caused logging, but they should not have. To get around this, I made a
new clone function called cloneAndInitialize for cloning and initializing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697243</commentid>
    <comment_count>18</comment_count>
      <attachid>158835</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-16 10:06:18 -0700</bug_when>
    <thetext>Comment on attachment 158835
Patch

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

R=me again - this looks real good. Left a few comments for you to ponder, but I leave it up to you to decide what to do about them.

&gt; Source/WebCore/ChangeLog:8
&gt; +        This patch issues the trace events from the controller. It will report

looks a bit out of date, since the traces are now issued by the animation itself

&gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.cpp:36
&gt; +static const char* const s_runStateNames[] = {

could you comment the enums these statics are supposed to match up with?

can we compile assert that these stay in sync with the enums - or at least have the same length? perhaps we could add a sentinel enum value and COMPILE_ASSERT() on the size of these arrays?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.h:117
&gt; +        ForImplThread = 0,
&gt; +        ForMainThread

could we express this enum in terms of controlling / non controlling rather than main thread / impl thread? other than this, the CCActiveAnimation logic doesn&apos;t know anything about threads specifically - does it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697819</commentid>
    <comment_count>19</comment_count>
      <attachid>158978</attachid>
    <who name="">vollick</who>
    <bug_when>2012-08-16 19:17:58 -0700</bug_when>
    <thetext>Created attachment 158978
Patch

(In reply to comment #18)
&gt; (From update of attachment 158835 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=158835&amp;action=review
&gt;
&gt; R=me again - this looks real good. Left a few comments for you to ponder, but I leave it up to you to decide what to do about them.
&gt;
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        This patch issues the trace events from the controller. It will report
&gt;
&gt; looks a bit out of date, since the traces are now issued by the animation itself
Fixed.
&gt;
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.cpp:36
&gt; &gt; +static const char* const s_runStateNames[] = {
&gt;
&gt; could you comment the enums these statics are supposed to match up with?
Done.
&gt;
&gt; can we compile assert that these stay in sync with the enums - or at least have the same length? perhaps we could add a sentinel enum value and COMPILE_ASSERT() on the size of these arrays?
Done.
&gt;
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.h:117
&gt; &gt; +        ForImplThread = 0,
&gt; &gt; +        ForMainThread
&gt;
&gt; could we express this enum in terms of controlling / non controlling rather than main thread / impl thread? other than this, the CCActiveAnimation logic doesn&apos;t know anything about threads specifically - does it?
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698284</commentid>
    <comment_count>20</comment_count>
      <attachid>158978</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-17 06:48:34 -0700</bug_when>
    <thetext>Comment on attachment 158978
Patch

Clearing flags on attachment: 158978

Committed r125892: &lt;http://trac.webkit.org/changeset/125892&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698285</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-17 06:48:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698357</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-17 08:29:49 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 94350</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699612</commentid>
    <comment_count>23</comment_count>
      <attachid>159458</attachid>
    <who name="">vollick</who>
    <bug_when>2012-08-20 09:54:52 -0700</bug_when>
    <thetext>Created attachment 159458
Patch

Fix the windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699719</commentid>
    <comment_count>24</comment_count>
      <attachid>159458</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 11:22:01 -0700</bug_when>
    <thetext>Comment on attachment 159458
Patch

Clearing flags on attachment: 159458

Committed r126045: &lt;http://trac.webkit.org/changeset/126045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699720</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 11:22:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137632</attachid>
            <date>2012-04-17 16:35:05 -0700</date>
            <delta_ts>2012-04-18 13:40:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84210-20120417163504.patch</filename>
            <type>text/plain</type>
            <size>6011</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIyZTIzNWQ1MTcyNDU2
YTE5YWQzZDljN2YwYmRkMTBlMmJmMmJhMy4uNmRkMWRhZjk0NjY4NTc1ZWViOGRjMjZiOWU5ZmM0
OWI4MWVhZTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA0LTE3ICBOYXQg
RHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCB0cmFj
aW5nIGZvciBhY3RpdmUgY29tcG9zaXRlZCBhbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDIxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmlt
YXRpb246OkNDQWN0aXZlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5p
bWF0aW9uOjp+Q0NBY3RpdmVBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVB
bmltYXRpb246OnRyYW5zZmVyVG9JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoQ0NBY3RpdmVB
bmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZCk6CisKIDIwMTIt
MDQtMTYgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
aW5zZXJ0ZWRJbnRvRG9jdW1lbnQgYW5kIGluc2VydGVkSW50b1RyZWUgc2hvdWxkIGJlIHVuaXRp
ZmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCmluZGV4IDI2MGQ3ZDQ3ZTNi
MzFiNjJmNTliMWRhODA2MGFjZDViNzg3MzcyYWMuLmUxNTE5ZTMyNjgyOTAwMzY5ZGY2MmZmZTIz
YWU0ODRhMzkwYTQ2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgImNjL0NDQWN0aXZlQW5pbWF0aW9uLmgiCiAKKyNp
bmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVkZSAiY2MvQ0NBbmltYXRpb25DdXJ2ZS5oIgog
CiAjaW5jbHVkZSA8Y21hdGg+CkBAIC00OCwxMSArNDksMTcgQEAgQ0NBY3RpdmVBbmltYXRpb246
OkNDQWN0aXZlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NBbmltYXRpb25DdXJ2ZT4gY3VydmUsIGlu
dCBhbmkKICAgICAsIG1fbmVlZHNTeW5jaHJvbml6ZWRTdGFydFRpbWUoZmFsc2UpCiAgICAgLCBt
X3BhdXNlVGltZSgwKQogICAgICwgbV90b3RhbFBhdXNlZFRpbWUoMCkKKyAgICAsIG1faXNDb250
cm9sbGluZ0luc3RhbmNlKHRydWUpCiB7CisgICAgbV9pbnN0YW5jZUlEID0gdGhpczsKKyAgICBU
UkFDRV9FVkVOVF9BU1lOQ19CRUdJTjAoImNjIiwgIkNDQWN0aXZlQW5pbWF0aW9uIiwgbV9pbnN0
YW5jZUlEKTsKIH0KIAogQ0NBY3RpdmVBbmltYXRpb246On5DQ0FjdGl2ZUFuaW1hdGlvbigpCiB7
CisgICAgaWYgKCFtX2lzQ29udHJvbGxpbmdJbnN0YW5jZSkKKyAgICAgICAgcmV0dXJuOworICAg
IFRSQUNFX0VWRU5UX0FTWU5DX0VORDAoImNjIiwgIkFjdGl2ZUFuaW1hdGlvbiIsIG1faW5zdGFu
Y2VJRCk7CiB9CiAKIHZvaWQgQ0NBY3RpdmVBbmltYXRpb246OnNldFJ1blN0YXRlKFJ1blN0YXRl
IHJ1blN0YXRlLCBkb3VibGUgbm93KQpAQCAtMTIxLDcgKzEyOCw3IEBAIGRvdWJsZSBDQ0FjdGl2
ZUFuaW1hdGlvbjo6dHJpbVRpbWVUb0N1cnJlbnRJdGVyYXRpb24oZG91YmxlIG5vdykgY29uc3QK
ICAgICByZXR1cm4gZm1vZCh0cmltbWVkLCBtX2N1cnZlLT5kdXJhdGlvbigpKTsKIH0KIAotUGFz
c093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gQ0NBY3RpdmVBbmltYXRpb246OmNsb25lRm9ySW1w
bFRocmVhZCgpIGNvbnN0CitQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFu
aW1hdGlvbjo6dHJhbnNmZXJUb0ltcGxUaHJlYWQoKQogewogICAgIE93blB0cjxDQ0FjdGl2ZUFu
aW1hdGlvbj4gdG9SZXR1cm4oYWRvcHRQdHIobmV3IENDQWN0aXZlQW5pbWF0aW9uKG1fY3VydmUt
PmNsb25lKCksIG1faWQsIG1fZ3JvdXAsIG1fdGFyZ2V0UHJvcGVydHkpKSk7CiAgICAgdG9SZXR1
cm4tPm1fcnVuU3RhdGUgPSBtX3J1blN0YXRlOwpAQCAtMTI5LDYgKzEzNiwxMSBAQCBQYXNzT3du
UHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmVGb3JJbXBsVGhy
ZWFkKCkgY29uc3QKICAgICB0b1JldHVybi0+bV9zdGFydFRpbWUgPSBtX3N0YXJ0VGltZTsKICAg
ICB0b1JldHVybi0+bV9wYXVzZVRpbWUgPSBtX3BhdXNlVGltZTsKICAgICB0b1JldHVybi0+bV90
b3RhbFBhdXNlZFRpbWUgPSBtX3RvdGFsUGF1c2VkVGltZTsKKworICAgIEFTU0VSVChtX2lzQ29u
dHJvbGxpbmdJbnN0YW5jZSk7CisgICAgbV9pc0NvbnRyb2xsaW5nSW5zdGFuY2UgPSBmYWxzZTsK
KyAgICB0b1JldHVybi0+bV9pbnN0YW5jZUlEID0gbV9pbnN0YW5jZUlEOworICAgIHRvUmV0dXJu
LT5tX2lzQ29udHJvbGxpbmdJbnN0YW5jZSA9IHRydWU7CiAgICAgcmV0dXJuIHRvUmV0dXJuLnJl
bGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmgKaW5kZXggNWRiODNh
Zjk1NjIxZjY1MGYzZGZjM2VlYzMxNGQ0OGRkYzk0ZTRmNS4uZDU2NDY3YzI4YjRjNWM2MGM0MzU4
NDlkM2IxNjE4ZWQwN2UwMmY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCkBA
IC0xMDEsNyArMTAxLDcgQEAgcHVibGljOgogICAgIC8vIG9mIGl0ZXJhdGlvbnMsIHJldHVybnMg
dGhlIHJlbGF0aXZlIHRpbWUgaW4gdGhlIGN1cnJlbnQgaXRlcmF0aW9uLgogICAgIGRvdWJsZSB0
cmltVGltZVRvQ3VycmVudEl0ZXJhdGlvbihkb3VibGUgbm93KSBjb25zdDsKIAotICAgIFBhc3NP
d25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGNsb25lRm9ySW1wbFRocmVhZCgpIGNvbnN0OworICAg
IFBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IHRyYW5zZmVyVG9JbXBsVGhyZWFkKCk7CiAK
ICAgICB2b2lkIHN5bmNocm9uaXplUHJvcGVydGllcyhDQ0FjdGl2ZUFuaW1hdGlvbiopOwogCkBA
IC0xMzMsNiArMTMzLDIyIEBAIHByaXZhdGU6CiAgICAgLy8gYWJvdXQgdGhlc2UgdmFsdWVzLgog
ICAgIGRvdWJsZSBtX3BhdXNlVGltZTsKICAgICBkb3VibGUgbV90b3RhbFBhdXNlZFRpbWU7CisK
KyAgICAvLyBBbmltYXRpb25zIGxpdmUgZHVhbCBsaXZlcy4gV2hlbiB0aGV5IGFyZSBmaXJzdCBj
cmVhdGVkLCB0aGV5IGxpdmUgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB0aGVyZSBpc2kKKyAgICAv
LyBhIDE6MSByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIENDQWN0aXZlQW5pbWF0aW9uIGFuZCB0aGUg
YWN0dWFsIGVmZmVjdHMgb2YgdGhlIGFuaW1hdGlvbi4KKyAgICAvLyBIb3dldmVyLCB3aGVuIGFu
IGFuaW1hdGlvbiBpcyBhY3RpdmF0ZWQgb24gdGhlIGltcGwgdGhyZWFkLCB0aGVyZSBhcmUgdHdv
IGluc3RhbmNlcyBvZiB0aGUgYW5pbWF0aW9uLgorICAgIC8vIFRyYWNpbmcgY29kZSB3YW50cyB0
byB0cmVhdCB0aGVzZSBhcyBhIHNpbmdsZSBjb25jZXB0ICgiYW4gYW5pbWF0aW9uIikgYnV0IG5l
ZWRzIHRvIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2gKKyAgICAvLyB0aGVtIGZyb20gb25lIGFub3Ro
ZXIuCisgICAgLy8KKyAgICAvLyBUbyBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZXNlIHR3byBpbnN0
YW5jZXMsIHdlIHVzZSB0aGUgY29uY2VwdCBvZgorICAgIC8vICJjb250cm9sbGluZyBpbnN0YW5j
ZS4iIEluIHRoZSBjYXNlIG9mIGFuIGFjdGl2ZSBhbmltYXRpb24gbm90IGhhdmluZyB5ZXQKKyAg
ICAvLyBiZWVuIHRyYW5zZmVyZWQgdG8gdGhlIGltcGwgdGhyZWFkLCB0aGUgY29udHJvbGxpbmcg
aW5zdGFuY2UgaXMgdGhlIG1haW4KKyAgICAvLyB0aHJlYWQuCisgICAgLy8KKyAgICAvLyBUaGUg
bV9pbnN0YW5jZUlEIGlzIGEgdW5pcXVlIElEIHNoYXJlZCBieSB0aGUgdHdvIGluc3RhbmNlcy4g
SXQgc2hvdWxkIG5vdCBiZSBkZWZlcmVuY2VkLCBhcyBpdAorICAgIC8vIG1heSBub3QgYmUgdGhy
ZWFkc2FmZS4KKyAgICBib29sIG1faXNDb250cm9sbGluZ0luc3RhbmNlOworICAgIHZvaWQqIG1f
aW5zdGFuY2VJRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRp
b25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCA3ZjVhOTI4ZThjZTE5
OTBhMzljNjNmZGE1YzRiYmRhMTdkZTkzYTkwLi4zNmQ3MjYxNWZmZWQ3NTU0ZTgxYWM3MzE0MGEx
ZjliZmY4YzUyYmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwCkBAIC0yNTAsMTAgKzI1MCwxMiBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9u
QwogICAgICAgICBpZiAoIW1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+bmVlZHNTeW5jaHJvbml6ZWRT
dGFydFRpbWUoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIE93blB0cjxDQ0Fj
dGl2ZUFuaW1hdGlvbj4gdG9BZGQobV9hY3RpdmVBbmltYXRpb25zW2ldLT5jbG9uZUZvckltcGxU
aHJlYWQoKSk7CisgICAgICAgIE93blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gdG9BZGQobV9hY3Rp
dmVBbmltYXRpb25zW2ldLT50cmFuc2ZlclRvSW1wbFRocmVhZCgpKTsKICAgICAgICAgQVNTRVJU
KCF0b0FkZC0+bmVlZHNTeW5jaHJvbml6ZWRTdGFydFRpbWUoKSk7CiAgICAgICAgIC8vIFRoZSBu
ZXcgYW5pbWF0aW9uIHNob3VsZCBiZSBzZXQgdG8gcnVuIGFzIHNvb24gYXMgcG9zc2libGUuCiAg
ICAgICAgIHRvQWRkLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvclRh
cmdldEF2YWlsYWJpbGl0eSwgMCk7CisKKyAgICAgICAgLy8gVGhlIG1haW4gdGhyZWFkIGFuaW1h
dGlvbiBpcyBubyBsb25nZXIgbWFzdGVyLgogICAgICAgICBjb250cm9sbGVySW1wbC0+YWRkKHRv
QWRkLnJlbGVhc2UoKSk7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137756</attachid>
            <date>2012-04-18 13:40:39 -0700</date>
            <delta_ts>2012-04-18 13:45:02 -0700</delta_ts>
            <desc>Fixes</desc>
            <filename>bug-84210-20120418134038.patch</filename>
            <type>text/plain</type>
            <size>7202</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIyZTIzNWQ1MTcyNDU2
YTE5YWQzZDljN2YwYmRkMTBlMmJmMmJhMy4uNmRkMWRhZjk0NjY4NTc1ZWViOGRjMjZiOWU5ZmM0
OWI4MWVhZTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA0LTE3ICBOYXQg
RHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCB0cmFj
aW5nIGZvciBhY3RpdmUgY29tcG9zaXRlZCBhbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDIxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmlt
YXRpb246OkNDQWN0aXZlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5p
bWF0aW9uOjp+Q0NBY3RpdmVBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVB
bmltYXRpb246OnRyYW5zZmVyVG9JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoQ0NBY3RpdmVB
bmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZCk6CisKIDIwMTIt
MDQtMTYgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
aW5zZXJ0ZWRJbnRvRG9jdW1lbnQgYW5kIGluc2VydGVkSW50b1RyZWUgc2hvdWxkIGJlIHVuaXRp
ZmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCmluZGV4IDI2MGQ3ZDQ3ZTNi
MzFiNjJmNTliMWRhODA2MGFjZDViNzg3MzcyYWMuLjM4NTE4Y2QyMTNiZDA4ZDUzZjAzZjQzNzEz
NDZhMWQ5NDFkODk1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgImNjL0NDQWN0aXZlQW5pbWF0aW9uLmgiCiAKKyNp
bmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVkZSAiY2MvQ0NBbmltYXRpb25DdXJ2ZS5oIgog
CiAjaW5jbHVkZSA8Y21hdGg+CkBAIC0zNCwxMCArMzUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y3Jl
YXRlKFBhc3NPd25QdHI8Q0NBbmltYXRpb25DdXJ2ZT4gY3VydmUsIGludCBhbmltYXRpb25JZCwg
aW50IGdyb3VwSWQsIFRhcmdldFByb3BlcnR5IHRhcmdldFByb3BlcnR5KQogewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgQ0NBY3RpdmVBbmltYXRpb24oY3VydmUsIGFuaW1hdGlvbklkLCBncm91
cElkLCB0YXJnZXRQcm9wZXJ0eSkpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NBY3RpdmVB
bmltYXRpb24oY3VydmUsIGFuaW1hdGlvbklkLCBncm91cElkLCB0YXJnZXRQcm9wZXJ0eSwgZmFs
c2UpKTsKIH0KIAotQ0NBY3RpdmVBbmltYXRpb246OkNDQWN0aXZlQW5pbWF0aW9uKFBhc3NPd25Q
dHI8Q0NBbmltYXRpb25DdXJ2ZT4gY3VydmUsIGludCBhbmltYXRpb25JZCwgaW50IGdyb3VwSWQs
IFRhcmdldFByb3BlcnR5IHRhcmdldFByb3BlcnR5KQorQ0NBY3RpdmVBbmltYXRpb246OkNDQWN0
aXZlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NBbmltYXRpb25DdXJ2ZT4gY3VydmUsIGludCBhbmlt
YXRpb25JZCwgaW50IGdyb3VwSWQsIFRhcmdldFByb3BlcnR5IHRhcmdldFByb3BlcnR5LCBib29s
IGlzQ29udHJvbGxpbmdJbnN0YW5jZSkKICAgICA6IG1fY3VydmUoY3VydmUpCiAgICAgLCBtX2lk
KGFuaW1hdGlvbklkKQogICAgICwgbV9ncm91cChncm91cElkKQpAQCAtNDgsMTEgKzQ5LDE5IEBA
IENDQWN0aXZlQW5pbWF0aW9uOjpDQ0FjdGl2ZUFuaW1hdGlvbihQYXNzT3duUHRyPENDQW5pbWF0
aW9uQ3VydmU+IGN1cnZlLCBpbnQgYW5pCiAgICAgLCBtX25lZWRzU3luY2hyb25pemVkU3RhcnRU
aW1lKGZhbHNlKQogICAgICwgbV9wYXVzZVRpbWUoMCkKICAgICAsIG1fdG90YWxQYXVzZWRUaW1l
KDApCisgICAgLCBtX2lzQ29udHJvbGxpbmdJbnN0YW5jZShpc0NvbnRyb2xsaW5nSW5zdGFuY2Up
CiB7CisgICAgbV9pbnN0YW5jZUlEID0gdGhpczsKKyAgICBpZiAoIWlzQ29udHJvbGxpbmdJbnN0
YW5jZSkKKyAgICAgICAgcmV0dXJuOworICAgIFRSQUNFX0VWRU5UX0FTWU5DX0JFR0lOMCgiY2Mi
LCAiQ0NBY3RpdmVBbmltYXRpb24iLCBtX2luc3RhbmNlSUQpOwogfQogCiBDQ0FjdGl2ZUFuaW1h
dGlvbjo6fkNDQWN0aXZlQW5pbWF0aW9uKCkKIHsKKyAgICBpZiAoIW1faXNDb250cm9sbGluZ0lu
c3RhbmNlKQorICAgICAgICByZXR1cm47CisgICAgVFJBQ0VfRVZFTlRfQVNZTkNfRU5EMCgiY2Mi
LCAiQWN0aXZlQW5pbWF0aW9uIiwgbV9pbnN0YW5jZUlEKTsKIH0KIAogdm9pZCBDQ0FjdGl2ZUFu
aW1hdGlvbjo6c2V0UnVuU3RhdGUoUnVuU3RhdGUgcnVuU3RhdGUsIGRvdWJsZSBub3cpCkBAIC0x
MjEsMTQgKzEzMCwxOSBAQCBkb3VibGUgQ0NBY3RpdmVBbmltYXRpb246OnRyaW1UaW1lVG9DdXJy
ZW50SXRlcmF0aW9uKGRvdWJsZSBub3cpIGNvbnN0CiAgICAgcmV0dXJuIGZtb2QodHJpbW1lZCwg
bV9jdXJ2ZS0+ZHVyYXRpb24oKSk7CiB9CiAKLVBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+
IENDQWN0aXZlQW5pbWF0aW9uOjpjbG9uZUZvckltcGxUaHJlYWQoKSBjb25zdAorUGFzc093blB0
cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gQ0NBY3RpdmVBbmltYXRpb246OnRyYW5zZmVyVG9JbXBsVGhy
ZWFkKCkKIHsKLSAgICBPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IHRvUmV0dXJuKGFkb3B0UHRy
KG5ldyBDQ0FjdGl2ZUFuaW1hdGlvbihtX2N1cnZlLT5jbG9uZSgpLCBtX2lkLCBtX2dyb3VwLCBt
X3RhcmdldFByb3BlcnR5KSkpOworICAgIE93blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gdG9SZXR1
cm4oYWRvcHRQdHIobmV3IENDQWN0aXZlQW5pbWF0aW9uKG1fY3VydmUtPmNsb25lKCksIG1faWQs
IG1fZ3JvdXAsIG1fdGFyZ2V0UHJvcGVydHksIGZhbHNlKSkpOwogICAgIHRvUmV0dXJuLT5tX3J1
blN0YXRlID0gbV9ydW5TdGF0ZTsKICAgICB0b1JldHVybi0+bV9pdGVyYXRpb25zID0gbV9pdGVy
YXRpb25zOwogICAgIHRvUmV0dXJuLT5tX3N0YXJ0VGltZSA9IG1fc3RhcnRUaW1lOwogICAgIHRv
UmV0dXJuLT5tX3BhdXNlVGltZSA9IG1fcGF1c2VUaW1lOwogICAgIHRvUmV0dXJuLT5tX3RvdGFs
UGF1c2VkVGltZSA9IG1fdG90YWxQYXVzZWRUaW1lOworCisgICAgQVNTRVJUKG1faXNDb250cm9s
bGluZ0luc3RhbmNlKTsKKyAgICBtX2lzQ29udHJvbGxpbmdJbnN0YW5jZSA9IGZhbHNlOworICAg
IHRvUmV0dXJuLT5tX2luc3RhbmNlSUQgPSBtX2luc3RhbmNlSUQ7CisgICAgdG9SZXR1cm4tPm1f
aXNDb250cm9sbGluZ0luc3RhbmNlID0gdHJ1ZTsKICAgICByZXR1cm4gdG9SZXR1cm4ucmVsZWFz
ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uaAppbmRleCA1ZGI4M2FmOTU2
MjFmNjUwZjNkZmMzZWVjMzE0ZDQ4ZGRjOTRlNGY1Li45YmVmYzhmMGQ4MzYyM2ZmY2EyMTc2NTdh
N2MwODVkMWM2NmRmMjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmgKQEAgLTEw
MSwxMiArMTAxLDEyIEBAIHB1YmxpYzoKICAgICAvLyBvZiBpdGVyYXRpb25zLCByZXR1cm5zIHRo
ZSByZWxhdGl2ZSB0aW1lIGluIHRoZSBjdXJyZW50IGl0ZXJhdGlvbi4KICAgICBkb3VibGUgdHJp
bVRpbWVUb0N1cnJlbnRJdGVyYXRpb24oZG91YmxlIG5vdykgY29uc3Q7CiAKLSAgICBQYXNzT3du
UHRyPENDQWN0aXZlQW5pbWF0aW9uPiBjbG9uZUZvckltcGxUaHJlYWQoKSBjb25zdDsKKyAgICBQ
YXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiB0cmFuc2ZlclRvSW1wbFRocmVhZCgpOwogCiAg
ICAgdm9pZCBzeW5jaHJvbml6ZVByb3BlcnRpZXMoQ0NBY3RpdmVBbmltYXRpb24qKTsKIAogcHJp
dmF0ZToKLSAgICBDQ0FjdGl2ZUFuaW1hdGlvbihQYXNzT3duUHRyPENDQW5pbWF0aW9uQ3VydmU+
LCBpbnQgYW5pbWF0aW9uSWQsIGludCBncm91cElkLCBUYXJnZXRQcm9wZXJ0eSk7CisgICAgQ0NB
Y3RpdmVBbmltYXRpb24oUGFzc093blB0cjxDQ0FuaW1hdGlvbkN1cnZlPiwgaW50IGFuaW1hdGlv
bklkLCBpbnQgZ3JvdXBJZCwgVGFyZ2V0UHJvcGVydHksIGJvb2wgaXNDb250cm9sbGluZ0luc3Rh
bmNlKTsKIAogICAgIE93blB0cjxDQ0FuaW1hdGlvbkN1cnZlPiBtX2N1cnZlOwogCkBAIC0xMzMs
NiArMTMzLDIyIEBAIHByaXZhdGU6CiAgICAgLy8gYWJvdXQgdGhlc2UgdmFsdWVzLgogICAgIGRv
dWJsZSBtX3BhdXNlVGltZTsKICAgICBkb3VibGUgbV90b3RhbFBhdXNlZFRpbWU7CisKKyAgICAv
LyBBbmltYXRpb25zIGxpdmUgZHVhbCBsaXZlcy4gV2hlbiB0aGV5IGFyZSBmaXJzdCBjcmVhdGVk
LCB0aGV5IGxpdmUgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB0aGVyZSBpc2kKKyAgICAvLyBhIDE6
MSByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIENDQWN0aXZlQW5pbWF0aW9uIGFuZCB0aGUgYWN0dWFs
IGVmZmVjdHMgb2YgdGhlIGFuaW1hdGlvbi4KKyAgICAvLyBIb3dldmVyLCB3aGVuIGFuIGFuaW1h
dGlvbiBpcyBhY3RpdmF0ZWQgb24gdGhlIGltcGwgdGhyZWFkLCB0aGVyZSBhcmUgdHdvIGluc3Rh
bmNlcyBvZiB0aGUgYW5pbWF0aW9uLgorICAgIC8vIFRyYWNpbmcgY29kZSB3YW50cyB0byB0cmVh
dCB0aGVzZSBhcyBhIHNpbmdsZSBjb25jZXB0ICgiYW4gYW5pbWF0aW9uIikgYnV0IG5lZWRzIHRv
IGJlIGFibGUgdG8gZGlzdGluZ3Vpc2gKKyAgICAvLyB0aGVtIGZyb20gb25lIGFub3RoZXIuCisg
ICAgLy8KKyAgICAvLyBUbyBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZXNlIHR3byBpbnN0YW5jZXMs
IHdlIHVzZSB0aGUgY29uY2VwdCBvZgorICAgIC8vICJjb250cm9sbGluZyBpbnN0YW5jZS4iIElu
IHRoZSBjYXNlIG9mIGFuIGFjdGl2ZSBhbmltYXRpb24gbm90IGhhdmluZyB5ZXQKKyAgICAvLyBi
ZWVuIHRyYW5zZmVyZWQgdG8gdGhlIGltcGwgdGhyZWFkLCB0aGUgY29udHJvbGxpbmcgaW5zdGFu
Y2UgaXMgdGhlIG1haW4KKyAgICAvLyB0aHJlYWQuCisgICAgLy8KKyAgICAvLyBUaGUgbV9pbnN0
YW5jZUlEIGlzIGEgdW5pcXVlIElEIHNoYXJlZCBieSB0aGUgdHdvIGluc3RhbmNlcy4gSXQgc2hv
dWxkIG5vdCBiZSBkZWZlcmVuY2VkLCBhcyBpdAorICAgIC8vIG1heSBub3QgYmUgdGhyZWFkc2Fm
ZS4KKyAgICBib29sIG1faXNDb250cm9sbGluZ0luc3RhbmNlOworICAgIHZvaWQqIG1faW5zdGFu
Y2VJRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCA3ZjVhOTI4ZThjZTE5OTBhMzlj
NjNmZGE1YzRiYmRhMTdkZTkzYTkwLi4zNmQ3MjYxNWZmZWQ3NTU0ZTgxYWM3MzE0MGExZjliZmY4
YzUyYmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwCkBAIC0yNTAsMTAgKzI1MCwxMiBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9s
bGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9uQwogICAg
ICAgICBpZiAoIW1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+bmVlZHNTeW5jaHJvbml6ZWRTdGFydFRp
bWUoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIE93blB0cjxDQ0FjdGl2ZUFu
aW1hdGlvbj4gdG9BZGQobV9hY3RpdmVBbmltYXRpb25zW2ldLT5jbG9uZUZvckltcGxUaHJlYWQo
KSk7CisgICAgICAgIE93blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gdG9BZGQobV9hY3RpdmVBbmlt
YXRpb25zW2ldLT50cmFuc2ZlclRvSW1wbFRocmVhZCgpKTsKICAgICAgICAgQVNTRVJUKCF0b0Fk
ZC0+bmVlZHNTeW5jaHJvbml6ZWRTdGFydFRpbWUoKSk7CiAgICAgICAgIC8vIFRoZSBuZXcgYW5p
bWF0aW9uIHNob3VsZCBiZSBzZXQgdG8gcnVuIGFzIHNvb24gYXMgcG9zc2libGUuCiAgICAgICAg
IHRvQWRkLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvclRhcmdldEF2
YWlsYWJpbGl0eSwgMCk7CisKKyAgICAgICAgLy8gVGhlIG1haW4gdGhyZWFkIGFuaW1hdGlvbiBp
cyBubyBsb25nZXIgbWFzdGVyLgogICAgICAgICBjb250cm9sbGVySW1wbC0+YWRkKHRvQWRkLnJl
bGVhc2UoKSk7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137759</attachid>
            <date>2012-04-18 13:45:10 -0700</date>
            <delta_ts>2012-04-25 00:40:28 -0700</delta_ts>
            <desc>Fixes</desc>
            <filename>bug-84210-20120418134509.patch</filename>
            <type>text/plain</type>
            <size>7201</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIyZTIzNWQ1MTcyNDU2
YTE5YWQzZDljN2YwYmRkMTBlMmJmMmJhMy4uNmRkMWRhZjk0NjY4NTc1ZWViOGRjMjZiOWU5ZmM0
OWI4MWVhZTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA0LTE3ICBOYXQg
RHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCB0cmFj
aW5nIGZvciBhY3RpdmUgY29tcG9zaXRlZCBhbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDIxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmlt
YXRpb246OkNDQWN0aXZlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5p
bWF0aW9uOjp+Q0NBY3RpdmVBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVB
bmltYXRpb246OnRyYW5zZmVyVG9JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoQ0NBY3RpdmVB
bmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZCk6CisKIDIwMTIt
MDQtMTYgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
aW5zZXJ0ZWRJbnRvRG9jdW1lbnQgYW5kIGluc2VydGVkSW50b1RyZWUgc2hvdWxkIGJlIHVuaXRp
ZmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCmluZGV4IDI2MGQ3ZDQ3ZTNi
MzFiNjJmNTliMWRhODA2MGFjZDViNzg3MzcyYWMuLmI0MzExZDI4MzZlM2EwZjJlMjkzNDgxMjc0
Nzk2NGVlMGEzN2U0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgImNjL0NDQWN0aXZlQW5pbWF0aW9uLmgiCiAKKyNp
bmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVkZSAiY2MvQ0NBbmltYXRpb25DdXJ2ZS5oIgog
CiAjaW5jbHVkZSA8Y21hdGg+CkBAIC0zNCwxMCArMzUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y3Jl
YXRlKFBhc3NPd25QdHI8Q0NBbmltYXRpb25DdXJ2ZT4gY3VydmUsIGludCBhbmltYXRpb25JZCwg
aW50IGdyb3VwSWQsIFRhcmdldFByb3BlcnR5IHRhcmdldFByb3BlcnR5KQogewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgQ0NBY3RpdmVBbmltYXRpb24oY3VydmUsIGFuaW1hdGlvbklkLCBncm91
cElkLCB0YXJnZXRQcm9wZXJ0eSkpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NBY3RpdmVB
bmltYXRpb24oY3VydmUsIGFuaW1hdGlvbklkLCBncm91cElkLCB0YXJnZXRQcm9wZXJ0eSwgdHJ1
ZSkpOwogfQogCi1DQ0FjdGl2ZUFuaW1hdGlvbjo6Q0NBY3RpdmVBbmltYXRpb24oUGFzc093blB0
cjxDQ0FuaW1hdGlvbkN1cnZlPiBjdXJ2ZSwgaW50IGFuaW1hdGlvbklkLCBpbnQgZ3JvdXBJZCwg
VGFyZ2V0UHJvcGVydHkgdGFyZ2V0UHJvcGVydHkpCitDQ0FjdGl2ZUFuaW1hdGlvbjo6Q0NBY3Rp
dmVBbmltYXRpb24oUGFzc093blB0cjxDQ0FuaW1hdGlvbkN1cnZlPiBjdXJ2ZSwgaW50IGFuaW1h
dGlvbklkLCBpbnQgZ3JvdXBJZCwgVGFyZ2V0UHJvcGVydHkgdGFyZ2V0UHJvcGVydHksIGJvb2wg
aXNDb250cm9sbGluZ0luc3RhbmNlKQogICAgIDogbV9jdXJ2ZShjdXJ2ZSkKICAgICAsIG1faWQo
YW5pbWF0aW9uSWQpCiAgICAgLCBtX2dyb3VwKGdyb3VwSWQpCkBAIC00OCwxMSArNDksMTkgQEAg
Q0NBY3RpdmVBbmltYXRpb246OkNDQWN0aXZlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NBbmltYXRp
b25DdXJ2ZT4gY3VydmUsIGludCBhbmkKICAgICAsIG1fbmVlZHNTeW5jaHJvbml6ZWRTdGFydFRp
bWUoZmFsc2UpCiAgICAgLCBtX3BhdXNlVGltZSgwKQogICAgICwgbV90b3RhbFBhdXNlZFRpbWUo
MCkKKyAgICAsIG1faXNDb250cm9sbGluZ0luc3RhbmNlKGlzQ29udHJvbGxpbmdJbnN0YW5jZSkK
IHsKKyAgICBtX2luc3RhbmNlSUQgPSB0aGlzOworICAgIGlmICghaXNDb250cm9sbGluZ0luc3Rh
bmNlKQorICAgICAgICByZXR1cm47CisgICAgVFJBQ0VfRVZFTlRfQVNZTkNfQkVHSU4wKCJjYyIs
ICJDQ0FjdGl2ZUFuaW1hdGlvbiIsIG1faW5zdGFuY2VJRCk7CiB9CiAKIENDQWN0aXZlQW5pbWF0
aW9uOjp+Q0NBY3RpdmVBbmltYXRpb24oKQogeworICAgIGlmICghbV9pc0NvbnRyb2xsaW5nSW5z
dGFuY2UpCisgICAgICAgIHJldHVybjsKKyAgICBUUkFDRV9FVkVOVF9BU1lOQ19FTkQwKCJjYyIs
ICJBY3RpdmVBbmltYXRpb24iLCBtX2luc3RhbmNlSUQpOwogfQogCiB2b2lkIENDQWN0aXZlQW5p
bWF0aW9uOjpzZXRSdW5TdGF0ZShSdW5TdGF0ZSBydW5TdGF0ZSwgZG91YmxlIG5vdykKQEAgLTEy
MSwxNCArMTMwLDE5IEBAIGRvdWJsZSBDQ0FjdGl2ZUFuaW1hdGlvbjo6dHJpbVRpbWVUb0N1cnJl
bnRJdGVyYXRpb24oZG91YmxlIG5vdykgY29uc3QKICAgICByZXR1cm4gZm1vZCh0cmltbWVkLCBt
X2N1cnZlLT5kdXJhdGlvbigpKTsKIH0KIAotUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4g
Q0NBY3RpdmVBbmltYXRpb246OmNsb25lRm9ySW1wbFRocmVhZCgpIGNvbnN0CitQYXNzT3duUHRy
PENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6dHJhbnNmZXJUb0ltcGxUaHJl
YWQoKQogewotICAgIE93blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gdG9SZXR1cm4oYWRvcHRQdHIo
bmV3IENDQWN0aXZlQW5pbWF0aW9uKG1fY3VydmUtPmNsb25lKCksIG1faWQsIG1fZ3JvdXAsIG1f
dGFyZ2V0UHJvcGVydHkpKSk7CisgICAgT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiB0b1JldHVy
bihhZG9wdFB0cihuZXcgQ0NBY3RpdmVBbmltYXRpb24obV9jdXJ2ZS0+Y2xvbmUoKSwgbV9pZCwg
bV9ncm91cCwgbV90YXJnZXRQcm9wZXJ0eSwgZmFsc2UpKSk7CiAgICAgdG9SZXR1cm4tPm1fcnVu
U3RhdGUgPSBtX3J1blN0YXRlOwogICAgIHRvUmV0dXJuLT5tX2l0ZXJhdGlvbnMgPSBtX2l0ZXJh
dGlvbnM7CiAgICAgdG9SZXR1cm4tPm1fc3RhcnRUaW1lID0gbV9zdGFydFRpbWU7CiAgICAgdG9S
ZXR1cm4tPm1fcGF1c2VUaW1lID0gbV9wYXVzZVRpbWU7CiAgICAgdG9SZXR1cm4tPm1fdG90YWxQ
YXVzZWRUaW1lID0gbV90b3RhbFBhdXNlZFRpbWU7CisKKyAgICBBU1NFUlQobV9pc0NvbnRyb2xs
aW5nSW5zdGFuY2UpOworICAgIG1faXNDb250cm9sbGluZ0luc3RhbmNlID0gZmFsc2U7CisgICAg
dG9SZXR1cm4tPm1faW5zdGFuY2VJRCA9IG1faW5zdGFuY2VJRDsKKyAgICB0b1JldHVybi0+bV9p
c0NvbnRyb2xsaW5nSW5zdGFuY2UgPSB0cnVlOwogICAgIHJldHVybiB0b1JldHVybi5yZWxlYXNl
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCmluZGV4IDVkYjgzYWY5NTYy
MWY2NTBmM2RmYzNlZWMzMTRkNDhkZGM5NGU0ZjUuLjliZWZjOGYwZDgzNjIzZmZjYTIxNzY1N2E3
YzA4NWQxYzY2ZGYyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uaApAQCAtMTAx
LDEyICsxMDEsMTIgQEAgcHVibGljOgogICAgIC8vIG9mIGl0ZXJhdGlvbnMsIHJldHVybnMgdGhl
IHJlbGF0aXZlIHRpbWUgaW4gdGhlIGN1cnJlbnQgaXRlcmF0aW9uLgogICAgIGRvdWJsZSB0cmlt
VGltZVRvQ3VycmVudEl0ZXJhdGlvbihkb3VibGUgbm93KSBjb25zdDsKIAotICAgIFBhc3NPd25Q
dHI8Q0NBY3RpdmVBbmltYXRpb24+IGNsb25lRm9ySW1wbFRocmVhZCgpIGNvbnN0OworICAgIFBh
c3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IHRyYW5zZmVyVG9JbXBsVGhyZWFkKCk7CiAKICAg
ICB2b2lkIHN5bmNocm9uaXplUHJvcGVydGllcyhDQ0FjdGl2ZUFuaW1hdGlvbiopOwogCiBwcml2
YXRlOgotICAgIENDQWN0aXZlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NBbmltYXRpb25DdXJ2ZT4s
IGludCBhbmltYXRpb25JZCwgaW50IGdyb3VwSWQsIFRhcmdldFByb3BlcnR5KTsKKyAgICBDQ0Fj
dGl2ZUFuaW1hdGlvbihQYXNzT3duUHRyPENDQW5pbWF0aW9uQ3VydmU+LCBpbnQgYW5pbWF0aW9u
SWQsIGludCBncm91cElkLCBUYXJnZXRQcm9wZXJ0eSwgYm9vbCBpc0NvbnRyb2xsaW5nSW5zdGFu
Y2UpOwogCiAgICAgT3duUHRyPENDQW5pbWF0aW9uQ3VydmU+IG1fY3VydmU7CiAKQEAgLTEzMyw2
ICsxMzMsMjIgQEAgcHJpdmF0ZToKICAgICAvLyBhYm91dCB0aGVzZSB2YWx1ZXMuCiAgICAgZG91
YmxlIG1fcGF1c2VUaW1lOwogICAgIGRvdWJsZSBtX3RvdGFsUGF1c2VkVGltZTsKKworICAgIC8v
IEFuaW1hdGlvbnMgbGl2ZSBkdWFsIGxpdmVzLiBXaGVuIHRoZXkgYXJlIGZpcnN0IGNyZWF0ZWQs
IHRoZXkgbGl2ZSBvbiB0aGUgbWFpbiB0aHJlYWQgYW5kIHRoZXJlIGlzaQorICAgIC8vIGEgMTox
IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGEgQ0NBY3RpdmVBbmltYXRpb24gYW5kIHRoZSBhY3R1YWwg
ZWZmZWN0cyBvZiB0aGUgYW5pbWF0aW9uLgorICAgIC8vIEhvd2V2ZXIsIHdoZW4gYW4gYW5pbWF0
aW9uIGlzIGFjdGl2YXRlZCBvbiB0aGUgaW1wbCB0aHJlYWQsIHRoZXJlIGFyZSB0d28gaW5zdGFu
Y2VzIG9mIHRoZSBhbmltYXRpb24uCisgICAgLy8gVHJhY2luZyBjb2RlIHdhbnRzIHRvIHRyZWF0
IHRoZXNlIGFzIGEgc2luZ2xlIGNvbmNlcHQgKCJhbiBhbmltYXRpb24iKSBidXQgbmVlZHMgdG8g
YmUgYWJsZSB0byBkaXN0aW5ndWlzaAorICAgIC8vIHRoZW0gZnJvbSBvbmUgYW5vdGhlci4KKyAg
ICAvLworICAgIC8vIFRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlc2UgdHdvIGluc3RhbmNlcywg
d2UgdXNlIHRoZSBjb25jZXB0IG9mCisgICAgLy8gImNvbnRyb2xsaW5nIGluc3RhbmNlLiIgSW4g
dGhlIGNhc2Ugb2YgYW4gYWN0aXZlIGFuaW1hdGlvbiBub3QgaGF2aW5nIHlldAorICAgIC8vIGJl
ZW4gdHJhbnNmZXJlZCB0byB0aGUgaW1wbCB0aHJlYWQsIHRoZSBjb250cm9sbGluZyBpbnN0YW5j
ZSBpcyB0aGUgbWFpbgorICAgIC8vIHRocmVhZC4KKyAgICAvLworICAgIC8vIFRoZSBtX2luc3Rh
bmNlSUQgaXMgYSB1bmlxdWUgSUQgc2hhcmVkIGJ5IHRoZSB0d28gaW5zdGFuY2VzLiBJdCBzaG91
bGQgbm90IGJlIGRlZmVyZW5jZWQsIGFzIGl0CisgICAgLy8gbWF5IG5vdCBiZSB0aHJlYWRzYWZl
LgorICAgIGJvb2wgbV9pc0NvbnRyb2xsaW5nSW5zdGFuY2U7CisgICAgdm9pZCogbV9pbnN0YW5j
ZUlEOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDdmNWE5MjhlOGNlMTk5MGEzOWM2
M2ZkYTVjNGJiZGExN2RlOTNhOTAuLjM2ZDcyNjE1ZmZlZDc1NTRlODFhYzczMTQwYTFmOWJmZjhj
NTJiYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxl
ci5jcHAKQEAgLTI1MCwxMCArMjUwLDEyIEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xs
ZXI6OnB1c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25DCiAgICAg
ICAgIGlmICghbV9hY3RpdmVBbmltYXRpb25zW2ldLT5uZWVkc1N5bmNocm9uaXplZFN0YXJ0VGlt
ZSgpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgT3duUHRyPENDQWN0aXZlQW5p
bWF0aW9uPiB0b0FkZChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmNsb25lRm9ySW1wbFRocmVhZCgp
KTsKKyAgICAgICAgT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiB0b0FkZChtX2FjdGl2ZUFuaW1h
dGlvbnNbaV0tPnRyYW5zZmVyVG9JbXBsVGhyZWFkKCkpOwogICAgICAgICBBU1NFUlQoIXRvQWRk
LT5uZWVkc1N5bmNocm9uaXplZFN0YXJ0VGltZSgpKTsKICAgICAgICAgLy8gVGhlIG5ldyBhbmlt
YXRpb24gc2hvdWxkIGJlIHNldCB0byBydW4gYXMgc29vbiBhcyBwb3NzaWJsZS4KICAgICAgICAg
dG9BZGQtPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpXYWl0aW5nRm9yVGFyZ2V0QXZh
aWxhYmlsaXR5LCAwKTsKKworICAgICAgICAvLyBUaGUgbWFpbiB0aHJlYWQgYW5pbWF0aW9uIGlz
IG5vIGxvbmdlciBtYXN0ZXIuCiAgICAgICAgIGNvbnRyb2xsZXJJbXBsLT5hZGQodG9BZGQucmVs
ZWFzZSgpKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138750</attachid>
            <date>2012-04-25 00:40:31 -0700</date>
            <delta_ts>2012-04-25 00:49:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-84210-20120425004030.patch</filename>
            <type>text/plain</type>
            <size>7402</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU1MzRlZjE1ZWQ2OTJh
Mjg2OGYxYTU5NjFhMWMwODRiNDdhYzRlYS4uMzk0ZTQzZDdkOGIxNTM0ZjlhZjVhZjY3ZWQ0MWZh
MzU4MDlmMzA2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA0LTE3ICBOYXQg
RHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCB0cmFj
aW5nIGZvciBhY3RpdmUgY29tcG9zaXRlZCBhbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDIxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IEphbWVzIFJvYmluc29uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmlt
YXRpb246OkNDQWN0aXZlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5p
bWF0aW9uOjp+Q0NBY3RpdmVBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVB
bmltYXRpb246OnRyYW5zZmVyVG9JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoQ0NBY3RpdmVB
bmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZCk6CisKIDIwMTIt
MDQtMjMgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtW
OF0gUGFzcyBJc29sYXRlIHRvIHRvVjgoKSAoUGFydDMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFu
aW1hdGlvbi5jcHAKaW5kZXggMjYwZDdkNDdlM2IzMWI2MmY1OWIxZGE4MDYwYWNkNWI3ODczNzJh
Yy4uYjQzMTFkMjgzNmUzYTBmMmUyOTM0ODEyNzQ3OTY0ZWUwYTM3ZTQxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmlt
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAi
Y2MvQ0NBY3RpdmVBbmltYXRpb24uaCIKIAorI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKICNpbmNs
dWRlICJjYy9DQ0FuaW1hdGlvbkN1cnZlLmgiCiAKICNpbmNsdWRlIDxjbWF0aD4KQEAgLTM0LDEw
ICszNSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NPd25QdHI8Q0NBY3RpdmVBbmlt
YXRpb24+IENDQWN0aXZlQW5pbWF0aW9uOjpjcmVhdGUoUGFzc093blB0cjxDQ0FuaW1hdGlvbkN1
cnZlPiBjdXJ2ZSwgaW50IGFuaW1hdGlvbklkLCBpbnQgZ3JvdXBJZCwgVGFyZ2V0UHJvcGVydHkg
dGFyZ2V0UHJvcGVydHkpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ0FjdGl2ZUFuaW1h
dGlvbihjdXJ2ZSwgYW5pbWF0aW9uSWQsIGdyb3VwSWQsIHRhcmdldFByb3BlcnR5KSk7CisgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBDQ0FjdGl2ZUFuaW1hdGlvbihjdXJ2ZSwgYW5pbWF0aW9uSWQs
IGdyb3VwSWQsIHRhcmdldFByb3BlcnR5LCB0cnVlKSk7CiB9CiAKLUNDQWN0aXZlQW5pbWF0aW9u
OjpDQ0FjdGl2ZUFuaW1hdGlvbihQYXNzT3duUHRyPENDQW5pbWF0aW9uQ3VydmU+IGN1cnZlLCBp
bnQgYW5pbWF0aW9uSWQsIGludCBncm91cElkLCBUYXJnZXRQcm9wZXJ0eSB0YXJnZXRQcm9wZXJ0
eSkKK0NDQWN0aXZlQW5pbWF0aW9uOjpDQ0FjdGl2ZUFuaW1hdGlvbihQYXNzT3duUHRyPENDQW5p
bWF0aW9uQ3VydmU+IGN1cnZlLCBpbnQgYW5pbWF0aW9uSWQsIGludCBncm91cElkLCBUYXJnZXRQ
cm9wZXJ0eSB0YXJnZXRQcm9wZXJ0eSwgYm9vbCBpc0NvbnRyb2xsaW5nSW5zdGFuY2UpCiAgICAg
OiBtX2N1cnZlKGN1cnZlKQogICAgICwgbV9pZChhbmltYXRpb25JZCkKICAgICAsIG1fZ3JvdXAo
Z3JvdXBJZCkKQEAgLTQ4LDExICs0OSwxOSBAQCBDQ0FjdGl2ZUFuaW1hdGlvbjo6Q0NBY3RpdmVB
bmltYXRpb24oUGFzc093blB0cjxDQ0FuaW1hdGlvbkN1cnZlPiBjdXJ2ZSwgaW50IGFuaQogICAg
ICwgbV9uZWVkc1N5bmNocm9uaXplZFN0YXJ0VGltZShmYWxzZSkKICAgICAsIG1fcGF1c2VUaW1l
KDApCiAgICAgLCBtX3RvdGFsUGF1c2VkVGltZSgwKQorICAgICwgbV9pc0NvbnRyb2xsaW5nSW5z
dGFuY2UoaXNDb250cm9sbGluZ0luc3RhbmNlKQogeworICAgIG1faW5zdGFuY2VJRCA9IHRoaXM7
CisgICAgaWYgKCFpc0NvbnRyb2xsaW5nSW5zdGFuY2UpCisgICAgICAgIHJldHVybjsKKyAgICBU
UkFDRV9FVkVOVF9BU1lOQ19CRUdJTjAoImNjIiwgIkNDQWN0aXZlQW5pbWF0aW9uIiwgbV9pbnN0
YW5jZUlEKTsKIH0KIAogQ0NBY3RpdmVBbmltYXRpb246On5DQ0FjdGl2ZUFuaW1hdGlvbigpCiB7
CisgICAgaWYgKCFtX2lzQ29udHJvbGxpbmdJbnN0YW5jZSkKKyAgICAgICAgcmV0dXJuOworICAg
IFRSQUNFX0VWRU5UX0FTWU5DX0VORDAoImNjIiwgIkFjdGl2ZUFuaW1hdGlvbiIsIG1faW5zdGFu
Y2VJRCk7CiB9CiAKIHZvaWQgQ0NBY3RpdmVBbmltYXRpb246OnNldFJ1blN0YXRlKFJ1blN0YXRl
IHJ1blN0YXRlLCBkb3VibGUgbm93KQpAQCAtMTIxLDE0ICsxMzAsMTkgQEAgZG91YmxlIENDQWN0
aXZlQW5pbWF0aW9uOjp0cmltVGltZVRvQ3VycmVudEl0ZXJhdGlvbihkb3VibGUgbm93KSBjb25z
dAogICAgIHJldHVybiBmbW9kKHRyaW1tZWQsIG1fY3VydmUtPmR1cmF0aW9uKCkpOwogfQogCi1Q
YXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmVGb3JJ
bXBsVGhyZWFkKCkgY29uc3QKK1Bhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IENDQWN0aXZl
QW5pbWF0aW9uOjp0cmFuc2ZlclRvSW1wbFRocmVhZCgpCiB7Ci0gICAgT3duUHRyPENDQWN0aXZl
QW5pbWF0aW9uPiB0b1JldHVybihhZG9wdFB0cihuZXcgQ0NBY3RpdmVBbmltYXRpb24obV9jdXJ2
ZS0+Y2xvbmUoKSwgbV9pZCwgbV9ncm91cCwgbV90YXJnZXRQcm9wZXJ0eSkpKTsKKyAgICBPd25Q
dHI8Q0NBY3RpdmVBbmltYXRpb24+IHRvUmV0dXJuKGFkb3B0UHRyKG5ldyBDQ0FjdGl2ZUFuaW1h
dGlvbihtX2N1cnZlLT5jbG9uZSgpLCBtX2lkLCBtX2dyb3VwLCBtX3RhcmdldFByb3BlcnR5LCBm
YWxzZSkpKTsKICAgICB0b1JldHVybi0+bV9ydW5TdGF0ZSA9IG1fcnVuU3RhdGU7CiAgICAgdG9S
ZXR1cm4tPm1faXRlcmF0aW9ucyA9IG1faXRlcmF0aW9uczsKICAgICB0b1JldHVybi0+bV9zdGFy
dFRpbWUgPSBtX3N0YXJ0VGltZTsKICAgICB0b1JldHVybi0+bV9wYXVzZVRpbWUgPSBtX3BhdXNl
VGltZTsKICAgICB0b1JldHVybi0+bV90b3RhbFBhdXNlZFRpbWUgPSBtX3RvdGFsUGF1c2VkVGlt
ZTsKKworICAgIEFTU0VSVChtX2lzQ29udHJvbGxpbmdJbnN0YW5jZSk7CisgICAgbV9pc0NvbnRy
b2xsaW5nSW5zdGFuY2UgPSBmYWxzZTsKKyAgICB0b1JldHVybi0+bV9pbnN0YW5jZUlEID0gbV9p
bnN0YW5jZUlEOworICAgIHRvUmV0dXJuLT5tX2lzQ29udHJvbGxpbmdJbnN0YW5jZSA9IHRydWU7
CiAgICAgcmV0dXJuIHRvUmV0dXJuLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZl
QW5pbWF0aW9uLmgKaW5kZXggNWRiODNhZjk1NjIxZjY1MGYzZGZjM2VlYzMxNGQ0OGRkYzk0ZTRm
NS4uN2UyNzI3NjA1ZTg4NTQzZDEyZTdhZTIxYzk4NjUyYjk4ZGJmNzc0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmlt
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCkBAIC0xMDEsMTIgKzEwMSwxMiBAQCBwdWJsaWM6CiAgICAg
Ly8gb2YgaXRlcmF0aW9ucywgcmV0dXJucyB0aGUgcmVsYXRpdmUgdGltZSBpbiB0aGUgY3VycmVu
dCBpdGVyYXRpb24uCiAgICAgZG91YmxlIHRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKGRvdWJs
ZSBub3cpIGNvbnN0OwogCi0gICAgUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gY2xvbmVG
b3JJbXBsVGhyZWFkKCkgY29uc3Q7CisgICAgUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4g
dHJhbnNmZXJUb0ltcGxUaHJlYWQoKTsKIAogICAgIHZvaWQgc3luY2hyb25pemVQcm9wZXJ0aWVz
KENDQWN0aXZlQW5pbWF0aW9uKik7CiAKIHByaXZhdGU6Ci0gICAgQ0NBY3RpdmVBbmltYXRpb24o
UGFzc093blB0cjxDQ0FuaW1hdGlvbkN1cnZlPiwgaW50IGFuaW1hdGlvbklkLCBpbnQgZ3JvdXBJ
ZCwgVGFyZ2V0UHJvcGVydHkpOworICAgIENDQWN0aXZlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NB
bmltYXRpb25DdXJ2ZT4sIGludCBhbmltYXRpb25JZCwgaW50IGdyb3VwSWQsIFRhcmdldFByb3Bl
cnR5LCBib29sIGlzQ29udHJvbGxpbmdJbnN0YW5jZSk7CiAKICAgICBPd25QdHI8Q0NBbmltYXRp
b25DdXJ2ZT4gbV9jdXJ2ZTsKIApAQCAtMTMzLDYgKzEzMywyNSBAQCBwcml2YXRlOgogICAgIC8v
IGFib3V0IHRoZXNlIHZhbHVlcy4KICAgICBkb3VibGUgbV9wYXVzZVRpbWU7CiAgICAgZG91Ymxl
IG1fdG90YWxQYXVzZWRUaW1lOworCisgICAgLy8gQW5pbWF0aW9ucyBsaXZlIGR1YWwgbGl2ZXMu
IFdoZW4gdGhleSBhcmUgZmlyc3QgY3JlYXRlZCwgdGhleSBsaXZlIG9uIHRoZQorICAgIC8vIG1h
aW4gdGhyZWFkIGFuZCB0aGVyZSBpcyBhIDE6MSByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIENDQWN0
aXZlQW5pbWF0aW9uCisgICAgLy8gYW5kIHRoZSBhY3R1YWwgZWZmZWN0cyBvZiB0aGUgYW5pbWF0
aW9uLiBIb3dldmVyLCB3aGVuIGFuIGFuaW1hdGlvbiBpcworICAgIC8vIGFjdGl2YXRlZCBvbiB0
aGUgaW1wbCB0aHJlYWQsIHRoZXJlIGFyZSB0d28gaW5zdGFuY2VzIG9mIHRoZSBhbmltYXRpb24u
CisgICAgLy8gVHJhY2luZyBjb2RlIHdhbnRzIHRvIHRyZWF0IHRoZXNlIGFzIGEgc2luZ2xlIGNv
bmNlcHQgKCJhbiBhbmltYXRpb24iKQorICAgIC8vIGJ1dCBuZWVkcyB0byBiZSBhYmxlIHRvIGRp
c3Rpbmd1aXNoIHRoZW0gZnJvbSBvbmUgYW5vdGhlci4KKyAgICAvLworICAgIC8vIFRoZSBtX2lz
Q29udHJvbGxpbmdJbnN0YW5jZSBmaWVsZCBhbGxvd3MgdGhlc2UgaW5zdGFuY2VzIHRvIGJlIHRv
bGQKKyAgICAvLyBhcGFydC4gSW4gdGhlIGNhc2Ugb2YgYW4gYWN0aXZlIGFuaW1hdGlvbiBub3Qg
aGF2aW5nIHlldCBiZWVuIHRyYW5zZmVyZWQKKyAgICAvLyB0byB0aGUgaW1wbCB0aHJlYWQsIG9u
bHkgb25lIGluc3RhbmNlIGV4aXN0cyBzbyBtX2lzQ29udHJvbGxpbmdJbnN0YW5jZQorICAgIC8v
IGlzIHNldCB0byB0cnVlIG9uIHRoYXQgaW5zdGFuY2UuIE9uY2UgYW4gYW5pbWF0aW9uIGhhcyBi
ZWVuIHRyYW5zZmVycmVkLCB0aGUgbWFpbiB0aHJlYWQncworICAgIC8vIG9yaWdpbmFsIGluc3Rh
bmNlJ3MgbV9pc0NvbnRyb2xsaW5nSW5zdGFuY2UgaXMgc2V0IHRvIGZhbHNlLCBhbmQgdGhlIGlt
cGwgdGhyZWFkJ3MKKyAgICAvLyBtX2lzQ29udHJvbGxpbmdJbnN0YW5jZSBpcyBzZXQgdG8gdHJ1
ZS4KKyAgICAvLworICAgIC8vIFRoZSBtX2luc3RhbmNlSUQgaXMgYSB1bmlxdWUgSUQgc2hhcmVk
IGJ5IHRoZSB0d28gaW5zdGFuY2VzLiBJdCBzaG91bGQKKyAgICAvLyBub3QgYmUgZGVmZXJlbmNl
ZCwgYXMgaXQgbWF5IG5vdCBiZSB0aHJlYWRzYWZlLgorICAgIGJvb2wgbV9pc0NvbnRyb2xsaW5n
SW5zdGFuY2U7CisgICAgdm9pZCogbV9pbnN0YW5jZUlEOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCmluZGV4IDVhMTJkYjdlZDgwOGZhY2NmYWY5YTQzY2M4NDQ4YzBlYWRiYjJiOTkuLmI3ZjVl
ZjQ1Y2ZlZDY0MzAzOTBhYzQxYzRiZTg3NzM2NDQ4ZThmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTI1MCwxMCArMjUwLDEyIEBA
IHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnB1c2hOZXdBbmltYXRpb25zVG9JbXBs
VGhyZWFkKENDTGF5ZXJBbmltYXRpb25DCiAgICAgICAgIGlmICghbV9hY3RpdmVBbmltYXRpb25z
W2ldLT5uZWVkc1N5bmNocm9uaXplZFN0YXJ0VGltZSgpKQogICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiB0b0FkZChtX2FjdGl2ZUFuaW1h
dGlvbnNbaV0tPmNsb25lRm9ySW1wbFRocmVhZCgpKTsKKyAgICAgICAgT3duUHRyPENDQWN0aXZl
QW5pbWF0aW9uPiB0b0FkZChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnRyYW5zZmVyVG9JbXBsVGhy
ZWFkKCkpOwogICAgICAgICBBU1NFUlQoIXRvQWRkLT5uZWVkc1N5bmNocm9uaXplZFN0YXJ0VGlt
ZSgpKTsKICAgICAgICAgLy8gVGhlIG5ldyBhbmltYXRpb24gc2hvdWxkIGJlIHNldCB0byBydW4g
YXMgc29vbiBhcyBwb3NzaWJsZS4KICAgICAgICAgdG9BZGQtPnNldFJ1blN0YXRlKENDQWN0aXZl
QW5pbWF0aW9uOjpXYWl0aW5nRm9yVGFyZ2V0QXZhaWxhYmlsaXR5LCAwKTsKKworICAgICAgICAv
LyBUaGUgbWFpbiB0aHJlYWQgYW5pbWF0aW9uIGlzIG5vIGxvbmdlciBtYXN0ZXIuCiAgICAgICAg
IGNvbnRyb2xsZXJJbXBsLT5hZGQodG9BZGQucmVsZWFzZSgpKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>138751</attachid>
            <date>2012-04-25 00:49:15 -0700</date>
            <delta_ts>2012-04-25 00:50:50 -0700</delta_ts>
            <desc>One that builds, hopefully</desc>
            <filename>bug-84210-20120425004914.patch</filename>
            <type>text/plain</type>
            <size>27527</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU1MzRlZjE1ZWQ2OTJh
Mjg2OGYxYTU5NjFhMWMwODRiNDdhYzRlYS4uNTgyYjJlNzA5ZWM3ZmRiOTJiYzFjOTFjZjJkOWI0
MjhhZGJmZDg3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTA0LTE3ICBOYXQg
RHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCB0cmFj
aW5nIGZvciBhY3RpdmUgY29tcG9zaXRlZCBhbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDIxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IEphbWVzIFJvYmluc29uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmlt
YXRpb246OkNDQWN0aXZlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5p
bWF0aW9uOjp+Q0NBY3RpdmVBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVB
bmltYXRpb246OnRyYW5zZmVyVG9JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoQ0NBY3RpdmVB
bmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZCk6CisKKzIwMTIt
MDQtMjEgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEV4cG9zZSBo
aWdoLXJlc29sdXRpb24gb24gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGNhbGxiYWNrCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjY4MworCisgICAgICAg
IFRoaXMgY2hhbmdlcyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUncyBhbmltYXRpb25TdGFydFRpbWUg
YXJndW1lbnQKKyAgICAgICAgdG8gYmUgYSBoaWdoIHJlc29sdXRpb24gRE9NIHRpbWVzdGFtcCwg
cGVyIGRpc3Vjc3Npb24gaGVyZToKKyAgICAgICAgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZl
cy9QdWJsaWMvcHVibGljLXdlYi1wZXJmLzIwMTJBcHIvMDAwNC5odG1sCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAg
ICAqIGRvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpzZXJ2
aWNlU2NyaXB0ZWRBbmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpzY2hlZHVs
ZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXI6OmFuaW1hdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmlt
YXRpb25Db250cm9sbGVyOjpkaXNwbGF5UmVmcmVzaEZpcmVkKToKKyAgICAgICAgKiBkb20vU2Ny
aXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmg6CisgICAgICAgIChTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyk6CisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlSZWZyZXNoTW9uaXRvcjo6RGlzcGxheVJlZnJlc2hNb25pdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6bm90aWZ5Q2xpZW50cyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmg6CisgICAgICAgIChEaXNw
bGF5UmVmcmVzaE1vbml0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVy
cnkvRGlzcGxheVJlZnJlc2hNb25pdG9yQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rRmlyZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnJl
cXVlc3RSZWZyZXNoQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hN
b25pdG9yOjpkaXNwbGF5TGlua0ZpcmVkKToKKwogMjAxMi0wNC0yMyAgS2VudGFybyBIYXJhICA8
aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBQYXNzIElzb2xhdGUgdG8gdG9W
OCgpIChQYXJ0MykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2YyNDVkOGZkYWI0ZWEy
ODRiYzI1NDQ3OGExZjk2MTQ5MWQyYWI2ZC4uNTQxN2Q4YWZlYjNiMjg3ODk3ZWU4OWIxZTMyNzM0
MDQ0ZmQ2NzgwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxMi0wNC0yMSAgTmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRXhw
b3NlIGhpZ2gtcmVzb2x1dGlvbiBvbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhY2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjgzCisKKyAg
ICAgICAgVGhpcyBjaGFuZ2VzIHJlcXVlc3RBbmltYXRpb25GcmFtZSdzIGFuaW1hdGlvblN0YXJ0
VGltZSBhcmd1bWVudAorICAgICAgICB0byBiZSBhIGhpZ2ggcmVzb2x1dGlvbiBET00gdGltZXN0
YW1wLCBwZXIgZGlzdWNzc2lvbiBoZXJlOgorICAgICAgICBodHRwOi8vbGlzdHMudzMub3JnL0Fy
Y2hpdmVzL1B1YmxpYy9wdWJsaWMtd2ViLXBlcmYvMjAxMkFwci8wMDA0Lmh0bWwKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9QYWdlV2lkZ2V0
RGVsZWdhdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlV2lkZ2V0RGVsZWdhdGU6OmFuaW1h
dGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKToKKwogMjAxMi0wNC0yMyAgSWFuIFZvbGxpY2sg
IDx2b2xsaWNrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFByb3Blcmx5IGln
bm9yZSB1bnN1cHBvcnRlZCBhbmltYXRpb24gZGlyZWN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZXF1ZXN0QW5pbWF0aW9uRnJh
bWVDYWxsYmFja0N1c3RvbS5jcHAKaW5kZXggYzZiZTY0N2Y4ODU4NGViOTAyY2RhODE1OTMwZTVm
ZmU5OGVlYTc5MC4uNjdkODMwODMzZThiYWE2ZDEwZTRkNzg3YTA3NGZkNTQ4OTJkNGYzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZXF1ZXN0QW5pbWF0aW9uRnJh
bWVDYWxsYmFja0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3RvbS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIEpTUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KERPTVRpbWVTdGFtcCB0aW1l
KQorYm9vbCBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOjpoYW5kbGVFdmVudChkb3Vi
bGUgaGlnaFJlc05vd01zKQogewogICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CkBAIC00Myw3ICs0Myw3IEBAIGJvb2wgSlNSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFjazo6aGFuZGxlRXZlbnQoRE9NVGltZVN0YW1wIHRpbWUpCiAgICAgSlNMb2Nr
IGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKIAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
IGFyZ3M7Ci0gICAgYXJncy5hcHBlbmQoanNOdW1iZXIodGltZSkpOworICAgIGFyZ3MuYXBwZW5k
KGpzTnVtYmVyKGhpZ2hSZXNOb3dNcykpOwogCiAgICAgYm9vbCByYWlzZWRFeGNlcHRpb24gPSBm
YWxzZTsKICAgICBtX2RhdGEtPmludm9rZUNhbGxiYWNrKGFyZ3MsICZyYWlzZWRFeGNlcHRpb24p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTU0N2MzY2JkZTEwYjhlOTI4YzdhYjMxMDNi
OTYyMGZkMDM1ZTUwNy4uN2ExNzljMmM0NWM4M2RjZTk1OTBlMDcwYjcyMWE0Yzk5NDU5ODFmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NzA3LDExICs1NzA3LDExIEBAIHZvaWQgRG9j
dW1lbnQ6OndlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCkKICAgICBtX3NjcmlwdGVk
QW5pbWF0aW9uQ29udHJvbGxlci0+Y2FuY2VsQ2FsbGJhY2soaWQpOwogfQogCi12b2lkIERvY3Vt
ZW50OjpzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKERPTVRpbWVTdGFtcCB0aW1lKQordm9pZCBE
b2N1bWVudDo6c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljQW5pbWF0
aW9uU3RhcnRUaW1lKQogewogICAgIGlmICghbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIp
CiAgICAgICAgIHJldHVybjsKLSAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+c2Vy
dmljZVNjcmlwdGVkQW5pbWF0aW9ucyh0aW1lKTsKKyAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlci0+c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhtb25vdG9uaWNBbmltYXRpb25TdGFy
dFRpbWUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggN2E1M2FlMWVjMzI2
MWQ3ZmFmZDdkMGQ2Y2QxNWRlNjlhMTQ2MzU1ZS4uNTIxMTljODczNThmNmZlNjUwZGM1NThhMDIx
ZDI4OTM5ODAyYTllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExMTYsNyArMTExNiw3IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgaW50IHdl
YmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShQYXNzUmVmUHRyPFJlcXVlc3RBbmltYXRpb25GcmFt
ZUNhbGxiYWNrPik7CiAgICAgdm9pZCB3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaWQp
OwotICAgIHZvaWQgc2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhET01UaW1lU3RhbXApOworICAg
IHZvaWQgc2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljQW5pbWF0aW9u
U3RhcnRUaW1lKTsKICNlbmRpZgogCiAgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVu
dFRhcmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JlcXVlc3RBbmltYXRp
b25GcmFtZUNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVxdWVzdEFuaW1hdGlvbkZy
YW1lQ2FsbGJhY2suaAppbmRleCBhODY3OTIyNDllZWNjMTk5NTcxNTNiYzZlMGY1NzYxODA3ZjE3
ZjM0Li5mMTM0NzI2OGEwMDM4Njc0MjA3MWIwMTAzOGI2NTFlMDA5ZmZkYTcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaApAQCAt
MzEsNyArMzEsNiBAQAogI2lmbmRlZiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja19oCiAj
ZGVmaW5lIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrX2gKIAotI2luY2x1ZGUgIkRPTVRp
bWVTdGFtcC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTM5LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSZXF1ZXN0QW5pbWF0
aW9uRnJhbWVDYWxsYmFjaz4gewogcHVibGljOgogICAgIHZpcnR1YWwgflJlcXVlc3RBbmltYXRp
b25GcmFtZUNhbGxiYWNrKCkgeyB9Ci0gICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KERPTVRp
bWVTdGFtcCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChkb3VibGUgaGlnaFJl
c1RpbWVNcykgPSAwOwogCiAgICAgaW50IG1faWQ7CiAgICAgYm9vbCBtX2ZpcmVkT3JDYW5jZWxs
ZWQ7CkBAIC00OCw0ICs0NywzIEBAIHB1YmxpYzoKIH0KIAogI2VuZGlmIC8vIFJlcXVlc3RBbmlt
YXRpb25GcmFtZUNhbGxiYWNrX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Jl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SZXF1
ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwKaW5kZXggNGRhNjgyMDgzMTA0NzJmZGQ0YTY0
YjRjYjA4Mzg5NmJhNmIzNDYyNi4uN2U4ZTFkNzk4NjkxMzFmOTI0MGExM2NiODQ2YjNjZWRlYjE5
NzA5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JlcXVlc3RBbmltYXRpb25GcmFt
ZUNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVxdWVzdEFuaW1hdGlvbkZy
YW1lQ2FsbGJhY2suaWRsCkBAIC0zMywxMSArMzMsMTMgQEAgbW9kdWxlIGNvcmUgewogICAgICAg
ICBDYWxsYmFjaywKICAgICAgICAgQ29uZGl0aW9uYWw9UkVRVUVTVF9BTklNQVRJT05fRlJBTUUs
CiAgICAgXSBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3sKKyAgICAgICAgLy8gaGlnaFJl
c1RpbWUgaXMgcGFzc2VkIGFzIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAsIHNlZQorICAgICAg
ICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9oci10aW1lLyBmb3IgZGV0YWlscy4KICNpZiBkZWZp
bmVkKFY4X0JJTkRJTkcpICYmIFY4X0JJTkRJTkcKLSAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVu
dChpbiBET01UaW1lU3RhbXAgdGltZSk7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4g
ZG91YmxlIGhpZ2hSZXNUaW1lKTsKICNlbHNlCi0gICAgICAgIFtDdXN0b21dIGJvb2xlYW4gaGFu
ZGxlRXZlbnQoaW4gRE9NVGltZVN0YW1wIHRpbWUpOworICAgICAgICBbQ3VzdG9tXSBib29sZWFu
IGhhbmRsZUV2ZW50KGluIGRvdWJsZSBoaWdoUmVzVGltZSk7CiAjZW5kaWYKLSAgICAgICAgCisK
ICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyLmNwcAppbmRleCAzODBlMGIyNDUwMWY3MmI3YjY3YjNiNTRiYTk3MGMzZjVjYTA4
Y2VmLi5jYWY0ZGY4MDdmOGM1NzhlNTQ1NTZjNTM4MjYzOWIwOTFjM2VkZjRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAt
MjksNiArMjksNyBAQAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKIAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIgpAQCAtNTEsNyArNTIsNyBA
QCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
cihEb2N1bWVudCogZG9jdW1lbnQsIFBsYQogICAgICwgbV9zdXNwZW5kQ291bnQoMCkKICNpZiBV
U0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAgICAgLCBtX2FuaW1hdGlvblRpbWVy
KHRoaXMsICZTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OmFuaW1hdGlvblRpbWVyRmlyZWQp
Ci0gICAgLCBtX2xhc3RBbmltYXRpb25GcmFtZVRpbWUoMCkKKyAgICAsIG1fbGFzdEFuaW1hdGlv
bkZyYW1lVGltZU1vbm90b25pYygwKQogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9E
SVNQTEFZX01PTklUT1IpCiAgICAgLCBtX3VzZVRpbWVyKGZhbHNlKQogI2VuZGlmCkBAIC0xMDYs
MTEgKzEwNywxMyBAQCB2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6Y2FuY2VsQ2Fs
bGJhY2soQ2FsbGJhY2tJZCBpZCkKICAgICB9CiB9CiAKLXZvaWQgU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyOjpzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKERPTVRpbWVTdGFtcCB0aW1lKQor
dm9pZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlv
bnMoZG91YmxlIG1vbm90b25pY1RpbWVOb3cpCiB7CiAgICAgaWYgKCFtX2NhbGxiYWNrcy5zaXpl
KCkgfHwgbV9zdXNwZW5kQ291bnQpCiAgICAgICAgIHJldHVybjsKIAorICAgIGRvdWJsZSBoaWdo
UmVzTm93TXMgPSAxMDAwLjAgKiBtX2RvY3VtZW50LT5sb2FkZXIoKS0+dGltaW5nKCktPmNvbnZl
cnRNb25vdG9uaWNUaW1lVG9Eb2N1bWVudFRpbWUobW9ub3RvbmljVGltZU5vdyk7CisKICAgICAv
LyBGaXJzdCwgZ2VuZXJhdGUgYSBsaXN0IG9mIGNhbGxiYWNrcyB0byBjb25zaWRlci4gIENhbGxi
YWNrcyByZWdpc3RlcmVkIGZyb20gdGhpcyBwb2ludAogICAgIC8vIG9uIGFyZSBjb25zaWRlcmVk
IG9ubHkgZm9yIHRoZSAibmV4dCIgZnJhbWUsIG5vdCB0aGlzIG9uZS4KICAgICBDYWxsYmFja0xp
c3QgY2FsbGJhY2tzKG1fY2FsbGJhY2tzKTsKQEAgLTEyNCw3ICsxMjcsNyBAQCB2b2lkIFNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhET01UaW1l
U3RhbXAgdGltZSkKICAgICAgICAgaWYgKCFjYWxsYmFjay0+bV9maXJlZE9yQ2FuY2VsbGVkKSB7
CiAgICAgICAgICAgICBjYWxsYmFjay0+bV9maXJlZE9yQ2FuY2VsbGVkID0gdHJ1ZTsKICAgICAg
ICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxGaXJlQW5pbWF0aW9uRnJhbWUobV9kb2N1bWVudCwgY2FsbGJh
Y2stPm1faWQpOwotICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KHRpbWUpOworICAg
ICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KGhpZ2hSZXNOb3dNcyk7CiAgICAgICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpcmVBbmltYXRpb25GcmFtZShjb29raWUp
OwogICAgICAgICB9CiAgICAgfQpAQCAtMTQwLDE0ICsxNDMsMTQgQEAgdm9pZCBTY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXI6OnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoRE9NVGltZVN0YW1w
IHRpbWUpCiAgICAgaWYgKG1fY2FsbGJhY2tzLnNpemUoKSkKICAgICAgICAgc2NoZWR1bGVBbmlt
YXRpb24oKTsKIH0KLSAgICAKKwogdm9pZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6Ondp
bmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAjaWYg
VVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKICAgICBEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCktPndpbmRvd1NjcmVlbkRpZENo
YW5nZShkaXNwbGF5SUQsIHRoaXMpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZGlzcGxheUlE
KTsKLSNlbmRpZiAgICAKKyNlbmRpZgogfQogCiB2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlcjo6c2NoZWR1bGVBbmltYXRpb24oKQpAQCAtMTYwLDE0ICsxNjMsMTQgQEAgdm9pZCBTY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OnNjaGVkdWxlQW5pbWF0aW9uKCkKICAgICBpZiAoIW1f
dXNlVGltZXIpIHsKICAgICAgICAgaWYgKERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnNo
YXJlZE1hbmFnZXIoKS0+c2NoZWR1bGVBbmltYXRpb24odGhpcykpCiAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICAKKwogICAgICAgICBtX3VzZVRpbWVyID0gdHJ1ZTsKICAgICB9CiAj
ZW5kaWYKICAgICBpZiAobV9hbmltYXRpb25UaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1
cm47Ci0gICAgICAgIAotICAgIGRvdWJsZSBzY2hlZHVsZURlbGF5ID0gbWF4PGRvdWJsZT4oTWlu
aW11bUFuaW1hdGlvbkludGVydmFsIC0gKGN1cnJlbnRUaW1lKCkgLSBtX2xhc3RBbmltYXRpb25G
cmFtZVRpbWUpLCAwKTsKKworICAgIGRvdWJsZSBzY2hlZHVsZURlbGF5ID0gbWF4PGRvdWJsZT4o
TWluaW11bUFuaW1hdGlvbkludGVydmFsIC0gKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
IC0gbV9sYXN0QW5pbWF0aW9uRnJhbWVUaW1lTW9ub3RvbmljKSwgMCk7CiAgICAgbV9hbmltYXRp
b25UaW1lci5zdGFydE9uZVNob3Qoc2NoZWR1bGVEZWxheSk7CiAjZWxzZQogICAgIGlmIChGcmFt
ZVZpZXcqIGZyYW1lVmlldyA9IG1fZG9jdW1lbnQtPnZpZXcoKSkKQEAgLTE3OCwxMiArMTgxLDE5
IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpzY2hlZHVsZUFuaW1hdGlvbigp
CiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogdm9pZCBTY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXI6OmFuaW1hdGlvblRpbWVyRmlyZWQoVGltZXI8U2NyaXB0ZWRBbmlt
YXRpb25Db250cm9sbGVyPiopCiB7Ci0gICAgbV9sYXN0QW5pbWF0aW9uRnJhbWVUaW1lID0gY3Vy
cmVudFRpbWUoKTsKLSAgICBzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKGNvbnZlcnRTZWNvbmRz
VG9ET01UaW1lU3RhbXAobV9sYXN0QW5pbWF0aW9uRnJhbWVUaW1lKSk7CisgICAgbV9sYXN0QW5p
bWF0aW9uRnJhbWVUaW1lTW9ub3RvbmljID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7
CisgICAgc2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhtX2xhc3RBbmltYXRpb25GcmFtZVRpbWVN
b25vdG9uaWMpOworfQorI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01P
TklUT1IpCit2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6ZGlzcGxheVJlZnJlc2hG
aXJlZChkb3VibGUgbW9ub3RvbmljVGltZU5vdykKK3sKKyAgICBzZXJ2aWNlU2NyaXB0ZWRBbmlt
YXRpb25zKG1vbm90b25pY1RpbWVOb3cpOwogfQogI2VuZGlmCisjZW5kaWYKKworCiAKIH0KIAog
I2VuZGlmCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIuaAppbmRleCA1MWMzNmI5OTRmYWQxMDAwZTljMDQxZTFhYWI4N2I2ODYzOGQyNjA0Li41
MTI5NGRhODgzOGM1YTQ2NTczNjc2NDYwNmQ1NjEwNjE1OTRlMzE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5oCkBAIC02MSw3ICs2MSw3
IEBAIHB1YmxpYzoKIAogICAgIENhbGxiYWNrSWQgcmVnaXN0ZXJDYWxsYmFjayhQYXNzUmVmUHRy
PFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPik7CiAgICAgdm9pZCBjYW5jZWxDYWxsYmFj
ayhDYWxsYmFja0lkKTsKLSAgICB2b2lkIHNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoRE9NVGlt
ZVN0YW1wKTsKKyAgICB2b2lkIHNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoZG91YmxlIG1vbm90
b25pY1RpbWVOb3cpOwogCiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUoKTsK
QEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlcihEb2N1bWVudCosIFBsYXRmb3JtRGlzcGxheUlEKTsKLSAgICAKKwogICAg
IHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjaz4gPiBD
YWxsYmFja0xpc3Q7CiAgICAgQ2FsbGJhY2tMaXN0IG1fY2FsbGJhY2tzOwogCkBAIC04Myw3ICs4
Myw3IEBAIHByaXZhdGU6CiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQog
ICAgIHZvaWQgYW5pbWF0aW9uVGltZXJGaXJlZChUaW1lcjxTY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXI+Kik7CiAgICAgVGltZXI8U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyPiBtX2FuaW1h
dGlvblRpbWVyOwotICAgIGRvdWJsZSBtX2xhc3RBbmltYXRpb25GcmFtZVRpbWU7CisgICAgZG91
YmxlIG1fbGFzdEFuaW1hdGlvbkZyYW1lVGltZU1vbm90b25pYzsKIAogI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgLy8gT3ZlcnJpZGUgZm9yIERp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudApAQCAtOTksNCArOTksMyBAQCBwcml2YXRlOgogI2Vu
ZGlmIC8vIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKIAogI2VuZGlmIC8vIFNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlcl9oCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRl
eCBhMDZjODkxODM0ZDM3ZjNjZjM3OTkyZDNiODQ4NDVhNzcwNzEyZGFlLi41ODJiNzhhYzc3YWQ3
MzQwODQyNGQ3ZjczNGQxMzY1YjhiZWI3MzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CkBAIC0yMTYxLDcgKzIxNjEsNyBAQCB2b2lkIEZyYW1lVmlldzo6dW5zY2hlZHVsZVJlbGF5b3V0
KCkKIH0KIAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKLXZvaWQgRnJhbWVW
aWV3OjpzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKERPTVRpbWVTdGFtcCB0aW1lKQordm9pZCBG
cmFtZVZpZXc6OnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY0FuaW1h
dGlvblN0YXJ0VGltZSkKIHsKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1fZnJhbWUuZ2V0KCk7
IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAg
IGZyYW1lLT52aWV3KCktPnNlcnZpY2VTY3JvbGxBbmltYXRpb25zKCk7CkBAIC0yMTczLDcgKzIx
NzMsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhET01UaW1l
U3RhbXAgdGltZSkKICAgICAgICAgZG9jdW1lbnRzLmFwcGVuZChmcmFtZS0+ZG9jdW1lbnQoKSk7
CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRvY3VtZW50cy5zaXplKCk7ICsraSkKLSAg
ICAgICAgZG9jdW1lbnRzW2ldLT5zZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKHRpbWUpOworICAg
ICAgICBkb2N1bWVudHNbaV0tPnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMobW9ub3RvbmljQW5p
bWF0aW9uU3RhcnRUaW1lKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRl
eCA2MWZhYzU0ODRkYmNhNTFlYjEyYjUxNTlmYWJiYzdmZTIxNTk4M2JjLi5jNWY5NGFmZGQ4Njhh
Nzg3MTI3NmExZTY3MWI2ZjhjMThmMDMwMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAg
LTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc0Z1bGxSZXBhaW50KCkgY29u
c3QgeyByZXR1cm4gbV9kb0Z1bGxSZXBhaW50OyB9CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklN
QVRJT05fRlJBTUUpCi0gICAgdm9pZCBzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKERPTVRpbWVT
dGFtcCk7CisgICAgdm9pZCBzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKGRvdWJsZSBtb25vdG9u
aWNBbmltYXRpb25TdGFydFRpbWUpOwogI2VuZGlmCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9E
aXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAppbmRleCAzNjZhY2EzMjZmNzQ4ODI2MjI2YzVh
NzgwNDgxZDVhNDlmNmIzMjQ4Li4yNzY5OTA3MGZlOWFjNWEyZTA0NzFkZWNlZWRlZmY5NjA0MTM1
N2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5
UmVmcmVzaE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBEaXNwbGF5
UmVmcmVzaE1vbml0b3JDbGllbnQ6OmZpcmVEaXNwbGF5UmVmcmVzaElmTmVlZGVkKGRvdWJsZSB0
aW1lc3RhbXApCiB9CiAKIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6RGlzcGxheVJlZnJlc2hNb25p
dG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKLSAgICA6IG1fdGltZXN0YW1wKDApCisg
ICAgOiBtX21vbm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSgwKQogICAgICwgbV9hY3RpdmUodHJ1
ZSkKICAgICAsIG1fc2NoZWR1bGVkKGZhbHNlKQogICAgICwgbV9wcmV2aW91c0ZyYW1lRG9uZSh0
cnVlKQpAQCAtNzUsMTUgKzc1LDE1IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpyZWZy
ZXNoRGlzcGxheU9uTWFpblRocmVhZCh2b2lkKiBkYXRhKQogCiB2b2lkIERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6bm90aWZ5Q2xpZW50cygpCiB7Ci0gICAgZG91YmxlIHRpbWVzdGFtcDsKKyAgICBk
b3VibGUgbW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1lOwogICAgIHsKICAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9zY2hlZHVsZWQgPSBmYWxzZTsKLSAgICAg
ICAgdGltZXN0YW1wID0gbV90aW1lc3RhbXA7CisgICAgICAgIG1vbm90b25pY0FuaW1hdGlvblN0
YXJ0VGltZSA9IG1fbW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1lOwogICAgIH0KIAogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jbGllbnRzLnNpemUoKTsgKytpKQotICAgICAgICBtX2Ns
aWVudHNbaV0tPmZpcmVEaXNwbGF5UmVmcmVzaElmTmVlZGVkKHRpbWVzdGFtcCk7CisgICAgICAg
IG1fY2xpZW50c1tpXS0+ZmlyZURpc3BsYXlSZWZyZXNoSWZOZWVkZWQobW9ub3RvbmljQW5pbWF0
aW9uU3RhcnRUaW1lKTsKIAogICAgIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVJlZnJlc2hNb25pdG9yLmgKaW5kZXggY2E2Y2ViZGZkY2YxNmYxOTIzYjZmOTQ2ZmYxZTgwZTgz
NzU3MDU1Zi4uMGVlODEwMWEyYWI3OTQyZDNkMTI2YTZkZjA5YTc5NGYyMzZmNmU0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25p
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJl
c2hNb25pdG9yLmgKQEAgLTExMyw3ICsxMTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5
Q2xpZW50cygpOwogICAgIHN0YXRpYyB2b2lkIHJlZnJlc2hEaXNwbGF5T25NYWluVGhyZWFkKHZv
aWQqIGRhdGEpOwogCi0gICAgZG91YmxlIG1fdGltZXN0YW1wOworICAgIGRvdWJsZSBtX21vbm90
b25pY0FuaW1hdGlvblN0YXJ0VGltZTsKICAgICBib29sIG1fYWN0aXZlOwogICAgIGJvb2wgbV9z
Y2hlZHVsZWQ7CiAgICAgYm9vbCBtX3ByZXZpb3VzRnJhbWVEb25lOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9EaXNwbGF5UmVmcmVzaE1v
bml0b3JCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Js
YWNrYmVycnkvRGlzcGxheVJlZnJlc2hNb25pdG9yQmxhY2tCZXJyeS5jcHAKaW5kZXggZjcwNGUy
YThiMGNlMjMzNTk5Y2U2YzZiN2JiNzFmZGMyZGNkNjhmNy4uZGFmMmIzOTYwOGRhMzUwZWE1Y2Ew
Nzk2YmYyZjIyNDU5ZmJmMDY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9EaXNwbGF5UmVmcmVzaE1vbml0b3JCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvckJsYWNrQmVycnkuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0ZpcmVkKCkKIAogICAgIG1fcHJldmlvdXNGcmFt
ZURvbmUgPSBmYWxzZTsKIAotICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICBt
X21vbm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChyZWZyZXNoRGlzcGxheU9uTWFpblRocmVhZCwg
dGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAKaW5kZXggMjYwZDdk
NDdlM2IzMWI2MmY1OWIxZGE4MDYwYWNkNWI3ODczNzJhYy4uYjQzMTFkMjgzNmUzYTBmMmUyOTM0
ODEyNzQ3OTY0ZWUwYTM3ZTQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNw
cApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiY2MvQ0NBY3RpdmVBbmltYXRpb24uaCIK
IAorI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKICNpbmNsdWRlICJjYy9DQ0FuaW1hdGlvbkN1cnZl
LmgiCiAKICNpbmNsdWRlIDxjbWF0aD4KQEAgLTM0LDEwICszNSwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IENDQWN0aXZlQW5pbWF0aW9u
OjpjcmVhdGUoUGFzc093blB0cjxDQ0FuaW1hdGlvbkN1cnZlPiBjdXJ2ZSwgaW50IGFuaW1hdGlv
bklkLCBpbnQgZ3JvdXBJZCwgVGFyZ2V0UHJvcGVydHkgdGFyZ2V0UHJvcGVydHkpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBDQ0FjdGl2ZUFuaW1hdGlvbihjdXJ2ZSwgYW5pbWF0aW9uSWQs
IGdyb3VwSWQsIHRhcmdldFByb3BlcnR5KSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ0Fj
dGl2ZUFuaW1hdGlvbihjdXJ2ZSwgYW5pbWF0aW9uSWQsIGdyb3VwSWQsIHRhcmdldFByb3BlcnR5
LCB0cnVlKSk7CiB9CiAKLUNDQWN0aXZlQW5pbWF0aW9uOjpDQ0FjdGl2ZUFuaW1hdGlvbihQYXNz
T3duUHRyPENDQW5pbWF0aW9uQ3VydmU+IGN1cnZlLCBpbnQgYW5pbWF0aW9uSWQsIGludCBncm91
cElkLCBUYXJnZXRQcm9wZXJ0eSB0YXJnZXRQcm9wZXJ0eSkKK0NDQWN0aXZlQW5pbWF0aW9uOjpD
Q0FjdGl2ZUFuaW1hdGlvbihQYXNzT3duUHRyPENDQW5pbWF0aW9uQ3VydmU+IGN1cnZlLCBpbnQg
YW5pbWF0aW9uSWQsIGludCBncm91cElkLCBUYXJnZXRQcm9wZXJ0eSB0YXJnZXRQcm9wZXJ0eSwg
Ym9vbCBpc0NvbnRyb2xsaW5nSW5zdGFuY2UpCiAgICAgOiBtX2N1cnZlKGN1cnZlKQogICAgICwg
bV9pZChhbmltYXRpb25JZCkKICAgICAsIG1fZ3JvdXAoZ3JvdXBJZCkKQEAgLTQ4LDExICs0OSwx
OSBAQCBDQ0FjdGl2ZUFuaW1hdGlvbjo6Q0NBY3RpdmVBbmltYXRpb24oUGFzc093blB0cjxDQ0Fu
aW1hdGlvbkN1cnZlPiBjdXJ2ZSwgaW50IGFuaQogICAgICwgbV9uZWVkc1N5bmNocm9uaXplZFN0
YXJ0VGltZShmYWxzZSkKICAgICAsIG1fcGF1c2VUaW1lKDApCiAgICAgLCBtX3RvdGFsUGF1c2Vk
VGltZSgwKQorICAgICwgbV9pc0NvbnRyb2xsaW5nSW5zdGFuY2UoaXNDb250cm9sbGluZ0luc3Rh
bmNlKQogeworICAgIG1faW5zdGFuY2VJRCA9IHRoaXM7CisgICAgaWYgKCFpc0NvbnRyb2xsaW5n
SW5zdGFuY2UpCisgICAgICAgIHJldHVybjsKKyAgICBUUkFDRV9FVkVOVF9BU1lOQ19CRUdJTjAo
ImNjIiwgIkNDQWN0aXZlQW5pbWF0aW9uIiwgbV9pbnN0YW5jZUlEKTsKIH0KIAogQ0NBY3RpdmVB
bmltYXRpb246On5DQ0FjdGl2ZUFuaW1hdGlvbigpCiB7CisgICAgaWYgKCFtX2lzQ29udHJvbGxp
bmdJbnN0YW5jZSkKKyAgICAgICAgcmV0dXJuOworICAgIFRSQUNFX0VWRU5UX0FTWU5DX0VORDAo
ImNjIiwgIkFjdGl2ZUFuaW1hdGlvbiIsIG1faW5zdGFuY2VJRCk7CiB9CiAKIHZvaWQgQ0NBY3Rp
dmVBbmltYXRpb246OnNldFJ1blN0YXRlKFJ1blN0YXRlIHJ1blN0YXRlLCBkb3VibGUgbm93KQpA
QCAtMTIxLDE0ICsxMzAsMTkgQEAgZG91YmxlIENDQWN0aXZlQW5pbWF0aW9uOjp0cmltVGltZVRv
Q3VycmVudEl0ZXJhdGlvbihkb3VibGUgbm93KSBjb25zdAogICAgIHJldHVybiBmbW9kKHRyaW1t
ZWQsIG1fY3VydmUtPmR1cmF0aW9uKCkpOwogfQogCi1QYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0
aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmVGb3JJbXBsVGhyZWFkKCkgY29uc3QKK1Bhc3NP
d25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IENDQWN0aXZlQW5pbWF0aW9uOjp0cmFuc2ZlclRvSW1w
bFRocmVhZCgpCiB7Ci0gICAgT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiB0b1JldHVybihhZG9w
dFB0cihuZXcgQ0NBY3RpdmVBbmltYXRpb24obV9jdXJ2ZS0+Y2xvbmUoKSwgbV9pZCwgbV9ncm91
cCwgbV90YXJnZXRQcm9wZXJ0eSkpKTsKKyAgICBPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IHRv
UmV0dXJuKGFkb3B0UHRyKG5ldyBDQ0FjdGl2ZUFuaW1hdGlvbihtX2N1cnZlLT5jbG9uZSgpLCBt
X2lkLCBtX2dyb3VwLCBtX3RhcmdldFByb3BlcnR5LCBmYWxzZSkpKTsKICAgICB0b1JldHVybi0+
bV9ydW5TdGF0ZSA9IG1fcnVuU3RhdGU7CiAgICAgdG9SZXR1cm4tPm1faXRlcmF0aW9ucyA9IG1f
aXRlcmF0aW9uczsKICAgICB0b1JldHVybi0+bV9zdGFydFRpbWUgPSBtX3N0YXJ0VGltZTsKICAg
ICB0b1JldHVybi0+bV9wYXVzZVRpbWUgPSBtX3BhdXNlVGltZTsKICAgICB0b1JldHVybi0+bV90
b3RhbFBhdXNlZFRpbWUgPSBtX3RvdGFsUGF1c2VkVGltZTsKKworICAgIEFTU0VSVChtX2lzQ29u
dHJvbGxpbmdJbnN0YW5jZSk7CisgICAgbV9pc0NvbnRyb2xsaW5nSW5zdGFuY2UgPSBmYWxzZTsK
KyAgICB0b1JldHVybi0+bV9pbnN0YW5jZUlEID0gbV9pbnN0YW5jZUlEOworICAgIHRvUmV0dXJu
LT5tX2lzQ29udHJvbGxpbmdJbnN0YW5jZSA9IHRydWU7CiAgICAgcmV0dXJuIHRvUmV0dXJuLnJl
bGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmgKaW5kZXggNWRiODNh
Zjk1NjIxZjY1MGYzZGZjM2VlYzMxNGQ0OGRkYzk0ZTRmNS4uN2UyNzI3NjA1ZTg4NTQzZDEyZTdh
ZTIxYzk4NjUyYjk4ZGJmNzc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCkBA
IC0xMDEsMTIgKzEwMSwxMiBAQCBwdWJsaWM6CiAgICAgLy8gb2YgaXRlcmF0aW9ucywgcmV0dXJu
cyB0aGUgcmVsYXRpdmUgdGltZSBpbiB0aGUgY3VycmVudCBpdGVyYXRpb24uCiAgICAgZG91Ymxl
IHRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKGRvdWJsZSBub3cpIGNvbnN0OwogCi0gICAgUGFz
c093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gY2xvbmVGb3JJbXBsVGhyZWFkKCkgY29uc3Q7Cisg
ICAgUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gdHJhbnNmZXJUb0ltcGxUaHJlYWQoKTsK
IAogICAgIHZvaWQgc3luY2hyb25pemVQcm9wZXJ0aWVzKENDQWN0aXZlQW5pbWF0aW9uKik7CiAK
IHByaXZhdGU6Ci0gICAgQ0NBY3RpdmVBbmltYXRpb24oUGFzc093blB0cjxDQ0FuaW1hdGlvbkN1
cnZlPiwgaW50IGFuaW1hdGlvbklkLCBpbnQgZ3JvdXBJZCwgVGFyZ2V0UHJvcGVydHkpOworICAg
IENDQWN0aXZlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NBbmltYXRpb25DdXJ2ZT4sIGludCBhbmlt
YXRpb25JZCwgaW50IGdyb3VwSWQsIFRhcmdldFByb3BlcnR5LCBib29sIGlzQ29udHJvbGxpbmdJ
bnN0YW5jZSk7CiAKICAgICBPd25QdHI8Q0NBbmltYXRpb25DdXJ2ZT4gbV9jdXJ2ZTsKIApAQCAt
MTMzLDYgKzEzMywyNSBAQCBwcml2YXRlOgogICAgIC8vIGFib3V0IHRoZXNlIHZhbHVlcy4KICAg
ICBkb3VibGUgbV9wYXVzZVRpbWU7CiAgICAgZG91YmxlIG1fdG90YWxQYXVzZWRUaW1lOworCisg
ICAgLy8gQW5pbWF0aW9ucyBsaXZlIGR1YWwgbGl2ZXMuIFdoZW4gdGhleSBhcmUgZmlyc3QgY3Jl
YXRlZCwgdGhleSBsaXZlIG9uIHRoZQorICAgIC8vIG1haW4gdGhyZWFkIGFuZCB0aGVyZSBpcyBh
IDE6MSByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIENDQWN0aXZlQW5pbWF0aW9uCisgICAgLy8gYW5k
IHRoZSBhY3R1YWwgZWZmZWN0cyBvZiB0aGUgYW5pbWF0aW9uLiBIb3dldmVyLCB3aGVuIGFuIGFu
aW1hdGlvbiBpcworICAgIC8vIGFjdGl2YXRlZCBvbiB0aGUgaW1wbCB0aHJlYWQsIHRoZXJlIGFy
ZSB0d28gaW5zdGFuY2VzIG9mIHRoZSBhbmltYXRpb24uCisgICAgLy8gVHJhY2luZyBjb2RlIHdh
bnRzIHRvIHRyZWF0IHRoZXNlIGFzIGEgc2luZ2xlIGNvbmNlcHQgKCJhbiBhbmltYXRpb24iKQor
ICAgIC8vIGJ1dCBuZWVkcyB0byBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIHRoZW0gZnJvbSBvbmUg
YW5vdGhlci4KKyAgICAvLworICAgIC8vIFRoZSBtX2lzQ29udHJvbGxpbmdJbnN0YW5jZSBmaWVs
ZCBhbGxvd3MgdGhlc2UgaW5zdGFuY2VzIHRvIGJlIHRvbGQKKyAgICAvLyBhcGFydC4gSW4gdGhl
IGNhc2Ugb2YgYW4gYWN0aXZlIGFuaW1hdGlvbiBub3QgaGF2aW5nIHlldCBiZWVuIHRyYW5zZmVy
ZWQKKyAgICAvLyB0byB0aGUgaW1wbCB0aHJlYWQsIG9ubHkgb25lIGluc3RhbmNlIGV4aXN0cyBz
byBtX2lzQ29udHJvbGxpbmdJbnN0YW5jZQorICAgIC8vIGlzIHNldCB0byB0cnVlIG9uIHRoYXQg
aW5zdGFuY2UuIE9uY2UgYW4gYW5pbWF0aW9uIGhhcyBiZWVuIHRyYW5zZmVycmVkLCB0aGUgbWFp
biB0aHJlYWQncworICAgIC8vIG9yaWdpbmFsIGluc3RhbmNlJ3MgbV9pc0NvbnRyb2xsaW5nSW5z
dGFuY2UgaXMgc2V0IHRvIGZhbHNlLCBhbmQgdGhlIGltcGwgdGhyZWFkJ3MKKyAgICAvLyBtX2lz
Q29udHJvbGxpbmdJbnN0YW5jZSBpcyBzZXQgdG8gdHJ1ZS4KKyAgICAvLworICAgIC8vIFRoZSBt
X2luc3RhbmNlSUQgaXMgYSB1bmlxdWUgSUQgc2hhcmVkIGJ5IHRoZSB0d28gaW5zdGFuY2VzLiBJ
dCBzaG91bGQKKyAgICAvLyBub3QgYmUgZGVmZXJlbmNlZCwgYXMgaXQgbWF5IG5vdCBiZSB0aHJl
YWRzYWZlLgorICAgIGJvb2wgbV9pc0NvbnRyb2xsaW5nSW5zdGFuY2U7CisgICAgdm9pZCogbV9p
bnN0YW5jZUlEOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDVhMTJkYjdlZDgwOGZh
Y2NmYWY5YTQzY2M4NDQ4YzBlYWRiYjJiOTkuLmI3ZjVlZjQ1Y2ZlZDY0MzAzOTBhYzQxYzRiZTg3
NzM2NDQ4ZThmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29u
dHJvbGxlci5jcHAKQEAgLTI1MCwxMCArMjUwLDEyIEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNv
bnRyb2xsZXI6OnB1c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25D
CiAgICAgICAgIGlmICghbV9hY3RpdmVBbmltYXRpb25zW2ldLT5uZWVkc1N5bmNocm9uaXplZFN0
YXJ0VGltZSgpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgT3duUHRyPENDQWN0
aXZlQW5pbWF0aW9uPiB0b0FkZChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmNsb25lRm9ySW1wbFRo
cmVhZCgpKTsKKyAgICAgICAgT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiB0b0FkZChtX2FjdGl2
ZUFuaW1hdGlvbnNbaV0tPnRyYW5zZmVyVG9JbXBsVGhyZWFkKCkpOwogICAgICAgICBBU1NFUlQo
IXRvQWRkLT5uZWVkc1N5bmNocm9uaXplZFN0YXJ0VGltZSgpKTsKICAgICAgICAgLy8gVGhlIG5l
dyBhbmltYXRpb24gc2hvdWxkIGJlIHNldCB0byBydW4gYXMgc29vbiBhcyBwb3NzaWJsZS4KICAg
ICAgICAgdG9BZGQtPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpXYWl0aW5nRm9yVGFy
Z2V0QXZhaWxhYmlsaXR5LCAwKTsKKworICAgICAgICAvLyBUaGUgbWFpbiB0aHJlYWQgYW5pbWF0
aW9uIGlzIG5vIGxvbmdlciBtYXN0ZXIuCiAgICAgICAgIGNvbnRyb2xsZXJJbXBsLT5hZGQodG9B
ZGQucmVsZWFzZSgpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3Bw
CmluZGV4IGVkZjYzMDg5MmViYWJhOGNiNmFkZTk3NTk3MGEwMjdhY2JmMzBmZjQuLjA1NDZmMzRi
NTNlYTVkMWY5YzgzM2E3NjU2ZWZiZjU5YmQyNGE1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWMuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyBDVlJldHVybiBkaXNwbGF5TGlu
a0NhbGxiYWNrKENWRGlzcGxheUxpbmtSZWYsIGNvbnN0IENWVGltZVN0YW1wKiBub3csIGNvCiAK
ICAgICByZXR1cm4ga0NWUmV0dXJuU3VjY2VzczsKIH0KLSAKKwogRGlzcGxheVJlZnJlc2hNb25p
dG9yOjp+RGlzcGxheVJlZnJlc2hNb25pdG9yKCkKIHsKICAgICBpZiAobV9kaXNwbGF5TGluaykg
ewpAQCAtNjEsNyArNjEsNyBAQCBib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6cmVxdWVzdFJl
ZnJlc2hDYWxsYmFjaygpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAKKwogICAgIGlmICghbV9kaXNwbGF5TGluaykgewogICAgICAgICBtX2Fj
dGl2ZSA9IGZhbHNlOwogICAgICAgICBDVlJldHVybiBlcnJvciA9IENWRGlzcGxheUxpbmtDcmVh
dGVXaXRoQ0dEaXNwbGF5KG1fZGlzcGxheUlELCAmbV9kaXNwbGF5TGluayk7CkBAIC03OCw3ICs3
OCw3IEBAIGJvb2wgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpyZXF1ZXN0UmVmcmVzaENhbGxiYWNr
KCkKIAogICAgICAgICBtX2FjdGl2ZSA9IHRydWU7CiAgICAgfQotICAgIAorCiAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKICAgICBtX3NjaGVkdWxlZCA9IHRydWU7CiAgICAgcmV0dXJu
IHRydWU7CkBAIC05Miw5ICs5MiwxMSBAQCB2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlz
cGxheUxpbmtGaXJlZChkb3VibGUgbm93U2Vjb25kcywgZG91YmxlIG91dHB1dFRpbQogCiAgICAg
bV9wcmV2aW91c0ZyYW1lRG9uZSA9IGZhbHNlOwogCi0gICAgZG91YmxlIHdlYktpdE5vdyA9IGN1
cnJlbnRUaW1lKCk7Ci0gICAgbV90aW1lc3RhbXAgPSB3ZWJLaXROb3cgLSBub3dTZWNvbmRzICsg
b3V0cHV0VGltZVNlY29uZHM7Ci0gICAgCisgICAgZG91YmxlIHdlYktpdE1vbm90b25pY05vdyA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgIGRvdWJsZSB0aW1lVW50aWxPdXRw
dXQgPSBvdXRwdXRUaW1lU2Vjb25kcyAtIG5vd1NlY29uZHM7CisgICAgLy8gRklYTUU6IFNob3Vs
ZCB0aGlzIGJlIHVzaW5nIHdlYktpdE1vbm90b25pY05vdz8KKyAgICBtX21vbm90b25pY0FuaW1h
dGlvblN0YXJ0VGltZSA9IHdlYktpdE1vbm90b25pY05vdyArIHRpbWVVbnRpbE91dHB1dDsKKwog
ICAgIGNhbGxPbk1haW5UaHJlYWQocmVmcmVzaERpc3BsYXlPbk1haW5UaHJlYWQsIHRoaXMpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlV2lkZ2V0RGVs
ZWdhdGUuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZVdpZGdldERlbGVnYXRl
LmNwcAppbmRleCAzODU0OWQ5ZTk2ZTM1NDkxYjE4OTlmZWUxNzkwNzIyOWMwNzgxMWU1Li4wNThi
YWUwMjQ1MGZjYjQ0MDRlYWJjNmY1NGIzNjc4YmQxMjc3N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlV2lkZ2V0RGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VXaWRnZXREZWxlZ2F0ZS5jcHAKQEAgLTU5LDggKzU5LDcg
QEAgdm9pZCBQYWdlV2lkZ2V0RGVsZWdhdGU6OmFuaW1hdGUoUGFnZSogcGFnZSwgZG91YmxlIG1v
bm90b25pY0ZyYW1lQmVnaW5UaW1lKQogICAgIEZyYW1lVmlldyogdmlldyA9IG1haW5GcmFtZVZp
ZXcocGFnZSk7CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm47Ci0gICAgZG91YmxlIHRp
bWVTaGlmdCA9IGN1cnJlbnRUaW1lKCkgLSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsK
LSAgICB2aWV3LT5zZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKGNvbnZlcnRTZWNvbmRzVG9ET01U
aW1lU3RhbXAobW9ub3RvbmljRnJhbWVCZWdpblRpbWUgKyB0aW1lU2hpZnQpKTsKKyAgICB2aWV3
LT5zZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKICNl
bmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5k
ZXggM2EwMTk2ZTc0MWNiYjI1MDIxNzgxZDVhODE4MWNjNjM5NjA5YzE2Ny4uODU4OGE4MWE1NDM4
OWE2ZjQzMzlhNjQ3MjNkZmY0NDFiYjlhMDY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMTQzNSwxMyArMTQzNSw2IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKQogI2lm
IEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICBUUkFDRV9FVkVOVCgiV2ViVmll
d0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMiLCB0aGlzLCAwKTsKIAotICAgIFdlYkZyYW1lSW1wbCog
d2ViZnJhbWUgPSBtYWluRnJhbWVJbXBsKCk7Ci0gICAgaWYgKCF3ZWJmcmFtZSkKLSAgICAgICAg
cmV0dXJuOwotICAgIEZyYW1lVmlldyogdmlldyA9IHdlYmZyYW1lLT5mcmFtZVZpZXcoKTsKLSAg
ICBpZiAoIXZpZXcpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8vIENyZWF0ZSBzeW50aGV0aWMg
d2hlZWwgZXZlbnRzIGFzIG5lY2Vzc2FyeSBmb3IgZmxpbmcuCiAgICAgaWYgKG1fZ2VzdHVyZUFu
aW1hdGlvbikgewogICAgICAgICBpZiAobV9nZXN0dXJlQW5pbWF0aW9uLT5hbmltYXRlKG1vbm90
b25pY0ZyYW1lQmVnaW5UaW1lKSkKQEAgLTE0NTAsNiArMTQ0Myw5IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKQogICAg
ICAgICAgICAgbV9nZXN0dXJlQW5pbWF0aW9uLmNsZWFyKCk7CiAgICAgfQogCisgICAgaWYgKCFt
X3BhZ2UpCisgICAgICAgIHJldHVybjsKKwogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6YW5pbWF0
ZShtX3BhZ2UuZ2V0KCksIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158603</attachid>
            <date>2012-08-15 11:26:25 -0700</date>
            <delta_ts>2012-08-15 13:38:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84210-20120815142551.patch</filename>
            <type>text/plain</type>
            <size>19738</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM4OTU0MjM3NTQyODgw
YjNkOGMwMzNmNWNkNzljNzYwNDcxYzBhMS4uYmJkZTkwZTQ2ZTM0MTgxYTk5MGM4YTE1YmVjYWIz
Yjg1N2I4MWViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA4LTE1ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHRyYWNpbmcgZm9yIGFjdGl2ZSBjb21wb3NpdGVkIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MjEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpc3N1ZXMgdGhlIHRy
YWNlIGV2ZW50cyBmcm9tIHRoZSBjb250cm9sbGVyLiBJdCB3aWxsIHJlcG9ydAorICAgICAgICB3
aGVuIGFuaW1hdGlvbnMgc3RhcnQgYW5kIGZpbmlzaCBvbiB0aGUgbWFpbiBhbmQgaW1wbCB0aHJl
YWRzICh2aWEKKyAgICAgICAgVFJBQ0VfRVZFTlRfQVNZTkMqKSwgYW5kIGFsc28gaXNzdWUgaW5z
dGFudCB0cmFjZSBldmVudHMgd2hlbmV2ZXIKKyAgICAgICAgYWN0aXZlIGFuaW1hdGlvbnMgY2hh
bmdlIHN0YXRlLgorCisgICAgICAgIFRoaXMgd2FzIGFjY29tcGxpc2hlZCBieSByZXBsYWNpbmcg
bW9zdCBjYWxscyB0byBDQ0FjdGl2ZUFuaW1hdGlvbjo6c2V0UnVuU3RhdGUKKyAgICAgICAgdG8g
Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnNldFJ1blN0YXRlIHdoaWNoIGNhbGxzIHRoZSBm
b3JtZXIgYW5kCisgICAgICAgIGRvZXMgc29tZSB0cmFjaW5nLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgb25seSBjaGFuZ2VzIHRyYWNpbmcgYmVoYXZpb3IuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6On5DQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJv
bGxlcjo6cGF1c2VBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXI6OnJlbW92ZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlcjo6c3VzcGVuZEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlbW92ZUFuaW1hdGlvbnND
b21wbGV0ZWRPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXI6OnN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdGb3JOZXh0VGljayk6CisgICAgICAg
IChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6c3RhcnRBbmltYXRpb25zV2Fp
dGluZ0ZvclN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29u
dHJvbGxlcjo6c3RhcnRBbmltYXRpb25zV2FpdGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVzb2x2ZUNvbmZs
aWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6bWFy
a0FuaW1hdGlvbnNGb3JEZWxldGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlcjo6dGlja0FuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0VGFy
Z2V0UHJvcGVydHlOYW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0UnVuU3RhdGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyOjpzZXRSdW5TdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKENDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyQ2xpZW50KToKKyAgICAgICAgKENDTGF5ZXJBbmltYXRpb25Db250cm9s
bGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5oOgorCiAyMDEyLTA4LTE1ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtSRUdSRVNTSU9OXSAic2F2ZSBhcyIgb2YgZWRp
dGVkIHNvdXJjZSBpbiBkZXZlbG9wZXIgbW9kZSBmYWlscyB0byB1cGRhdGUgc2F2ZWQgZmlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmNDQwZjdhYTU3YzMwNjQ5NWI1YzI4ZDNlNzA3
Njk1ZWI1ZTA0OGVmLi5kYjhjODQwNzU4YTc1NjBlYmUxMzJiZDgzMWI3OTlmZTg1YTBjNDc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA4LTE1ICBJ
YW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
QWRkIHRyYWNpbmcgZm9yIGFjdGl2ZSBjb21wb3NpdGVkIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MjEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpc3N1ZXMgdGhl
IHRyYWNlIGV2ZW50cyBmcm9tIHRoZSBjb250cm9sbGVyLiBJdCB3aWxsIHJlcG9ydAorICAgICAg
ICB3aGVuIGFuaW1hdGlvbnMgc3RhcnQgYW5kIGZpbmlzaCBvbiB0aGUgbWFpbiBhbmQgaW1wbCB0
aHJlYWRzICh2aWEKKyAgICAgICAgVFJBQ0VfRVZFTlRfQVNZTkMqKSwgYW5kIGFsc28gaXNzdWVz
IGluc3RhbnQgdHJhY2UgZXZlbnRzIHdoZW5ldmVyIGFuCisgICAgICAgIGFjdGl2ZSBhbmltYXRp
b24gY2hhbmdlcyBzdGF0ZS4KKworICAgICAgICBUbyBkbyB0aGlzIHRyYWNpbmcsIHRoZSBhbmlt
YXRpb24gY29udHJvbGxlciBuZWVkcyB0byBrbm93IGlmIGl0IGlzCisgICAgICAgIG9wZXJhdGlu
ZyBvbiBhbiAnaW1wbCcgY2xpZW50ICh0aGF0IGlzLCBhIENDTGF5ZXJJbXBsKSwgb3IgYSBtYWlu
CisgICAgICAgIHRocmVhZCBjbGllbnQuIFRoaXMgd2FzIGRvbmUgYnkgYWRkaW5nIGFuIGlzSW1w
bCBtZXRob2QgdG8gdGhlCisgICAgICAgIENDTGF5ZXJBbmltYXRpb25EZWxlZ2F0ZSBpbnRlcmZh
Y2UuIFRoZSB0ZXN0IGltcGxlbWVudGlvbiBvZiB0aGlzCisgICAgICAgIGludGVyZmFjZSBuZWVk
ZWQgdG8gYmUgdXBkYXRlZC4KKworICAgICAgICAqIHRlc3RzL0NDQW5pbWF0aW9uVGVzdENvbW1v
bi5oOgorCiAyMDEyLTA4LTE1ICBQZXRlciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbQ2hyb21pdW1dIFJvbGwgV2ViS2l0IENocm9taXVtIERFUFMgdG8gcjE1MTY3
MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDI5ZTM4N2U1MzJiZmI3NmZiMTZjOTMyY2YyNTQ1NTlh
YjQ0OTIyNWYuLmM3MzgzYWJmYTU0NzcyMTk5OTAzNTFhMjA4OWRjNWU2MDFiZGRlMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hy
b21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmgKQEAgLTk0LDYgKzk0LDcgQEAgcHVibGljOgogICAgIC8vIG5vbi1wYWdl
LXNjYWxlZCBwaXhlbHMgKHRoYXQgaXMsIHRoZXkgaGF2ZSBwYWdlIHpvb20gYmFrZWQgaW4sIGJ1
dCBub3QgcGFnZSBzY2FsZSkuCiAgICAgLy8gVGhlIHJvb3QgbGF5ZXIgaXMgYSBzcGVjaWFsIGNh
c2UgLS0gaXQgb3BlcmF0ZXMgaW4gcGh5c2ljYWwgcGl4ZWxzLgogICAgIHZpcnR1YWwgY29uc3Qg
V2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNJbXBsKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGNvbnN0IExheWVyQ2hyb21pdW0q
IHJvb3RMYXllcigpIGNvbnN0OwogICAgIExheWVyQ2hyb21pdW0qIHBhcmVudCgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4
IGJkM2U2ZTYwYzYxYWViN2MxZjJiMThhYWM4MTk4YTlmY2IwYTEzNjcuLjFmYTQxOWQ0ZjNmNjQ1
MGVkYmE3OGRjY2Y4OWZkNGJlMDJhZTk2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUg
ImNjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmgiCiAKKyNpbmNsdWRlICJUcmFjZUV2ZW50
LmgiCiAjaW5jbHVkZSAiY2MvQ0NBY3RpdmVBbmltYXRpb24uaCIKICNpbmNsdWRlICJjYy9DQ0tl
eWZyYW1lZEFuaW1hdGlvbkN1cnZlLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYlRyYW5zZm9ybWF0
aW9uTWF0cml4Lmg+CkBAIC00NCw2ICs0NSw5IEBAIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVy
OjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcihDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlCiAK
IENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjp+Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIo
KQogeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUo
KTsgKytpKQorICAgICAgICBpZiAoIW1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+aXNGaW5pc2hlZCgp
KQorICAgICAgICAgICAgc2V0UnVuU3RhdGUobV9hY3RpdmVBbmltYXRpb25zW2ldLmdldCgpLCBD
Q0FjdGl2ZUFuaW1hdGlvbjo6QWJvcnRlZCwgMCk7CiB9CiAKIFBhc3NPd25QdHI8Q0NMYXllckFu
aW1hdGlvbkNvbnRyb2xsZXI+IENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpjcmVhdGUoQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXJDbGllbnQqIGNsaWVudCkKQEAgLTU1LDE2ICs1OSwxNyBA
QCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwYXVzZUFuaW1hdGlvbihpbnQgYW5p
bWF0aW9uSWQsIGRvdWJsZSB0aW1lT2ZmcwogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmIChtX2FjdGl2ZUFu
aW1hdGlvbnNbaV0tPmlkKCkgPT0gYW5pbWF0aW9uSWQpCi0gICAgICAgICAgICBtX2FjdGl2ZUFu
aW1hdGlvbnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpQYXVzZWQsIHRpbWVP
ZmZzZXQgKyBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnN0YXJ0VGltZSgpKTsKKyAgICAgICAgICAg
IHNldFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRp
b246OlBhdXNlZCwgdGltZU9mZnNldCArIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+c3RhcnRUaW1l
KCkpOwogICAgIH0KIH0KIAogdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3Zl
QW5pbWF0aW9uKGludCBhbmltYXRpb25JZCkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7KSB7Ci0gICAgICAgIGlmIChtX2FjdGl2ZUFuaW1h
dGlvbnNbaV0tPmlkKCkgPT0gYW5pbWF0aW9uSWQpCisgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1h
dGlvbnNbaV0tPmlkKCkgPT0gYW5pbWF0aW9uSWQpIHsKKyAgICAgICAgICAgIHNldFJ1blN0YXRl
KG1fYWN0aXZlQW5pbWF0aW9uc1tpXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRpb246OkZpbmlzaGVk
LCAwKTsKICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0aW9ucy5yZW1vdmUoaSk7Ci0gICAgICAg
IGVsc2UKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBpKys7CiAgICAgfQogfQpAQCAtNzIs
OSArNzcsMTAgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5pbWF0
aW9uKGludCBhbmltYXRpb25JZCkKIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJl
bW92ZUFuaW1hdGlvbihpbnQgYW5pbWF0aW9uSWQsIENDQWN0aXZlQW5pbWF0aW9uOjpUYXJnZXRQ
cm9wZXJ0eSB0YXJnZXRQcm9wZXJ0eSkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
YWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7KSB7Ci0gICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlv
bnNbaV0tPmlkKCkgPT0gYW5pbWF0aW9uSWQgJiYgbV9hY3RpdmVBbmltYXRpb25zW2ldLT50YXJn
ZXRQcm9wZXJ0eSgpID09IHRhcmdldFByb3BlcnR5KQorICAgICAgICBpZiAobV9hY3RpdmVBbmlt
YXRpb25zW2ldLT5pZCgpID09IGFuaW1hdGlvbklkICYmIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+
dGFyZ2V0UHJvcGVydHkoKSA9PSB0YXJnZXRQcm9wZXJ0eSkgeworICAgICAgICAgICAgc2V0UnVu
U3RhdGUobV9hY3RpdmVBbmltYXRpb25zW2ldLmdldCgpLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6Rmlu
aXNoZWQsIDApOwogICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25zLnJlbW92ZShpKTsKLSAg
ICAgICAgZWxzZQorICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGkrKzsKICAgICB9CiB9CkBA
IC04NCw3ICs5MCw3IEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnN1c3BlbmRB
bmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNUaW1lKQogewogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmICghbV9h
Y3RpdmVBbmltYXRpb25zW2ldLT5pc0ZpbmlzaGVkKCkpCi0gICAgICAgICAgICBtX2FjdGl2ZUFu
aW1hdGlvbnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpQYXVzZWQsIG1vbm90
b25pY1RpbWUpOworICAgICAgICAgICAgc2V0UnVuU3RhdGUobV9hY3RpdmVBbmltYXRpb25zW2ld
LmdldCgpLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCBtb25vdG9uaWNUaW1lKTsKICAgICB9
CiB9CiAKQEAgLTkzLDcgKzk5LDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6
cmVzdW1lQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSkKIHsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7ICsraSkgewogICAgICAgICBp
ZiAobV9hY3RpdmVBbmltYXRpb25zW2ldLT5ydW5TdGF0ZSgpID09IENDQWN0aXZlQW5pbWF0aW9u
OjpQYXVzZWQpCi0gICAgICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnNldFJ1blN0YXRl
KENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nLCBtb25vdG9uaWNUaW1lKTsKKyAgICAgICAgICAg
IHNldFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRp
b246OlJ1bm5pbmcsIG1vbm90b25pY1RpbWUpOwogICAgIH0KIH0KIApAQCAtMjE2LDkgKzIyMiwx
MCBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVBbmltYXRpb25zQ29t
cGxldGVkT25NYWluVGhyZWFkKENDTGF5ZXJBbgogICAgIC8vIGd1YXJhbnRlZWluZyBwcm9ncmVz
cyB0b3dhcmRzIGxvb3AgdGVybWluYXRpb24uCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBj
b250cm9sbGVySW1wbC0+bV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTspIHsKICAgICAgICAgQ0NB
Y3RpdmVBbmltYXRpb24qIGN1cnJlbnQgPSBnZXRBY3RpdmVBbmltYXRpb24oY29udHJvbGxlcklt
cGwtPm1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+Z3JvdXAoKSwgY29udHJvbGxlckltcGwtPm1fYWN0
aXZlQW5pbWF0aW9uc1tpXS0+dGFyZ2V0UHJvcGVydHkoKSk7Ci0gICAgICAgIGlmICghY3VycmVu
dCkKKyAgICAgICAgaWYgKCFjdXJyZW50KSB7CisgICAgICAgICAgICBzZXRSdW5TdGF0ZShjb250
cm9sbGVySW1wbC0+bV9hY3RpdmVBbmltYXRpb25zW2ldLmdldCgpLCBDQ0FjdGl2ZUFuaW1hdGlv
bjo6RmluaXNoZWQsIDApOwogICAgICAgICAgICAgY29udHJvbGxlckltcGwtPm1fYWN0aXZlQW5p
bWF0aW9ucy5yZW1vdmUoaSk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBpKys7CiAgICAgfQogfQpAQCAtMjM2LDcgKzI0Myw3IEBAIHZvaWQgQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXI6OnN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdGb3JOZXh0VGljayhkb3VibGUg
bW9ub3RvCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMu
c2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+cnVuU3Rh
dGUoKSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0Zvck5leHRUaWNrKSB7Ci0gICAgICAg
ICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9u
OjpSdW5uaW5nLCBtb25vdG9uaWNUaW1lKTsKKyAgICAgICAgICAgIHNldFJ1blN0YXRlKG1fYWN0
aXZlQW5pbWF0aW9uc1tpXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcsIG1vbm90
b25pY1RpbWUpOwogICAgICAgICAgICAgaWYgKCFtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmhhc1Nl
dFN0YXJ0VGltZSgpKQogICAgICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+c2V0
U3RhcnRUaW1lKG1vbm90b25pY1RpbWUpOwogICAgICAgICAgICAgaWYgKGV2ZW50cykKQEAgLTI0
OSw3ICsyNTYsNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpzdGFydEFuaW1h
dGlvbnNXYWl0aW5nRm9yU3RhcnRUaW1lKGRvdWJsZSBtb25vdAogewogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlm
IChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnJ1blN0YXRlKCkgPT0gQ0NBY3RpdmVBbmltYXRpb246
OldhaXRpbmdGb3JTdGFydFRpbWUgJiYgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5zdGFydFRpbWUo
KSA8PSBtb25vdG9uaWNUaW1lKSB7Ci0gICAgICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0t
PnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nLCBtb25vdG9uaWNUaW1lKTsK
KyAgICAgICAgICAgIHNldFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS5nZXQoKSwgQ0NB
Y3RpdmVBbmltYXRpb246OlJ1bm5pbmcsIG1vbm90b25pY1RpbWUpOwogICAgICAgICAgICAgaWYg
KGV2ZW50cykKICAgICAgICAgICAgICAgICBldmVudHMtPmFwcGVuZChDQ0FuaW1hdGlvbkV2ZW50
KENDQW5pbWF0aW9uRXZlbnQ6OlN0YXJ0ZWQsIG1fY2xpZW50LT5pZCgpLCBtX2FjdGl2ZUFuaW1h
dGlvbnNbaV0tPmdyb3VwKCksIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+dGFyZ2V0UHJvcGVydHko
KSwgbW9ub3RvbmljVGltZSkpOwogICAgICAgICB9CkBAIC0yODYsMTQgKzI5MywxNCBAQCB2b2lk
IENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpzdGFydEFuaW1hdGlvbnNXYWl0aW5nRm9yVGFy
Z2V0QXZhaWxhYmlsaXR5KGRvdQogCiAgICAgICAgICAgICAvLyBJZiB0aGUgaW50ZXJzZWN0aW9u
IGlzIG51bGwsIHRoZW4gd2UgYXJlIGZyZWUgdG8gc3RhcnQgdGhlIGFuaW1hdGlvbnMgaW4gdGhl
IGdyb3VwLgogICAgICAgICAgICAgaWYgKG51bGxJbnRlcnNlY3Rpb24pIHsKLSAgICAgICAgICAg
ICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9u
OjpSdW5uaW5nLCBtb25vdG9uaWNUaW1lKTsKKyAgICAgICAgICAgICAgICBzZXRSdW5TdGF0ZSht
X2FjdGl2ZUFuaW1hdGlvbnNbaV0uZ2V0KCksIENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nLCBt
b25vdG9uaWNUaW1lKTsKICAgICAgICAgICAgICAgICBpZiAoIW1fYWN0aXZlQW5pbWF0aW9uc1tp
XS0+aGFzU2V0U3RhcnRUaW1lKCkpCiAgICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0
aW9uc1tpXS0+c2V0U3RhcnRUaW1lKG1vbm90b25pY1RpbWUpOwogICAgICAgICAgICAgICAgIGlm
IChldmVudHMpCiAgICAgICAgICAgICAgICAgICAgIGV2ZW50cy0+YXBwZW5kKENDQW5pbWF0aW9u
RXZlbnQoQ0NBbmltYXRpb25FdmVudDo6U3RhcnRlZCwgbV9jbGllbnQtPmlkKCksIG1fYWN0aXZl
QW5pbWF0aW9uc1tpXS0+Z3JvdXAoKSwgbV9hY3RpdmVBbmltYXRpb25zW2ldLT50YXJnZXRQcm9w
ZXJ0eSgpLCBtb25vdG9uaWNUaW1lKSk7CiAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9
IGkgKyAxOyBqIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytqKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmdyb3VwKCkgPT0gbV9hY3RpdmVB
bmltYXRpb25zW2pdLT5ncm91cCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtX2FjdGl2
ZUFuaW1hdGlvbnNbal0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nLCBt
b25vdG9uaWNUaW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldFJ1blN0YXRlKG1fYWN0
aXZlQW5pbWF0aW9uc1tqXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcsIG1vbm90
b25pY1RpbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtX2FjdGl2ZUFuaW1hdGlv
bnNbal0tPmhhc1NldFN0YXJ0VGltZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
YWN0aXZlQW5pbWF0aW9uc1tqXS0+c2V0U3RhcnRUaW1lKG1vbm90b25pY1RpbWUpOwogICAgICAg
ICAgICAgICAgICAgICB9CkBAIC0zMTUsMTYgKzMyMiwxNSBAQCB2b2lkIENDTGF5ZXJBbmltYXRp
b25Db250cm9sbGVyOjpyZXNvbHZlQ29uZmxpY3RzKGRvdWJsZSBtb25vdG9uaWNUaW1lKQogICAg
ICAgICAgICAgZm9yIChzaXplX3QgaiA9IGkgKyAxOyBqIDwgbV9hY3RpdmVBbmltYXRpb25zLnNp
emUoKTsgKytqKSB7CiAgICAgICAgICAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tqXS0+
cnVuU3RhdGUoKSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZyAmJiBtX2FjdGl2ZUFuaW1h
dGlvbnNbaV0tPnRhcmdldFByb3BlcnR5KCkgPT0gbV9hY3RpdmVBbmltYXRpb25zW2pdLT50YXJn
ZXRQcm9wZXJ0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlv
bnNbaV0tPnN0YXJ0VGltZSgpID4gbV9hY3RpdmVBbmltYXRpb25zW2pdLT5zdGFydFRpbWUoKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0aW9uc1tqXS0+c2V0UnVuU3Rh
dGUoQ0NBY3RpdmVBbmltYXRpb246OkFib3J0ZWQsIG1vbm90b25pY1RpbWUpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0UnVuU3RhdGUobV9hY3RpdmVBbmltYXRpb25zW2pdLmdldCgpLCBD
Q0FjdGl2ZUFuaW1hdGlvbjo6QWJvcnRlZCwgbW9ub3RvbmljVGltZSk7CiAgICAgICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0aW9uc1tp
XS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OkFib3J0ZWQsIG1vbm90b25pY1RpbWUp
OworICAgICAgICAgICAgICAgICAgICAgICAgc2V0UnVuU3RhdGUobV9hY3RpdmVBbmltYXRpb25z
W2ldLmdldCgpLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6QWJvcnRlZCwgbW9ub3RvbmljVGltZSk7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQogCi0K
IHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6Om1hcmtBbmltYXRpb25zRm9yRGVsZXRp
b24oZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZlbnRzVmVjdG9yKiBldmVudHMp
CiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgp
OyBpKyspIHsKQEAgLTM0OCw3ICszNTQsNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9s
bGVyOjptYXJrQW5pbWF0aW9uc0ZvckRlbGV0aW9uKGRvdWJsZSBtb25vdG9uaWNUaW1lLAogICAg
ICAgICAgICAgICAgIGlmIChncm91cElkID09IG1fYWN0aXZlQW5pbWF0aW9uc1tqXS0+Z3JvdXAo
KSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnRzKQogICAgICAgICAgICAgICAgICAg
ICAgICAgZXZlbnRzLT5hcHBlbmQoQ0NBbmltYXRpb25FdmVudChDQ0FuaW1hdGlvbkV2ZW50OjpG
aW5pc2hlZCwgbV9jbGllbnQtPmlkKCksIG1fYWN0aXZlQW5pbWF0aW9uc1tqXS0+Z3JvdXAoKSwg
bV9hY3RpdmVBbmltYXRpb25zW2pdLT50YXJnZXRQcm9wZXJ0eSgpLCBtb25vdG9uaWNUaW1lKSk7
Ci0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0aW9uc1tqXS0+c2V0UnVuU3RhdGUo
Q0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JEZWxldGlvbiwgbW9ub3RvbmljVGltZSk7Cisg
ICAgICAgICAgICAgICAgICAgIHNldFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tqXS5nZXQo
KSwgQ0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JEZWxldGlvbiwgbW9ub3RvbmljVGltZSk7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0zOTcsNyAr
NDAzLDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6dGlja0FuaW1hdGlvbnMo
ZG91YmxlIG1vbm90b25pY1RpbWUpCiAgICAgICAgICAgICAgICAgY29uc3QgQ0NUcmFuc2Zvcm1B
bmltYXRpb25DdXJ2ZSogdHJhbnNmb3JtQW5pbWF0aW9uQ3VydmUgPSBtX2FjdGl2ZUFuaW1hdGlv
bnNbaV0tPmN1cnZlKCktPnRvVHJhbnNmb3JtQW5pbWF0aW9uQ3VydmUoKTsKICAgICAgICAgICAg
ICAgICBjb25zdCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXRyaXggPSB0cmFuc2Zvcm1Bbmlt
YXRpb25DdXJ2ZS0+Z2V0VmFsdWUodHJpbW1lZCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fYWN0
aXZlQW5pbWF0aW9uc1tpXS0+aXNGaW5pc2hlZEF0KG1vbm90b25pY1RpbWUpKQotICAgICAgICAg
ICAgICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5p
bWF0aW9uOjpGaW5pc2hlZCwgbW9ub3RvbmljVGltZSk7CisgICAgICAgICAgICAgICAgICAgIHNl
dFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRpb246
OkZpbmlzaGVkLCBtb25vdG9uaWNUaW1lKTsKIAogICAgICAgICAgICAgICAgIG1fY2xpZW50LT5z
ZXRUcmFuc2Zvcm1Gcm9tQW5pbWF0aW9uKG1hdHJpeCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC00MDcsNyArNDEzLDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6dGlj
a0FuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpCiAgICAgICAgICAgICAgICAgY29uc3Qg
Q0NGbG9hdEFuaW1hdGlvbkN1cnZlKiBmbG9hdEFuaW1hdGlvbkN1cnZlID0gbV9hY3RpdmVBbmlt
YXRpb25zW2ldLT5jdXJ2ZSgpLT50b0Zsb2F0QW5pbWF0aW9uQ3VydmUoKTsKICAgICAgICAgICAg
ICAgICBjb25zdCBmbG9hdCBvcGFjaXR5ID0gZmxvYXRBbmltYXRpb25DdXJ2ZS0+Z2V0VmFsdWUo
dHJpbW1lZCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+aXNG
aW5pc2hlZEF0KG1vbm90b25pY1RpbWUpKQotICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZUFu
aW1hdGlvbnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpGaW5pc2hlZCwgbW9u
b3RvbmljVGltZSk7CisgICAgICAgICAgICAgICAgICAgIHNldFJ1blN0YXRlKG1fYWN0aXZlQW5p
bWF0aW9uc1tpXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRpb246OkZpbmlzaGVkLCBtb25vdG9uaWNU
aW1lKTsKIAogICAgICAgICAgICAgICAgIG1fY2xpZW50LT5zZXRPcGFjaXR5RnJvbUFuaW1hdGlv
bihvcGFjaXR5KTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTQxOCw0ICs0MjQsNjQgQEAg
dm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6dGlja0FuaW1hdGlvbnMoZG91YmxlIG1v
bm90b25pY1RpbWUpCiAgICAgfQogfQogCitjb25zdCBjaGFyICogZ2V0VGFyZ2V0UHJvcGVydHlO
YW1lKENDQWN0aXZlQW5pbWF0aW9uOjpUYXJnZXRQcm9wZXJ0eSB0YXJnZXRQcm9wZXJ0eSkKK3sK
KyAgICBzd2l0Y2ggKHRhcmdldFByb3BlcnR5KSB7CisgICAgY2FzZSBDQ0FjdGl2ZUFuaW1hdGlv
bjo6T3BhY2l0eToKKyAgICAgICAgcmV0dXJuICJPcGFjaXR5IjsKKyAgICBjYXNlIENDQWN0aXZl
QW5pbWF0aW9uOjpUcmFuc2Zvcm06CisgICAgICAgIHJldHVybiAiVHJhbnNmb3JtIjsKKyAgICB9
Cit9CisKK2NvbnN0IGNoYXIgKiBnZXRSdW5TdGF0ZU5hbWUoQ0NBY3RpdmVBbmltYXRpb246OlJ1
blN0YXRlIHJ1blN0YXRlKQoreworICAgIHN3aXRjaCAocnVuU3RhdGUpIHsKKyAgICBjYXNlIEND
QWN0aXZlQW5pbWF0aW9uOjpXYWl0aW5nRm9yTmV4dFRpY2s6CisgICAgICAgIHJldHVybiAiV2Fp
dGluZ0Zvck5leHRUaWNrIjsKKyAgICBjYXNlIENDQWN0aXZlQW5pbWF0aW9uOjpXYWl0aW5nRm9y
VGFyZ2V0QXZhaWxhYmlsaXR5OgorICAgICAgICByZXR1cm4gIldhaXRpbmdGb3JUYXJnZXRBdmFp
bGFiaWxpdHkiOworICAgIGNhc2UgQ0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JTdGFydFRp
bWU6CisgICAgICAgIHJldHVybiAiV2FpdGluZ0ZvclN0YXJ0VGltZSI7CisgICAgY2FzZSBDQ0Fj
dGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvckRlbGV0aW9uOgorICAgICAgICByZXR1cm4gIldhaXRp
bmdGb3JEZWxldGlvbiI7CisgICAgY2FzZSBDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZzoKKyAg
ICAgICAgcmV0dXJuICJSdW5uaW5nIjsKKyAgICBjYXNlIENDQWN0aXZlQW5pbWF0aW9uOjpQYXVz
ZWQ6CisgICAgICAgIHJldHVybiAiUGF1c2VkIjsKKyAgICBjYXNlIENDQWN0aXZlQW5pbWF0aW9u
OjpGaW5pc2hlZDoKKyAgICAgICAgcmV0dXJuICJGaW5pc2hlZCI7CisgICAgY2FzZSBDQ0FjdGl2
ZUFuaW1hdGlvbjo6QWJvcnRlZDoKKyAgICAgICAgcmV0dXJuICJBYm9ydGVkIjsKKyAgICB9Owor
fQorCit2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpzZXRSdW5TdGF0ZShDQ0FjdGl2
ZUFuaW1hdGlvbiogYW5pbWF0aW9uLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVuU3RhdGUgcnVuU3Rh
dGUsIGRvdWJsZSBtb25vdG9uaWNUaW1lKSBjb25zdAoreworICAgIGNoYXIgbmFtZUJ1ZmZlclsy
NTZdOworICAgIHNwcmludGYobmFtZUJ1ZmZlciwgIiVzLSVkJXMiLCBnZXRUYXJnZXRQcm9wZXJ0
eU5hbWUoYW5pbWF0aW9uLT50YXJnZXRQcm9wZXJ0eSgpKSwgYW5pbWF0aW9uLT5ncm91cCgpLCBt
X2NsaWVudC0+aXNJbXBsKCkgPyAiKGltcGwpIiA6ICIiKTsKKworICAgIGJvb2wgaXNXYWl0aW5n
VG9TdGFydCA9IGFuaW1hdGlvbi0+cnVuU3RhdGUoKSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6V2Fp
dGluZ0Zvck5leHRUaWNrCisgICAgICAgIHx8IGFuaW1hdGlvbi0+cnVuU3RhdGUoKSA9PSBDQ0Fj
dGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0eQorICAgICAgICB8fCBh
bmltYXRpb24tPnJ1blN0YXRlKCkgPT0gQ0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JTdGFy
dFRpbWU7CisKKyAgICBpZiAoaXNXYWl0aW5nVG9TdGFydCAmJiBydW5TdGF0ZSA9PSBDQ0FjdGl2
ZUFuaW1hdGlvbjo6UnVubmluZykKKyAgICAgICAgVFJBQ0VfRVZFTlRfQVNZTkNfQkVHSU4xKCJj
YyIsICJDQ0FjdGl2ZUFuaW1hdGlvbiIsIGFuaW1hdGlvbiwgIk5hbWUiLCBUUkFDRV9TVFJfQ09Q
WShuYW1lQnVmZmVyKSk7CisKKyAgICBib29sIHdhc0ZpbmlzaGVkID0gYW5pbWF0aW9uLT5pc0Zp
bmlzaGVkKCk7CisKKyAgICBjb25zdCBjaGFyICpvbGRSdW5TdGF0ZU5hbWUgPSBnZXRSdW5TdGF0
ZU5hbWUoYW5pbWF0aW9uLT5ydW5TdGF0ZSgpKTsKKyAgICBhbmltYXRpb24tPnNldFJ1blN0YXRl
KHJ1blN0YXRlLCBtb25vdG9uaWNUaW1lKTsKKyAgICBjb25zdCBjaGFyICpuZXdSdW5TdGF0ZU5h
bWUgPSBnZXRSdW5TdGF0ZU5hbWUocnVuU3RhdGUpOworCisgICAgaWYgKCF3YXNGaW5pc2hlZCAm
JiBhbmltYXRpb24tPmlzRmluaXNoZWQoKSkKKyAgICAgICAgVFJBQ0VfRVZFTlRfQVNZTkNfRU5E
MCgiY2MiLCAiQ0NBY3RpdmVBbmltYXRpb24iLCBhbmltYXRpb24pOworCisgICAgY2hhciBzdGF0
ZUJ1ZmZlclsyNTZdOworICAgIHNwcmludGYoc3RhdGVCdWZmZXIsICIlcy0+JXMiLCBvbGRSdW5T
dGF0ZU5hbWUsIG5ld1J1blN0YXRlTmFtZSk7CisKKyAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMigi
Y2MiLCAiQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnNldFJ1blN0YXRlIiwgIk5hbWUiLCBU
UkFDRV9TVFJfQ09QWShuYW1lQnVmZmVyKSwgIlN0YXRlIiwgVFJBQ0VfU1RSX0NPUFkoc3RhdGVC
dWZmZXIpKTsKKworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9u
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaAppbmRleCBjNmViYmUyOGJmOWM2ZWZhNWNm
MDMyZWVjNjdkNjBmOWYyMzA0MDkzLi44NTFhNDIwMTNjYjkxYzE0YzUzYTYwMDk3YWU4Y2UyN2Yy
NTRjNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVy
LmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZmxvYXQgb3BhY2l0eSgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhbnNmb3JtRnJvbUFuaW1hdGlvbihj
b25zdCBXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4JikgPSAwOwogICAgIHZpcnR1YWwg
Y29uc3QgV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0ltcGwoKSBjb25zdCA9IDA7CiB9OwogCiBjbGFzcyBD
Q0xheWVyQW5pbWF0aW9uQ29udHJvbGxlciB7CkBAIC0xMjAsNiArMTIxLDggQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgdGlja0FuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpOwogCisgICAg
dm9pZCBzZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbiosIENDQWN0aXZlQW5pbWF0aW9uOjpS
dW5TdGF0ZSwgZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0OworCiAgICAgLy8gSWYgdGhpcyBp
cyB0cnVlLCB3ZSBmb3JjZSBhIHN5bmMgdG8gdGhlIGltcGwgdGhyZWFkLgogICAgIGJvb2wgbV9m
b3JjZVN5bmM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCmluZGV4IGZmMDg5YjUzNzdhOGQyOWY0Nzll
ZWUwNjZjNjEzMjg3MDJiNjcwM2EuLjFjYmU4NWQ2MGVhZGJiYjFiYTllZWY5YWM0MjM5ZDE4OGFm
MTAyNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaApAQCAtNjgsNiArNjgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBmbG9hdCBvcGFjaXR5KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9vcGFj
aXR5OyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFRyYW5zZm9ybUZyb21BbmltYXRpb24oY29uc3Qg
V2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNJbXBs
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgLy8gVHJlZSBzdHJ1Y3R1
cmUuCiAgICAgQ0NMYXllckltcGwqIHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDQW5pbWF0aW9uVGVz
dENvbW1vbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0FuaW1hdGlvblRlc3RD
b21tb24uaAppbmRleCA0YmJkNjAxMTIyMmExMzM5OTQ3MjE4YzdiM2I3Zjc0NjQ3Y2ZlYjUxLi4z
ZjA3OTgyMTNjY2E2ODM1NWZlNzA0YzE3YTE4ZjJhYmE2ZmZjZTE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDQW5pbWF0aW9uVGVzdENvbW1vbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NBbmltYXRpb25UZXN0Q29tbW9uLmgKQEAgLTg5
LDYgKzg5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZmxvYXQgb3BhY2l0eSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIG1fb3BhY2l0eTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFuc2Zv
cm1Gcm9tQW5pbWF0aW9uKGNvbnN0IFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRy
YW5zZm9ybSkgT1ZFUlJJREUgeyBtX3RyYW5zZm9ybSA9IHRyYW5zZm9ybTsgfQogICAgIHZpcnR1
YWwgY29uc3QgV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNJ
bXBsKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KIAogcHJpdmF0ZToKICAgICBm
bG9hdCBtX29wYWNpdHk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158628</attachid>
            <date>2012-08-15 13:38:45 -0700</date>
            <delta_ts>2012-08-16 09:03:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84210-20120815163811.patch</filename>
            <type>text/plain</type>
            <size>21265</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM4OTU0MjM3NTQyODgw
YjNkOGMwMzNmNWNkNzljNzYwNDcxYzBhMS4uYWE3NTE4NTE0YmM1NTAyNDczMTI2N2Q3M2UyYzg5
MTdkMGM1M2Y2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA4LTE1ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHRyYWNpbmcgZm9yIGFjdGl2ZSBjb21wb3NpdGVkIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MjEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpc3N1ZXMgdGhlIHRy
YWNlIGV2ZW50cyBmcm9tIHRoZSBjb250cm9sbGVyLiBJdCB3aWxsIHJlcG9ydAorICAgICAgICB3
aGVuIGFuaW1hdGlvbnMgc3RhcnQgYW5kIGZpbmlzaCBvbiB0aGUgbWFpbiBhbmQgaW1wbCB0aHJl
YWRzICh2aWEKKyAgICAgICAgVFJBQ0VfRVZFTlRfQVNZTkMqKSwgYW5kIGFsc28gaXNzdWUgaW5z
dGFudCB0cmFjZSBldmVudHMgd2hlbmV2ZXIKKyAgICAgICAgYWN0aXZlIGFuaW1hdGlvbnMgY2hh
bmdlIHN0YXRlLgorCisgICAgICAgIFRoaXMgd2FzIGFjY29tcGxpc2hlZCBieSByZXBsYWNpbmcg
bW9zdCBjYWxscyB0byBDQ0FjdGl2ZUFuaW1hdGlvbjo6c2V0UnVuU3RhdGUKKyAgICAgICAgdG8g
Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnNldFJ1blN0YXRlIHdoaWNoIGNhbGxzIHRoZSBm
b3JtZXIgYW5kCisgICAgICAgIGRvZXMgc29tZSB0cmFjaW5nLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgb25seSBjaGFuZ2VzIHRyYWNpbmcgYmVoYXZpb3IuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6Q0NBY3RpdmVBbmltYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb246OmNsb25lKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb246OmNsb25lRm9ySW1wbFRocmVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRp
b24uaDoKKyAgICAgICAgKENDQWN0aXZlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkND
QWN0aXZlQW5pbWF0aW9uOjppc0NvbnRyb2xsaW5nSW5zdGFuY2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjp+Q0NMYXllckFu
aW1hdGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNv
bnRyb2xsZXI6OnBhdXNlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpyZW1vdmVBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVBbmltYXRp
b25zQ29tcGxldGVkT25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpzdGFydEFuaW1hdGlvbnNXYWl0aW5nRm9yTmV4dFRpY2spOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnN0YXJ0QW5pbWF0aW9u
c1dhaXRpbmdGb3JTdGFydFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXI6OnN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHkp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlc29sdmVD
b25mbGljdHMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6
Om1hcmtBbmltYXRpb25zRm9yRGVsZXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFu
aW1hdGlvbkNvbnRyb2xsZXI6OnRpY2tBbmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Omdl
dFRhcmdldFByb3BlcnR5TmFtZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OmdldFJ1blN0YXRlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9u
Q29udHJvbGxlcjo6c2V0UnVuU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmg6CisgICAgICAgIChDQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlcik6CisKIDIwMTItMDgtMTUgIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW1JFR1JFU1NJT05d
ICJzYXZlIGFzIiBvZiBlZGl0ZWQgc291cmNlIGluIGRldmVsb3BlciBtb2RlIGZhaWxzIHRvIHVw
ZGF0ZSBzYXZlZCBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGY0NDBmN2FhNTdj
MzA2NDk1YjVjMjhkM2U3MDc2OTVlYjVlMDQ4ZWYuLmY5YzgyNzlkM2IyYmZkOWNkNzg4NWQ2ZDc1
OTlmYWZmNmZmN2FiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTItMDgtMTUgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW2Nocm9taXVtXSBBZGQgdHJhY2luZyBmb3IgYWN0aXZlIGNvbXBvc2l0ZWQgYW5pbWF0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQy
MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGlzc3VlcyB0aGUgdHJhY2UgZXZlbnRzIGZyb20gdGhlIGNvbnRyb2xsZXIuIEl0IHdp
bGwgcmVwb3J0CisgICAgICAgIHdoZW4gYW5pbWF0aW9ucyBzdGFydCBhbmQgZmluaXNoIG9uIHRo
ZSBtYWluIGFuZCBpbXBsIHRocmVhZHMgKHZpYQorICAgICAgICBUUkFDRV9FVkVOVF9BU1lOQyop
LCBhbmQgYWxzbyBpc3N1ZXMgaW5zdGFudCB0cmFjZSBldmVudHMgd2hlbmV2ZXIgYW4KKyAgICAg
ICAgYWN0aXZlIGFuaW1hdGlvbiBjaGFuZ2VzIHN0YXRlLgorCisgICAgICAgICogc3JjL1dlYkFu
aW1hdGlvbkltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBbmltYXRpb25JbXBsOjpjbG9u
ZVRvQ0NBbmltYXRpb24pOgorCiAyMDEyLTA4LTE1ICBQZXRlciBCZXZlcmxvbyAgPHBldGVyQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFJvbGwgV2ViS2l0IENocm9taXVtIERF
UFMgdG8gcjE1MTY3MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCmluZGV4IGZm
NmU3MzM5OGY3N2JjMzdkYTZmOTEwZDc1MTI2Nzc1OWE4MDI1NmUuLjNmYzIxYzhjNzA3OTZhMjQ2
NzkyZTYwYjQ1N2FjNWViZDM4ZGM5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlv
bi5jcHAKQEAgLTUxLDYgKzUxLDcgQEAgQ0NBY3RpdmVBbmltYXRpb246OkNDQWN0aXZlQW5pbWF0
aW9uKFBhc3NPd25QdHI8Q0NBbmltYXRpb25DdXJ2ZT4gY3VydmUsIGludCBhbmkKICAgICAsIG1f
c3VzcGVuZGVkKGZhbHNlKQogICAgICwgbV9wYXVzZVRpbWUoMCkKICAgICAsIG1fdG90YWxQYXVz
ZWRUaW1lKDApCisgICAgLCBtX2lzQ29udHJvbGxpbmdJbnN0YW5jZShmYWxzZSkKIHsKIH0KIApA
QCAtMTM5LDggKzE0MCwyMCBAQCBkb3VibGUgQ0NBY3RpdmVBbmltYXRpb246OnRyaW1UaW1lVG9D
dXJyZW50SXRlcmF0aW9uKGRvdWJsZSBtb25vdG9uaWNUaW1lKSBjb25zdAogICAgIHJldHVybiB0
cmltbWVkOwogfQogCitQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1h
dGlvbjo6Y2xvbmUoKSBjb25zdAoreworICAgIGJvb2wgZm9ySW1wbFRocmVhZCA9IGZhbHNlOwor
ICAgIHJldHVybiBjbG9uZShmb3JJbXBsVGhyZWFkKTsKK30KKwogUGFzc093blB0cjxDQ0FjdGl2
ZUFuaW1hdGlvbj4gQ0NBY3RpdmVBbmltYXRpb246OmNsb25lRm9ySW1wbFRocmVhZCgpIGNvbnN0
CiB7CisgICAgYm9vbCBmb3JJbXBsVGhyZWFkID0gdHJ1ZTsKKyAgICByZXR1cm4gY2xvbmUoZm9y
SW1wbFRocmVhZCk7Cit9CisKK1Bhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IENDQWN0aXZl
QW5pbWF0aW9uOjpjbG9uZShib29sIGZvckltcGxUaHJlYWQpIGNvbnN0Cit7CiAgICAgT3duUHRy
PENDQWN0aXZlQW5pbWF0aW9uPiB0b1JldHVybihhZG9wdFB0cihuZXcgQ0NBY3RpdmVBbmltYXRp
b24obV9jdXJ2ZS0+Y2xvbmUoKSwgbV9pZCwgbV9ncm91cCwgbV90YXJnZXRQcm9wZXJ0eSkpKTsK
ICAgICB0b1JldHVybi0+bV9ydW5TdGF0ZSA9IG1fcnVuU3RhdGU7CiAgICAgdG9SZXR1cm4tPm1f
aXRlcmF0aW9ucyA9IG1faXRlcmF0aW9uczsKQEAgLTE0OSw2ICsxNjIsNyBAQCBQYXNzT3duUHRy
PENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmVGb3JJbXBsVGhyZWFk
KCkgY29uc3QKICAgICB0b1JldHVybi0+bV90b3RhbFBhdXNlZFRpbWUgPSBtX3RvdGFsUGF1c2Vk
VGltZTsKICAgICB0b1JldHVybi0+bV90aW1lT2Zmc2V0ID0gbV90aW1lT2Zmc2V0OwogICAgIHRv
UmV0dXJuLT5tX2FsdGVybmF0ZXNEaXJlY3Rpb24gPSBtX2FsdGVybmF0ZXNEaXJlY3Rpb247Cisg
ICAgdG9SZXR1cm4tPm1faXNDb250cm9sbGluZ0luc3RhbmNlID0gZm9ySW1wbFRocmVhZDsKICAg
ICByZXR1cm4gdG9SZXR1cm4ucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmlt
YXRpb24uaAppbmRleCAxYWM3MmUxODNmYWYzNzczZjk4YmMwNmFhZmQ1OGI0NTIwMTE2YzBlLi4y
NTAyNjBjNzVjNGEzNGViZjRkYTI2ZmVmZmZiZWFlMmYyMDY5ZmI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
QWN0aXZlQW5pbWF0aW9uLmgKQEAgLTExMiwxMyArMTEyLDE3IEBAIHB1YmxpYzoKICAgICAvLyBv
ZiBpdGVyYXRpb25zLCByZXR1cm5zIHRoZSByZWxhdGl2ZSB0aW1lIGluIHRoZSBjdXJyZW50IGl0
ZXJhdGlvbi4KICAgICBkb3VibGUgdHJpbVRpbWVUb0N1cnJlbnRJdGVyYXRpb24oZG91YmxlIG1v
bm90b25pY1RpbWUpIGNvbnN0OwogCisgICAgUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4g
Y2xvbmUoKSBjb25zdDsKICAgICBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBjbG9uZUZv
ckltcGxUaHJlYWQoKSBjb25zdDsKKyAgICBib29sIGlzQ29udHJvbGxpbmdJbnN0YW5jZSgpIGNv
bnN0IHsgcmV0dXJuIG1faXNDb250cm9sbGluZ0luc3RhbmNlOyB9CiAKICAgICB2b2lkIHB1c2hQ
cm9wZXJ0aWVzVG8oQ0NBY3RpdmVBbmltYXRpb24qKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBD
Q0FjdGl2ZUFuaW1hdGlvbihQYXNzT3duUHRyPENDQW5pbWF0aW9uQ3VydmU+LCBpbnQgYW5pbWF0
aW9uSWQsIGludCBncm91cElkLCBUYXJnZXRQcm9wZXJ0eSk7CiAKKyAgICBQYXNzT3duUHRyPEND
QWN0aXZlQW5pbWF0aW9uPiBjbG9uZShib29sIGZvckltcGwpIGNvbnN0OworCiAgICAgT3duUHRy
PENDQW5pbWF0aW9uQ3VydmU+IG1fY3VydmU7CiAKICAgICAvLyBJRHMgYXJlIG5vdCBuZWNlc3Nh
cmlseSB1bmlxdWUuCkBAIC0xNTQsNiArMTU4LDE1IEBAIHByaXZhdGU6CiAgICAgLy8gYWJvdXQg
dGhlc2UgdmFsdWVzLgogICAgIGRvdWJsZSBtX3BhdXNlVGltZTsKICAgICBkb3VibGUgbV90b3Rh
bFBhdXNlZFRpbWU7CisKKyAgICAvLyBBbmltYXRpb25zIGxlYWQgZHVhbCBsaXZlcy4gQW4gYWN0
aXZlIGFuaW1hdGlvbiB3aWxsIGJlIGNvbmNlcHR1YWxseSBvd25lZCBieQorICAgIC8vIHR3byBj
b250cm9sbGVycywgb25lIG9uIHRoZSBpbXBsIHRocmVhZCBhbmQgb25lIG9uIHRoZSBtYWluLiBJ
biByZWFsaXR5LCB0aGVyZQorICAgIC8vIHdpbGwgYmUgdHdvIHNlcGFyYXRlIENDQWN0aXZlQW5p
bWF0aW9uIGluc3RhbmNlcyBmb3IgdGhlIHNhbWUgYW5pbWF0aW9uLiBUaGV5CisgICAgLy8gd2ls
bCBoYXZlIHRoZSBzYW1lIGdyb3VwIGlkIGFuZCB0aGUgc2FtZSB0YXJnZXQgcHJvcGVydHkgKHRo
ZXNlIHR3byB2YWx1ZXMKKyAgICAvLyB1bmlxdWVseSBpZGVudGlmeSBhbiBhbmltYXRpb24pLiBU
aGUgaW5zdGFuY2Ugb24gdGhlIGltcGwgdGhyZWFkIGlzIHRoZSBpbnN0YW5jZQorICAgIC8vIHRo
YXQgdWx0aW1hdGVseSBjb250cm9scyB0aGUgdmFsdWVzIG9mIHRoZSBhbmltYXRpbmcgbGF5ZXIg
YW5kIHNvIHdlIHdpbGwgcmVmZXIKKyAgICAvLyB0byBpdCBhcyB0aGUgJ2NvbnRyb2xsaW5nIGlu
c3RhbmNlJy4KKyAgICBib29sIG1faXNDb250cm9sbGluZ0luc3RhbmNlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwCmluZGV4IGJkM2U2ZTYwYzYxYWViN2MxZjJiMThhYWM4MTk4YTlmY2IwYTEz
NjcuLjU0Yzk2NjZjMzU2MTczMGExNTJkMGFhMTEyYWRkNmQxZTA3NWM0YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKIAogI2luY2x1ZGUgImNjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmgiCiAKKyNp
bmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVkZSAiY2MvQ0NBY3RpdmVBbmltYXRpb24uaCIK
ICNpbmNsdWRlICJjYy9DQ0tleWZyYW1lZEFuaW1hdGlvbkN1cnZlLmgiCiAjaW5jbHVkZSA8cHVi
bGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CkBAIC00NCw2ICs0NSw5IEBAIENDTGF5ZXJB
bmltYXRpb25Db250cm9sbGVyOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcihDQ0xheWVyQW5p
bWF0aW9uQ29udHJvbGxlCiAKIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjp+Q0NMYXllckFu
aW1hdGlvbkNvbnRyb2xsZXIoKQogeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hY3Rp
dmVBbmltYXRpb25zLnNpemUoKTsgKytpKQorICAgICAgICBpZiAoIW1fYWN0aXZlQW5pbWF0aW9u
c1tpXS0+aXNGaW5pc2hlZCgpKQorICAgICAgICAgICAgc2V0UnVuU3RhdGUobV9hY3RpdmVBbmlt
YXRpb25zW2ldLmdldCgpLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6QWJvcnRlZCwgMCk7CiB9CiAKIFBh
c3NPd25QdHI8Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI+IENDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyOjpjcmVhdGUoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJDbGllbnQqIGNsaWVudCkK
QEAgLTU1LDE2ICs1OSwxNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwYXVz
ZUFuaW1hdGlvbihpbnQgYW5pbWF0aW9uSWQsIGRvdWJsZSB0aW1lT2ZmcwogewogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmlkKCkgPT0gYW5pbWF0aW9uSWQpCi0gICAg
ICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0
aW9uOjpQYXVzZWQsIHRpbWVPZmZzZXQgKyBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnN0YXJ0VGlt
ZSgpKTsKKyAgICAgICAgICAgIHNldFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS5nZXQo
KSwgQ0NBY3RpdmVBbmltYXRpb246OlBhdXNlZCwgdGltZU9mZnNldCArIG1fYWN0aXZlQW5pbWF0
aW9uc1tpXS0+c3RhcnRUaW1lKCkpOwogICAgIH0KIH0KIAogdm9pZCBDQ0xheWVyQW5pbWF0aW9u
Q29udHJvbGxlcjo6cmVtb3ZlQW5pbWF0aW9uKGludCBhbmltYXRpb25JZCkKIHsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7KSB7Ci0gICAgICAg
IGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmlkKCkgPT0gYW5pbWF0aW9uSWQpCisgICAgICAg
IGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmlkKCkgPT0gYW5pbWF0aW9uSWQpIHsKKyAgICAg
ICAgICAgIHNldFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS5nZXQoKSwgQ0NBY3RpdmVB
bmltYXRpb246OkZpbmlzaGVkLCAwKTsKICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0aW9ucy5y
ZW1vdmUoaSk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBpKys7
CiAgICAgfQogfQpAQCAtNzIsOSArNzcsMTAgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJv
bGxlcjo6cmVtb3ZlQW5pbWF0aW9uKGludCBhbmltYXRpb25JZCkKIHZvaWQgQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXI6OnJlbW92ZUFuaW1hdGlvbihpbnQgYW5pbWF0aW9uSWQsIENDQWN0aXZl
QW5pbWF0aW9uOjpUYXJnZXRQcm9wZXJ0eSB0YXJnZXRQcm9wZXJ0eSkKIHsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7KSB7Ci0gICAgICAgIGlm
IChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmlkKCkgPT0gYW5pbWF0aW9uSWQgJiYgbV9hY3RpdmVB
bmltYXRpb25zW2ldLT50YXJnZXRQcm9wZXJ0eSgpID09IHRhcmdldFByb3BlcnR5KQorICAgICAg
ICBpZiAobV9hY3RpdmVBbmltYXRpb25zW2ldLT5pZCgpID09IGFuaW1hdGlvbklkICYmIG1fYWN0
aXZlQW5pbWF0aW9uc1tpXS0+dGFyZ2V0UHJvcGVydHkoKSA9PSB0YXJnZXRQcm9wZXJ0eSkgewor
ICAgICAgICAgICAgc2V0UnVuU3RhdGUobV9hY3RpdmVBbmltYXRpb25zW2ldLmdldCgpLCBDQ0Fj
dGl2ZUFuaW1hdGlvbjo6RmluaXNoZWQsIDApOwogICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRp
b25zLnJlbW92ZShpKTsKLSAgICAgICAgZWxzZQorICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IGkrKzsKICAgICB9CiB9CkBAIC04NCw3ICs5MCw3IEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNv
bnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNUaW1lKQogewogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKSB7
CiAgICAgICAgIGlmICghbV9hY3RpdmVBbmltYXRpb25zW2ldLT5pc0ZpbmlzaGVkKCkpCi0gICAg
ICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0
aW9uOjpQYXVzZWQsIG1vbm90b25pY1RpbWUpOworICAgICAgICAgICAgc2V0UnVuU3RhdGUobV9h
Y3RpdmVBbmltYXRpb25zW2ldLmdldCgpLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCBtb25v
dG9uaWNUaW1lKTsKICAgICB9CiB9CiAKQEAgLTkzLDcgKzk5LDcgQEAgdm9pZCBDQ0xheWVyQW5p
bWF0aW9uQ29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSkK
IHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7
ICsraSkgewogICAgICAgICBpZiAobV9hY3RpdmVBbmltYXRpb25zW2ldLT5ydW5TdGF0ZSgpID09
IENDQWN0aXZlQW5pbWF0aW9uOjpQYXVzZWQpCi0gICAgICAgICAgICBtX2FjdGl2ZUFuaW1hdGlv
bnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nLCBtb25vdG9uaWNU
aW1lKTsKKyAgICAgICAgICAgIHNldFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS5nZXQo
KSwgQ0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcsIG1vbm90b25pY1RpbWUpOwogICAgIH0KIH0K
IApAQCAtMjE2LDkgKzIyMiwxMCBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpy
ZW1vdmVBbmltYXRpb25zQ29tcGxldGVkT25NYWluVGhyZWFkKENDTGF5ZXJBbgogICAgIC8vIGd1
YXJhbnRlZWluZyBwcm9ncmVzcyB0b3dhcmRzIGxvb3AgdGVybWluYXRpb24uCiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBjb250cm9sbGVySW1wbC0+bV9hY3RpdmVBbmltYXRpb25zLnNpemUo
KTspIHsKICAgICAgICAgQ0NBY3RpdmVBbmltYXRpb24qIGN1cnJlbnQgPSBnZXRBY3RpdmVBbmlt
YXRpb24oY29udHJvbGxlckltcGwtPm1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+Z3JvdXAoKSwgY29u
dHJvbGxlckltcGwtPm1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+dGFyZ2V0UHJvcGVydHkoKSk7Ci0g
ICAgICAgIGlmICghY3VycmVudCkKKyAgICAgICAgaWYgKCFjdXJyZW50KSB7CisgICAgICAgICAg
ICBzZXRSdW5TdGF0ZShjb250cm9sbGVySW1wbC0+bV9hY3RpdmVBbmltYXRpb25zW2ldLmdldCgp
LCBDQ0FjdGl2ZUFuaW1hdGlvbjo6RmluaXNoZWQsIDApOwogICAgICAgICAgICAgY29udHJvbGxl
ckltcGwtPm1fYWN0aXZlQW5pbWF0aW9ucy5yZW1vdmUoaSk7Ci0gICAgICAgIGVsc2UKKyAgICAg
ICAgfSBlbHNlCiAgICAgICAgICAgICBpKys7CiAgICAgfQogfQpAQCAtMjM2LDcgKzI0Myw3IEBA
IHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdG
b3JOZXh0VGljayhkb3VibGUgbW9ub3RvCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fYWN0aXZlQW5p
bWF0aW9uc1tpXS0+cnVuU3RhdGUoKSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0Zvck5l
eHRUaWNrKSB7Ci0gICAgICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnNldFJ1blN0YXRl
KENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nLCBtb25vdG9uaWNUaW1lKTsKKyAgICAgICAgICAg
IHNldFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRp
b246OlJ1bm5pbmcsIG1vbm90b25pY1RpbWUpOwogICAgICAgICAgICAgaWYgKCFtX2FjdGl2ZUFu
aW1hdGlvbnNbaV0tPmhhc1NldFN0YXJ0VGltZSgpKQogICAgICAgICAgICAgICAgIG1fYWN0aXZl
QW5pbWF0aW9uc1tpXS0+c2V0U3RhcnRUaW1lKG1vbm90b25pY1RpbWUpOwogICAgICAgICAgICAg
aWYgKGV2ZW50cykKQEAgLTI0OSw3ICsyNTYsNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyOjpzdGFydEFuaW1hdGlvbnNXYWl0aW5nRm9yU3RhcnRUaW1lKGRvdWJsZSBtb25vdAog
ewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsg
KytpKSB7CiAgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnJ1blN0YXRlKCkgPT0g
Q0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JTdGFydFRpbWUgJiYgbV9hY3RpdmVBbmltYXRp
b25zW2ldLT5zdGFydFRpbWUoKSA8PSBtb25vdG9uaWNUaW1lKSB7Ci0gICAgICAgICAgICBtX2Fj
dGl2ZUFuaW1hdGlvbnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5n
LCBtb25vdG9uaWNUaW1lKTsKKyAgICAgICAgICAgIHNldFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0
aW9uc1tpXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcsIG1vbm90b25pY1RpbWUp
OwogICAgICAgICAgICAgaWYgKGV2ZW50cykKICAgICAgICAgICAgICAgICBldmVudHMtPmFwcGVu
ZChDQ0FuaW1hdGlvbkV2ZW50KENDQW5pbWF0aW9uRXZlbnQ6OlN0YXJ0ZWQsIG1fY2xpZW50LT5p
ZCgpLCBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmdyb3VwKCksIG1fYWN0aXZlQW5pbWF0aW9uc1tp
XS0+dGFyZ2V0UHJvcGVydHkoKSwgbW9ub3RvbmljVGltZSkpOwogICAgICAgICB9CkBAIC0yODYs
MTQgKzI5MywxNCBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpzdGFydEFuaW1h
dGlvbnNXYWl0aW5nRm9yVGFyZ2V0QXZhaWxhYmlsaXR5KGRvdQogCiAgICAgICAgICAgICAvLyBJ
ZiB0aGUgaW50ZXJzZWN0aW9uIGlzIG51bGwsIHRoZW4gd2UgYXJlIGZyZWUgdG8gc3RhcnQgdGhl
IGFuaW1hdGlvbnMgaW4gdGhlIGdyb3VwLgogICAgICAgICAgICAgaWYgKG51bGxJbnRlcnNlY3Rp
b24pIHsKLSAgICAgICAgICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnNldFJ1blN0YXRl
KENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nLCBtb25vdG9uaWNUaW1lKTsKKyAgICAgICAgICAg
ICAgICBzZXRSdW5TdGF0ZShtX2FjdGl2ZUFuaW1hdGlvbnNbaV0uZ2V0KCksIENDQWN0aXZlQW5p
bWF0aW9uOjpSdW5uaW5nLCBtb25vdG9uaWNUaW1lKTsKICAgICAgICAgICAgICAgICBpZiAoIW1f
YWN0aXZlQW5pbWF0aW9uc1tpXS0+aGFzU2V0U3RhcnRUaW1lKCkpCiAgICAgICAgICAgICAgICAg
ICAgIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+c2V0U3RhcnRUaW1lKG1vbm90b25pY1RpbWUpOwog
ICAgICAgICAgICAgICAgIGlmIChldmVudHMpCiAgICAgICAgICAgICAgICAgICAgIGV2ZW50cy0+
YXBwZW5kKENDQW5pbWF0aW9uRXZlbnQoQ0NBbmltYXRpb25FdmVudDo6U3RhcnRlZCwgbV9jbGll
bnQtPmlkKCksIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+Z3JvdXAoKSwgbV9hY3RpdmVBbmltYXRp
b25zW2ldLT50YXJnZXRQcm9wZXJ0eSgpLCBtb25vdG9uaWNUaW1lKSk7CiAgICAgICAgICAgICAg
ICAgZm9yIChzaXplX3QgaiA9IGkgKyAxOyBqIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsg
KytqKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmdy
b3VwKCkgPT0gbV9hY3RpdmVBbmltYXRpb25zW2pdLT5ncm91cCgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbal0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5p
bWF0aW9uOjpSdW5uaW5nLCBtb25vdG9uaWNUaW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHNldFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tqXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRp
b246OlJ1bm5pbmcsIG1vbm90b25pY1RpbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCFtX2FjdGl2ZUFuaW1hdGlvbnNbal0tPmhhc1NldFN0YXJ0VGltZSgpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0aW9uc1tqXS0+c2V0U3RhcnRUaW1lKG1vbm90
b25pY1RpbWUpOwogICAgICAgICAgICAgICAgICAgICB9CkBAIC0zMTUsMTYgKzMyMiwxNSBAQCB2
b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZXNvbHZlQ29uZmxpY3RzKGRvdWJsZSBt
b25vdG9uaWNUaW1lKQogICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IGkgKyAxOyBqIDwgbV9h
Y3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytqKSB7CiAgICAgICAgICAgICAgICAgaWYgKG1fYWN0
aXZlQW5pbWF0aW9uc1tqXS0+cnVuU3RhdGUoKSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmlu
ZyAmJiBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnRhcmdldFByb3BlcnR5KCkgPT0gbV9hY3RpdmVB
bmltYXRpb25zW2pdLT50YXJnZXRQcm9wZXJ0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnN0YXJ0VGltZSgpID4gbV9hY3RpdmVBbmltYXRpb25z
W2pdLT5zdGFydFRpbWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0
aW9uc1tqXS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OkFib3J0ZWQsIG1vbm90b25p
Y1RpbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0UnVuU3RhdGUobV9hY3RpdmVBbmlt
YXRpb25zW2pdLmdldCgpLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6QWJvcnRlZCwgbW9ub3RvbmljVGlt
ZSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIG1f
YWN0aXZlQW5pbWF0aW9uc1tpXS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OkFib3J0
ZWQsIG1vbm90b25pY1RpbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0UnVuU3RhdGUo
bV9hY3RpdmVBbmltYXRpb25zW2ldLmdldCgpLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6QWJvcnRlZCwg
bW9ub3RvbmljVGltZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQogfQogCi0KIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6Om1hcmtB
bmltYXRpb25zRm9yRGVsZXRpb24oZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZl
bnRzVmVjdG9yKiBldmVudHMpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2
ZUFuaW1hdGlvbnMuc2l6ZSgpOyBpKyspIHsKQEAgLTM0OCw3ICszNTQsNyBAQCB2b2lkIENDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyOjptYXJrQW5pbWF0aW9uc0ZvckRlbGV0aW9uKGRvdWJsZSBt
b25vdG9uaWNUaW1lLAogICAgICAgICAgICAgICAgIGlmIChncm91cElkID09IG1fYWN0aXZlQW5p
bWF0aW9uc1tqXS0+Z3JvdXAoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnRzKQog
ICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRzLT5hcHBlbmQoQ0NBbmltYXRpb25FdmVudChD
Q0FuaW1hdGlvbkV2ZW50OjpGaW5pc2hlZCwgbV9jbGllbnQtPmlkKCksIG1fYWN0aXZlQW5pbWF0
aW9uc1tqXS0+Z3JvdXAoKSwgbV9hY3RpdmVBbmltYXRpb25zW2pdLT50YXJnZXRQcm9wZXJ0eSgp
LCBtb25vdG9uaWNUaW1lKSk7Ci0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0aW9u
c1tqXS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JEZWxldGlvbiwg
bW9ub3RvbmljVGltZSk7CisgICAgICAgICAgICAgICAgICAgIHNldFJ1blN0YXRlKG1fYWN0aXZl
QW5pbWF0aW9uc1tqXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JEZWxldGlv
biwgbW9ub3RvbmljVGltZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAg
ICAgICB9CkBAIC0zOTcsNyArNDAzLDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxl
cjo6dGlja0FuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpCiAgICAgICAgICAgICAgICAg
Y29uc3QgQ0NUcmFuc2Zvcm1BbmltYXRpb25DdXJ2ZSogdHJhbnNmb3JtQW5pbWF0aW9uQ3VydmUg
PSBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmN1cnZlKCktPnRvVHJhbnNmb3JtQW5pbWF0aW9uQ3Vy
dmUoKTsKICAgICAgICAgICAgICAgICBjb25zdCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXRy
aXggPSB0cmFuc2Zvcm1BbmltYXRpb25DdXJ2ZS0+Z2V0VmFsdWUodHJpbW1lZCk7CiAgICAgICAg
ICAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+aXNGaW5pc2hlZEF0KG1vbm90b25p
Y1RpbWUpKQotICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnNldFJ1
blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpGaW5pc2hlZCwgbW9ub3RvbmljVGltZSk7CisgICAg
ICAgICAgICAgICAgICAgIHNldFJ1blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS5nZXQoKSwg
Q0NBY3RpdmVBbmltYXRpb246OkZpbmlzaGVkLCBtb25vdG9uaWNUaW1lKTsKIAogICAgICAgICAg
ICAgICAgIG1fY2xpZW50LT5zZXRUcmFuc2Zvcm1Gcm9tQW5pbWF0aW9uKG1hdHJpeCk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CkBAIC00MDcsNyArNDEzLDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlcjo6dGlja0FuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpCiAgICAg
ICAgICAgICAgICAgY29uc3QgQ0NGbG9hdEFuaW1hdGlvbkN1cnZlKiBmbG9hdEFuaW1hdGlvbkN1
cnZlID0gbV9hY3RpdmVBbmltYXRpb25zW2ldLT5jdXJ2ZSgpLT50b0Zsb2F0QW5pbWF0aW9uQ3Vy
dmUoKTsKICAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCBvcGFjaXR5ID0gZmxvYXRBbmltYXRp
b25DdXJ2ZS0+Z2V0VmFsdWUodHJpbW1lZCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fYWN0aXZl
QW5pbWF0aW9uc1tpXS0+aXNGaW5pc2hlZEF0KG1vbm90b25pY1RpbWUpKQotICAgICAgICAgICAg
ICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0
aW9uOjpGaW5pc2hlZCwgbW9ub3RvbmljVGltZSk7CisgICAgICAgICAgICAgICAgICAgIHNldFJ1
blN0YXRlKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS5nZXQoKSwgQ0NBY3RpdmVBbmltYXRpb246OkZp
bmlzaGVkLCBtb25vdG9uaWNUaW1lKTsKIAogICAgICAgICAgICAgICAgIG1fY2xpZW50LT5zZXRP
cGFjaXR5RnJvbUFuaW1hdGlvbihvcGFjaXR5KTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAg
LTQxOCw0ICs0MjQsNjQgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6dGlja0Fu
aW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpCiAgICAgfQogfQogCitjb25zdCBjaGFyICog
Z2V0VGFyZ2V0UHJvcGVydHlOYW1lKENDQWN0aXZlQW5pbWF0aW9uOjpUYXJnZXRQcm9wZXJ0eSB0
YXJnZXRQcm9wZXJ0eSkKK3sKKyAgICBzd2l0Y2ggKHRhcmdldFByb3BlcnR5KSB7CisgICAgY2Fz
ZSBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eToKKyAgICAgICAgcmV0dXJuICJPcGFjaXR5IjsK
KyAgICBjYXNlIENDQWN0aXZlQW5pbWF0aW9uOjpUcmFuc2Zvcm06CisgICAgICAgIHJldHVybiAi
VHJhbnNmb3JtIjsKKyAgICB9Cit9CisKK2NvbnN0IGNoYXIgKiBnZXRSdW5TdGF0ZU5hbWUoQ0NB
Y3RpdmVBbmltYXRpb246OlJ1blN0YXRlIHJ1blN0YXRlKQoreworICAgIHN3aXRjaCAocnVuU3Rh
dGUpIHsKKyAgICBjYXNlIENDQWN0aXZlQW5pbWF0aW9uOjpXYWl0aW5nRm9yTmV4dFRpY2s6Cisg
ICAgICAgIHJldHVybiAiV2FpdGluZ0Zvck5leHRUaWNrIjsKKyAgICBjYXNlIENDQWN0aXZlQW5p
bWF0aW9uOjpXYWl0aW5nRm9yVGFyZ2V0QXZhaWxhYmlsaXR5OgorICAgICAgICByZXR1cm4gIldh
aXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHkiOworICAgIGNhc2UgQ0NBY3RpdmVBbmltYXRpb246
OldhaXRpbmdGb3JTdGFydFRpbWU6CisgICAgICAgIHJldHVybiAiV2FpdGluZ0ZvclN0YXJ0VGlt
ZSI7CisgICAgY2FzZSBDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvckRlbGV0aW9uOgorICAg
ICAgICByZXR1cm4gIldhaXRpbmdGb3JEZWxldGlvbiI7CisgICAgY2FzZSBDQ0FjdGl2ZUFuaW1h
dGlvbjo6UnVubmluZzoKKyAgICAgICAgcmV0dXJuICJSdW5uaW5nIjsKKyAgICBjYXNlIENDQWN0
aXZlQW5pbWF0aW9uOjpQYXVzZWQ6CisgICAgICAgIHJldHVybiAiUGF1c2VkIjsKKyAgICBjYXNl
IENDQWN0aXZlQW5pbWF0aW9uOjpGaW5pc2hlZDoKKyAgICAgICAgcmV0dXJuICJGaW5pc2hlZCI7
CisgICAgY2FzZSBDQ0FjdGl2ZUFuaW1hdGlvbjo6QWJvcnRlZDoKKyAgICAgICAgcmV0dXJuICJB
Ym9ydGVkIjsKKyAgICB9OworfQorCit2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpz
ZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbiogYW5pbWF0aW9uLCBDQ0FjdGl2ZUFuaW1hdGlv
bjo6UnVuU3RhdGUgcnVuU3RhdGUsIGRvdWJsZSBtb25vdG9uaWNUaW1lKSBjb25zdAoreworICAg
IGNoYXIgbmFtZUJ1ZmZlclsyNTZdOworICAgIHNwcmludGYobmFtZUJ1ZmZlciwgIiVzLSVkJXMi
LCBnZXRUYXJnZXRQcm9wZXJ0eU5hbWUoYW5pbWF0aW9uLT50YXJnZXRQcm9wZXJ0eSgpKSwgYW5p
bWF0aW9uLT5ncm91cCgpLCBhbmltYXRpb24tPmlzQ29udHJvbGxpbmdJbnN0YW5jZSgpID8gIihp
bXBsKSIgOiAiIik7CisKKyAgICBib29sIGlzV2FpdGluZ1RvU3RhcnQgPSBhbmltYXRpb24tPnJ1
blN0YXRlKCkgPT0gQ0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JOZXh0VGljaworICAgICAg
ICB8fCBhbmltYXRpb24tPnJ1blN0YXRlKCkgPT0gQ0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdG
b3JUYXJnZXRBdmFpbGFiaWxpdHkKKyAgICAgICAgfHwgYW5pbWF0aW9uLT5ydW5TdGF0ZSgpID09
IENDQWN0aXZlQW5pbWF0aW9uOjpXYWl0aW5nRm9yU3RhcnRUaW1lOworCisgICAgaWYgKGlzV2Fp
dGluZ1RvU3RhcnQgJiYgcnVuU3RhdGUgPT0gQ0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcpCisg
ICAgICAgIFRSQUNFX0VWRU5UX0FTWU5DX0JFR0lOMSgiY2MiLCAiQ0NBY3RpdmVBbmltYXRpb24i
LCBhbmltYXRpb24sICJOYW1lIiwgVFJBQ0VfU1RSX0NPUFkobmFtZUJ1ZmZlcikpOworCisgICAg
Ym9vbCB3YXNGaW5pc2hlZCA9IGFuaW1hdGlvbi0+aXNGaW5pc2hlZCgpOworCisgICAgY29uc3Qg
Y2hhciAqb2xkUnVuU3RhdGVOYW1lID0gZ2V0UnVuU3RhdGVOYW1lKGFuaW1hdGlvbi0+cnVuU3Rh
dGUoKSk7CisgICAgYW5pbWF0aW9uLT5zZXRSdW5TdGF0ZShydW5TdGF0ZSwgbW9ub3RvbmljVGlt
ZSk7CisgICAgY29uc3QgY2hhciAqbmV3UnVuU3RhdGVOYW1lID0gZ2V0UnVuU3RhdGVOYW1lKHJ1
blN0YXRlKTsKKworICAgIGlmICghd2FzRmluaXNoZWQgJiYgYW5pbWF0aW9uLT5pc0ZpbmlzaGVk
KCkpCisgICAgICAgIFRSQUNFX0VWRU5UX0FTWU5DX0VORDAoImNjIiwgIkNDQWN0aXZlQW5pbWF0
aW9uIiwgYW5pbWF0aW9uKTsKKworICAgIGNoYXIgc3RhdGVCdWZmZXJbMjU2XTsKKyAgICBzcHJp
bnRmKHN0YXRlQnVmZmVyLCAiJXMtPiVzIiwgb2xkUnVuU3RhdGVOYW1lLCBuZXdSdW5TdGF0ZU5h
bWUpOworCisgICAgVFJBQ0VfRVZFTlRfSU5TVEFOVDIoImNjIiwgIkNDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyOjpzZXRSdW5TdGF0ZSIsICJOYW1lIiwgVFJBQ0VfU1RSX0NPUFkobmFtZUJ1ZmZl
ciksICJTdGF0ZSIsIFRSQUNFX1NUUl9DT1BZKHN0YXRlQnVmZmVyKSk7CisKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyLmgKaW5kZXggYzZlYmJlMjhiZjljNmVmYTVjZjAzMmVlYzY3ZDYwZjlmMjMwNDA5My4u
ZmY5YjljNTI4YjkwZDY4NmNkZTg4Mzc1OGE3OWNiZjE2MDNlMmFmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5oCkBAIC0xMjAsNiArMTIwLDggQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgdGlja0FuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUp
OwogCisgICAgdm9pZCBzZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbiosIENDQWN0aXZlQW5p
bWF0aW9uOjpSdW5TdGF0ZSwgZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0OworCiAgICAgLy8g
SWYgdGhpcyBpcyB0cnVlLCB3ZSBmb3JjZSBhIHN5bmMgdG8gdGhlIGltcGwgdGhyZWFkLgogICAg
IGJvb2wgbV9mb3JjZVN5bmM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkFuaW1hdGlvbkltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
QW5pbWF0aW9uSW1wbC5jcHAKaW5kZXggM2QzYjcwMmQ4MTY0Nzg1OWY2YjViMDAzYTU2YmNlYTc2
MGZiODhmNy4uMjdiOGEyNTg1YWVjZDJhOWYxNzdkMGU0M2E3YTUwZGZmMTRjNjJlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQW5pbWF0aW9uSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQW5pbWF0aW9uSW1wbC5jcHAKQEAgLTk2
LDcgKzk2LDcgQEAgdm9pZCBXZWJBbmltYXRpb25JbXBsOjpzZXRBbHRlcm5hdGVzRGlyZWN0aW9u
KGJvb2wgYWx0ZXJuYXRlcykKIAogUGFzc093blB0cjxXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlv
bj4gV2ViQW5pbWF0aW9uSW1wbDo6Y2xvbmVUb0NDQW5pbWF0aW9uKCkKIHsKLSAgICBPd25QdHI8
V2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb24+IHRvUmV0dXJuKG1fYW5pbWF0aW9uLT5jbG9uZUZv
ckltcGxUaHJlYWQoKSk7CisgICAgT3duUHRyPFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uPiB0
b1JldHVybihtX2FuaW1hdGlvbi0+Y2xvbmUoKSk7CiAgICAgdG9SZXR1cm4tPnNldE5lZWRzU3lu
Y2hyb25pemVkU3RhcnRUaW1lKHRydWUpOwogICAgIHJldHVybiB0b1JldHVybi5yZWxlYXNlKCk7
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158835</attachid>
            <date>2012-08-16 09:03:54 -0700</date>
            <delta_ts>2012-08-16 19:17:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84210-20120816120319.patch</filename>
            <type>text/plain</type>
            <size>12353</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM4OTU0MjM3NTQyODgw
YjNkOGMwMzNmNWNkNzljNzYwNDcxYzBhMS4uOWQ5Yjk3YzU4ZTE1NTI4YzAzZDlhNjZiMTU1ZmYx
NDYxNmUyY2ExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA4LTE2ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHRyYWNpbmcgZm9yIGFjdGl2ZSBjb21wb3NpdGVkIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MjEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpc3N1ZXMgdGhlIHRy
YWNlIGV2ZW50cyBmcm9tIHRoZSBjb250cm9sbGVyLiBJdCB3aWxsIHJlcG9ydAorICAgICAgICB3
aGVuIGFuaW1hdGlvbnMgc3RhcnQgYW5kIGZpbmlzaCBvbiB0aGUgbWFpbiBhbmQgaW1wbCB0aHJl
YWRzICh2aWEKKyAgICAgICAgVFJBQ0VfRVZFTlRfQVNZTkMqKSwgYW5kIGFsc28gaXNzdWUgaW5z
dGFudCB0cmFjZSBldmVudHMgd2hlbmV2ZXIKKyAgICAgICAgYWN0aXZlIGFuaW1hdGlvbnMgY2hh
bmdlIHN0YXRlLgorCisgICAgICAgIFRoaXMgd2FzIGFjY29tcGxpc2hlZCBieSByZXBsYWNpbmcg
bW9zdCBjYWxscyB0byBDQ0FjdGl2ZUFuaW1hdGlvbjo6c2V0UnVuU3RhdGUKKyAgICAgICAgdG8g
Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnNldFJ1blN0YXRlIHdoaWNoIGNhbGxzIHRoZSBm
b3JtZXIgYW5kCisgICAgICAgIGRvZXMgc29tZSB0cmFjaW5nLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgb25seSBjaGFuZ2VzIHRyYWNpbmcgYmVoYXZpb3IuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6Q0NBY3RpdmVBbmltYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb246On5DQ0FjdGl2ZUFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6c2V0UnVuU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NBY3RpdmVBbmltYXRpb246OmNsb25lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb246OmNsb25lQW5kSW5pdGlhbGl6ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjppc0NvbnRyb2xsaW5nSW5z
dGFuY2UpOgorICAgICAgICAoQ0NBY3RpdmVBbmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0
aW9uc1RvSW1wbFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29u
dHJvbGxlcjo6cmVwbGFjZUltcGxUaHJlYWRBbmltYXRpb25zKToKKwogMjAxMi0wOC0xNSAgVnNl
dm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBbUkVHUkVTU0lPTl0gInNhdmUgYXMiIG9mIGVkaXRlZCBzb3VyY2UgaW4gZGV2ZWxvcGVy
IG1vZGUgZmFpbHMgdG8gdXBkYXRlIHNhdmVkIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggZjQ0MGY3YWE1N2MzMDY0OTViNWMyOGQzZTcwNzY5NWViNWUwNDhlZi4uOWYyNmY1MmFm
YmNkNjg3NDZlODk2MmViY2FkZTkzZTIxYmIzOTJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOC0xNiAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCB0cmFjaW5nIGZvciBhY3RpdmUg
Y29tcG9zaXRlZCBhbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NDIxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXNzdWVzIHRoZSB0cmFjZSBldmVudHMgZnJvbSB0aGUg
Y29udHJvbGxlci4gSXQgd2lsbCByZXBvcnQKKyAgICAgICAgd2hlbiBhbmltYXRpb25zIHN0YXJ0
IGFuZCBmaW5pc2ggb24gdGhlIG1haW4gYW5kIGltcGwgdGhyZWFkcyAodmlhCisgICAgICAgIFRS
QUNFX0VWRU5UX0FTWU5DKiksIGFuZCBhbHNvIGlzc3VlcyBpbnN0YW50IHRyYWNlIGV2ZW50cyB3
aGVuZXZlciBhbgorICAgICAgICBhY3RpdmUgYW5pbWF0aW9uIGNoYW5nZXMgc3RhdGUuCisKKyAg
ICAgICAgKiBzcmMvV2ViQW5pbWF0aW9uSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkFu
aW1hdGlvbkltcGw6OmNsb25lVG9DQ0FuaW1hdGlvbik6CisKIDIwMTItMDgtMTUgIFBldGVyIEJl
dmVybG9vICA8cGV0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gUm9sbCBX
ZWJLaXQgQ2hyb21pdW0gREVQUyB0byByMTUxNjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1h
dGlvbi5jcHAKaW5kZXggZmY2ZTczMzk4Zjc3YmMzN2RhNmY5MTBkNzUxMjY3NzU5YTgwMjU2ZS4u
MzFlYjA4NjdkY2I4YTEzNjhjNTM4YWQ1Y2I1M2VlZjQ5YTk4NWY2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDQWN0aXZlQW5pbWF0aW9uLmNwcApAQCAtMjYsMTAgKzI2LDMxIEBACiAKICNpbmNsdWRlICJj
Yy9DQ0FjdGl2ZUFuaW1hdGlvbi5oIgogCisjaW5jbHVkZSAiVHJhY2VFdmVudC5oIgogI2luY2x1
ZGUgImNjL0NDQW5pbWF0aW9uQ3VydmUuaCIKIAogI2luY2x1ZGUgPGNtYXRoPgogCituYW1lc3Bh
Y2UgeworCitzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19ydW5TdGF0ZU5hbWVzW10gPSB7Cisg
ICAgIldhaXRpbmdGb3JOZXh0VGljayIsCisgICAgIldhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxp
dHkiLAorICAgICJXYWl0aW5nRm9yU3RhcnRUaW1lIiwKKyAgICAiV2FpdGluZ0ZvckRlbGV0aW9u
IiwKKyAgICAiUnVubmluZyIsCisgICAgIlBhdXNlZCIsCisgICAgIkZpbmlzaGVkIiwKKyAgICAi
QWJvcnRlZCIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBzX3RhcmdldFByb3BlcnR5
TmFtZXNbXSA9IHsKKyAgICAiVHJhbnNmb3JtIiwKKyAgICAiT3BhY2l0eSIKK307CisKK30gLy8g
bmFtZXNwYWNlCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc093blB0cjxDQ0FjdGl2ZUFu
aW1hdGlvbj4gQ0NBY3RpdmVBbmltYXRpb246OmNyZWF0ZShQYXNzT3duUHRyPENDQW5pbWF0aW9u
Q3VydmU+IGN1cnZlLCBpbnQgYW5pbWF0aW9uSWQsIGludCBncm91cElkLCBUYXJnZXRQcm9wZXJ0
eSB0YXJnZXRQcm9wZXJ0eSkKQEAgLTUxLDExICs3MiwxNCBAQCBDQ0FjdGl2ZUFuaW1hdGlvbjo6
Q0NBY3RpdmVBbmltYXRpb24oUGFzc093blB0cjxDQ0FuaW1hdGlvbkN1cnZlPiBjdXJ2ZSwgaW50
IGFuaQogICAgICwgbV9zdXNwZW5kZWQoZmFsc2UpCiAgICAgLCBtX3BhdXNlVGltZSgwKQogICAg
ICwgbV90b3RhbFBhdXNlZFRpbWUoMCkKKyAgICAsIG1faXNDb250cm9sbGluZ0luc3RhbmNlKGZh
bHNlKQogewogfQogCiBDQ0FjdGl2ZUFuaW1hdGlvbjo6fkNDQWN0aXZlQW5pbWF0aW9uKCkKIHsK
KyAgICBpZiAobV9ydW5TdGF0ZSA9PSBSdW5uaW5nIHx8IG1fcnVuU3RhdGUgPT0gUGF1c2VkKQor
ICAgICAgICBzZXRSdW5TdGF0ZShBYm9ydGVkLCAwKTsKIH0KIAogdm9pZCBDQ0FjdGl2ZUFuaW1h
dGlvbjo6c2V0UnVuU3RhdGUoUnVuU3RhdGUgcnVuU3RhdGUsIGRvdWJsZSBtb25vdG9uaWNUaW1l
KQpAQCAtNjMsMTEgKzg3LDM1IEBAIHZvaWQgQ0NBY3RpdmVBbmltYXRpb246OnNldFJ1blN0YXRl
KFJ1blN0YXRlIHJ1blN0YXRlLCBkb3VibGUgbW9ub3RvbmljVGltZSkKICAgICBpZiAobV9zdXNw
ZW5kZWQpCiAgICAgICAgIHJldHVybjsKIAorICAgIGNoYXIgbmFtZUJ1ZmZlclsyNTZdOworICAg
IHNucHJpbnRmKG5hbWVCdWZmZXIsIHNpemVvZihuYW1lQnVmZmVyKSwgIiVzLSVkJXMiLCBzX3Rh
cmdldFByb3BlcnR5TmFtZXNbbV90YXJnZXRQcm9wZXJ0eV0sIG1fZ3JvdXAsIG1faXNDb250cm9s
bGluZ0luc3RhbmNlID8gIihpbXBsKSIgOiAiIik7CisKKyAgICBib29sIGlzV2FpdGluZ1RvU3Rh
cnQgPSBtX3J1blN0YXRlID09IFdhaXRpbmdGb3JOZXh0VGljaworICAgICAgICB8fCBtX3J1blN0
YXRlID09IFdhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHkKKyAgICAgICAgfHwgbV9ydW5TdGF0
ZSA9PSBXYWl0aW5nRm9yU3RhcnRUaW1lOworCisgICAgaWYgKGlzV2FpdGluZ1RvU3RhcnQgJiYg
cnVuU3RhdGUgPT0gUnVubmluZykKKyAgICAgICAgVFJBQ0VfRVZFTlRfQVNZTkNfQkVHSU4xKCJj
YyIsICJDQ0FjdGl2ZUFuaW1hdGlvbiIsIHRoaXMsICJOYW1lIiwgVFJBQ0VfU1RSX0NPUFkobmFt
ZUJ1ZmZlcikpOworCisgICAgYm9vbCB3YXNGaW5pc2hlZCA9IGlzRmluaXNoZWQoKTsKKworICAg
IGNvbnN0IGNoYXIqIG9sZFJ1blN0YXRlTmFtZSA9IHNfcnVuU3RhdGVOYW1lc1ttX3J1blN0YXRl
XTsKKwogICAgIGlmIChydW5TdGF0ZSA9PSBSdW5uaW5nICYmIG1fcnVuU3RhdGUgPT0gUGF1c2Vk
KQogICAgICAgICBtX3RvdGFsUGF1c2VkVGltZSArPSBtb25vdG9uaWNUaW1lIC0gbV9wYXVzZVRp
bWU7CiAgICAgZWxzZSBpZiAocnVuU3RhdGUgPT0gUGF1c2VkKQogICAgICAgICBtX3BhdXNlVGlt
ZSA9IG1vbm90b25pY1RpbWU7CiAgICAgbV9ydW5TdGF0ZSA9IHJ1blN0YXRlOworCisgICAgY29u
c3QgY2hhciogbmV3UnVuU3RhdGVOYW1lID0gc19ydW5TdGF0ZU5hbWVzW3J1blN0YXRlXTsKKwor
ICAgIGlmICghd2FzRmluaXNoZWQgJiYgaXNGaW5pc2hlZCgpKQorICAgICAgICBUUkFDRV9FVkVO
VF9BU1lOQ19FTkQwKCJjYyIsICJDQ0FjdGl2ZUFuaW1hdGlvbiIsIHRoaXMpOworCisgICAgY2hh
ciBzdGF0ZUJ1ZmZlclsyNTZdOworICAgIHNucHJpbnRmKHN0YXRlQnVmZmVyLCBzaXplb2Yoc3Rh
dGVCdWZmZXIpLCAiJXMtPiVzIiwgb2xkUnVuU3RhdGVOYW1lLCBuZXdSdW5TdGF0ZU5hbWUpOwor
CisgICAgVFJBQ0VfRVZFTlRfSU5TVEFOVDIoImNjIiwgIkNDTGF5ZXJBbmltYXRpb25Db250cm9s
bGVyOjpzZXRSdW5TdGF0ZSIsICJOYW1lIiwgVFJBQ0VfU1RSX0NPUFkobmFtZUJ1ZmZlciksICJT
dGF0ZSIsIFRSQUNFX1NUUl9DT1BZKHN0YXRlQnVmZmVyKSk7CiB9CiAKIHZvaWQgQ0NBY3RpdmVB
bmltYXRpb246OnN1c3BlbmQoZG91YmxlIG1vbm90b25pY1RpbWUpCkBAIC0xMzksMTYgKzE4Nywy
MiBAQCBkb3VibGUgQ0NBY3RpdmVBbmltYXRpb246OnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9u
KGRvdWJsZSBtb25vdG9uaWNUaW1lKSBjb25zdAogICAgIHJldHVybiB0cmltbWVkOwogfQogCi1Q
YXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmVGb3JJ
bXBsVGhyZWFkKCkgY29uc3QKK1Bhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IENDQWN0aXZl
QW5pbWF0aW9uOjpjbG9uZShDbG9uaW5nVGFyZ2V0IGNsb25pbmdUYXJnZXQpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGNsb25lQW5kSW5pdGlhbGl6ZShjbG9uaW5nVGFyZ2V0LCBtX3J1blN0YXRlLCBt
X3N0YXJ0VGltZSk7Cit9CisKK1Bhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IENDQWN0aXZl
QW5pbWF0aW9uOjpjbG9uZUFuZEluaXRpYWxpemUoQ2xvbmluZ1RhcmdldCBjbG9uaW5nVGFyZ2V0
LCBSdW5TdGF0ZSBpbml0aWFsUnVuU3RhdGUsIGRvdWJsZSBzdGFydFRpbWUpIGNvbnN0CiB7CiAg
ICAgT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiB0b1JldHVybihhZG9wdFB0cihuZXcgQ0NBY3Rp
dmVBbmltYXRpb24obV9jdXJ2ZS0+Y2xvbmUoKSwgbV9pZCwgbV9ncm91cCwgbV90YXJnZXRQcm9w
ZXJ0eSkpKTsKLSAgICB0b1JldHVybi0+bV9ydW5TdGF0ZSA9IG1fcnVuU3RhdGU7CisgICAgdG9S
ZXR1cm4tPm1fcnVuU3RhdGUgPSBpbml0aWFsUnVuU3RhdGU7CiAgICAgdG9SZXR1cm4tPm1faXRl
cmF0aW9ucyA9IG1faXRlcmF0aW9uczsKLSAgICB0b1JldHVybi0+bV9zdGFydFRpbWUgPSBtX3N0
YXJ0VGltZTsKKyAgICB0b1JldHVybi0+bV9zdGFydFRpbWUgPSBzdGFydFRpbWU7CiAgICAgdG9S
ZXR1cm4tPm1fcGF1c2VUaW1lID0gbV9wYXVzZVRpbWU7CiAgICAgdG9SZXR1cm4tPm1fdG90YWxQ
YXVzZWRUaW1lID0gbV90b3RhbFBhdXNlZFRpbWU7CiAgICAgdG9SZXR1cm4tPm1fdGltZU9mZnNl
dCA9IG1fdGltZU9mZnNldDsKICAgICB0b1JldHVybi0+bV9hbHRlcm5hdGVzRGlyZWN0aW9uID0g
bV9hbHRlcm5hdGVzRGlyZWN0aW9uOworICAgIHRvUmV0dXJuLT5tX2lzQ29udHJvbGxpbmdJbnN0
YW5jZSA9IGNsb25pbmdUYXJnZXQgPT0gRm9ySW1wbFRocmVhZDsKICAgICByZXR1cm4gdG9SZXR1
cm4ucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uaAppbmRleCAx
YWM3MmUxODNmYWYzNzczZjk4YmMwNmFhZmQ1OGI0NTIwMTE2YzBlLi5lZTc5NjRmNDA2Nzk4OGI2
ZjA3YzJkNjIxZTM0MTg3ZmJmNzEyNjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9u
LmgKQEAgLTExMiw3ICsxMTIsMTQgQEAgcHVibGljOgogICAgIC8vIG9mIGl0ZXJhdGlvbnMsIHJl
dHVybnMgdGhlIHJlbGF0aXZlIHRpbWUgaW4gdGhlIGN1cnJlbnQgaXRlcmF0aW9uLgogICAgIGRv
dWJsZSB0cmltVGltZVRvQ3VycmVudEl0ZXJhdGlvbihkb3VibGUgbW9ub3RvbmljVGltZSkgY29u
c3Q7CiAKLSAgICBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBjbG9uZUZvckltcGxUaHJl
YWQoKSBjb25zdDsKKyAgICBlbnVtIENsb25pbmdUYXJnZXQgeworICAgICAgICBGb3JJbXBsVGhy
ZWFkID0gMCwKKyAgICAgICAgRm9yTWFpblRocmVhZAorICAgIH07CisKKyAgICBQYXNzT3duUHRy
PENDQWN0aXZlQW5pbWF0aW9uPiBjbG9uZShDbG9uaW5nVGFyZ2V0KSBjb25zdDsKKyAgICBQYXNz
T3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBjbG9uZUFuZEluaXRpYWxpemUoQ2xvbmluZ1Rhcmdl
dCwgUnVuU3RhdGUgaW5pdGlhbFJ1blN0YXRlLCBkb3VibGUgc3RhcnRUaW1lKSBjb25zdDsKKyAg
ICBib29sIGlzQ29udHJvbGxpbmdJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb250cm9s
bGluZ0luc3RhbmNlOyB9CiAKICAgICB2b2lkIHB1c2hQcm9wZXJ0aWVzVG8oQ0NBY3RpdmVBbmlt
YXRpb24qKSBjb25zdDsKIApAQCAtMTU0LDYgKzE2MSwxNSBAQCBwcml2YXRlOgogICAgIC8vIGFi
b3V0IHRoZXNlIHZhbHVlcy4KICAgICBkb3VibGUgbV9wYXVzZVRpbWU7CiAgICAgZG91YmxlIG1f
dG90YWxQYXVzZWRUaW1lOworCisgICAgLy8gQW5pbWF0aW9ucyBsZWFkIGR1YWwgbGl2ZXMuIEFu
IGFjdGl2ZSBhbmltYXRpb24gd2lsbCBiZSBjb25jZXB0dWFsbHkgb3duZWQgYnkKKyAgICAvLyB0
d28gY29udHJvbGxlcnMsIG9uZSBvbiB0aGUgaW1wbCB0aHJlYWQgYW5kIG9uZSBvbiB0aGUgbWFp
bi4gSW4gcmVhbGl0eSwgdGhlcmUKKyAgICAvLyB3aWxsIGJlIHR3byBzZXBhcmF0ZSBDQ0FjdGl2
ZUFuaW1hdGlvbiBpbnN0YW5jZXMgZm9yIHRoZSBzYW1lIGFuaW1hdGlvbi4gVGhleQorICAgIC8v
IHdpbGwgaGF2ZSB0aGUgc2FtZSBncm91cCBpZCBhbmQgdGhlIHNhbWUgdGFyZ2V0IHByb3BlcnR5
ICh0aGVzZSB0d28gdmFsdWVzCisgICAgLy8gdW5pcXVlbHkgaWRlbnRpZnkgYW4gYW5pbWF0aW9u
KS4gVGhlIGluc3RhbmNlIG9uIHRoZSBpbXBsIHRocmVhZCBpcyB0aGUgaW5zdGFuY2UKKyAgICAv
LyB0aGF0IHVsdGltYXRlbHkgY29udHJvbHMgdGhlIHZhbHVlcyBvZiB0aGUgYW5pbWF0aW5nIGxh
eWVyIGFuZCBzbyB3ZSB3aWxsIHJlZmVyCisgICAgLy8gdG8gaXQgYXMgdGhlICdjb250cm9sbGlu
ZyBpbnN0YW5jZScuCisgICAgYm9vbCBtX2lzQ29udHJvbGxpbmdJbnN0YW5jZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRp
b25Db250cm9sbGVyLmNwcAppbmRleCBiZDNlNmU2MGM2MWFlYjdjMWYyYjE4YWFjODE5OGE5ZmNi
MGExMzY3Li4yZDMyZTg2MzM5MmJmZWVkNjAxZDhmMjI1NzAxZWE2MmM5MjA3Y2NhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0yMDAs
MTEgKzIwMCwxMSBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5p
bWF0aW9uc1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9uQwogICAgICAgICBpZiAoIW1fYWN0
aXZlQW5pbWF0aW9uc1tpXS0+bmVlZHNTeW5jaHJvbml6ZWRTdGFydFRpbWUoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCi0gICAgICAgIE93blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gdG9BZGQo
bV9hY3RpdmVBbmltYXRpb25zW2ldLT5jbG9uZUZvckltcGxUaHJlYWQoKSk7Ci0gICAgICAgIEFT
U0VSVCghdG9BZGQtPm5lZWRzU3luY2hyb25pemVkU3RhcnRUaW1lKCkpOwogICAgICAgICAvLyBU
aGUgbmV3IGFuaW1hdGlvbiBzaG91bGQgYmUgc2V0IHRvIHJ1biBhcyBzb29uIGFzIHBvc3NpYmxl
LgotICAgICAgICB0b0FkZC0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdG
b3JUYXJnZXRBdmFpbGFiaWxpdHksIDApOwotICAgICAgICB0b0FkZC0+c2V0U3RhcnRUaW1lKDAp
OworICAgICAgICBDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVuU3RhdGUgaW5pdGlhbFJ1blN0YXRlID0g
Q0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHk7CisgICAgICAg
IGRvdWJsZSBzdGFydFRpbWUgPSAwOworICAgICAgICBPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+
IHRvQWRkKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+Y2xvbmVBbmRJbml0aWFsaXplKENDQWN0aXZl
QW5pbWF0aW9uOjpGb3JJbXBsVGhyZWFkLCBpbml0aWFsUnVuU3RhdGUsIHN0YXJ0VGltZSkpOwor
ICAgICAgICBBU1NFUlQoIXRvQWRkLT5uZWVkc1N5bmNocm9uaXplZFN0YXJ0VGltZSgpKTsKICAg
ICAgICAgY29udHJvbGxlckltcGwtPmFkZEFuaW1hdGlvbih0b0FkZC5yZWxlYXNlKCkpOwogICAg
IH0KIH0KQEAgLTMyNCw3ICszMjQsNiBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVy
OjpyZXNvbHZlQ29uZmxpY3RzKGRvdWJsZSBtb25vdG9uaWNUaW1lKQogICAgIH0KIH0KIAotCiB2
b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjptYXJrQW5pbWF0aW9uc0ZvckRlbGV0aW9u
KGRvdWJsZSBtb25vdG9uaWNUaW1lLCBDQ0FuaW1hdGlvbkV2ZW50c1ZlY3RvciogZXZlbnRzKQog
ewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsg
aSsrKSB7CkBAIC0zNjksMTMgKzM2OCwxNiBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9s
bGVyOjpyZXBsYWNlSW1wbFRocmVhZEFuaW1hdGlvbnMoQ0NMYXllckFuaW1hdGlvbkNvbgogewog
ICAgIGNvbnRyb2xsZXJJbXBsLT5tX2FjdGl2ZUFuaW1hdGlvbnMuY2xlYXIoKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7ICsraSkgewotICAg
ICAgICBPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IHRvQWRkKG1fYWN0aXZlQW5pbWF0aW9uc1tp
XS0+Y2xvbmVGb3JJbXBsVGhyZWFkKCkpOworICAgICAgICBPd25QdHI8Q0NBY3RpdmVBbmltYXRp
b24+IHRvQWRkOwogICAgICAgICBpZiAobV9hY3RpdmVBbmltYXRpb25zW2ldLT5uZWVkc1N5bmNo
cm9uaXplZFN0YXJ0VGltZSgpKSB7CiAgICAgICAgICAgICAvLyBXZSBoYXZlbid0IHJlY2VpdmVk
IGFuIGFuaW1hdGlvbiBzdGFydGVkIG5vdGlmaWNhdGlvbiB5ZXQsIHNvIGl0CiAgICAgICAgICAg
ICAvLyBpcyBpbXBvcnRhbnQgdGhhdCB3ZSBhZGQgaXQgaW4gYSAnd2FpdGluZycgYW5kIG5vdCAn
cnVubmluZycgc3RhdGUuCi0gICAgICAgICAgICB0b0FkZC0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVB
bmltYXRpb246OldhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHksIDApOwotICAgICAgICAgICAg
dG9BZGQtPnNldFN0YXJ0VGltZSgwKTsKLSAgICAgICAgfQorICAgICAgICAgICAgQ0NBY3RpdmVB
bmltYXRpb246OlJ1blN0YXRlIGluaXRpYWxSdW5TdGF0ZSA9IENDQWN0aXZlQW5pbWF0aW9uOjpX
YWl0aW5nRm9yVGFyZ2V0QXZhaWxhYmlsaXR5OworICAgICAgICAgICAgZG91YmxlIHN0YXJ0VGlt
ZSA9IDA7CisgICAgICAgICAgICB0b0FkZCA9IG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+Y2xvbmVB
bmRJbml0aWFsaXplKENDQWN0aXZlQW5pbWF0aW9uOjpGb3JJbXBsVGhyZWFkLCBpbml0aWFsUnVu
U3RhdGUsIHN0YXJ0VGltZSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdG9BZGQgPSBt
X2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmNsb25lKENDQWN0aXZlQW5pbWF0aW9uOjpGb3JJbXBsVGhy
ZWFkKTsKKwogICAgICAgICBjb250cm9sbGVySW1wbC0+YWRkQW5pbWF0aW9uKHRvQWRkLnJlbGVh
c2UoKSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViQW5pbWF0aW9uSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBbmlt
YXRpb25JbXBsLmNwcAppbmRleCAzZDNiNzAyZDgxNjQ3ODU5ZjZiNWIwMDNhNTZiY2VhNzYwZmI4
OGY3Li45OTU3NjVkMjQ4YTAzZmI2ZmI1OTdkMzQ3OTgzYzA4MWU0MTFhMTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBbmltYXRpb25JbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBbmltYXRpb25JbXBsLmNwcApAQCAtOTYsNyAr
OTYsNyBAQCB2b2lkIFdlYkFuaW1hdGlvbkltcGw6OnNldEFsdGVybmF0ZXNEaXJlY3Rpb24oYm9v
bCBhbHRlcm5hdGVzKQogCiBQYXNzT3duUHRyPFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uPiBX
ZWJBbmltYXRpb25JbXBsOjpjbG9uZVRvQ0NBbmltYXRpb24oKQogewotICAgIE93blB0cjxXZWJD
b3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbj4gdG9SZXR1cm4obV9hbmltYXRpb24tPmNsb25lRm9ySW1w
bFRocmVhZCgpKTsKKyAgICBPd25QdHI8V2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb24+IHRvUmV0
dXJuKG1fYW5pbWF0aW9uLT5jbG9uZShXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6Rm9yTWFp
blRocmVhZCkpOwogICAgIHRvUmV0dXJuLT5zZXROZWVkc1N5bmNocm9uaXplZFN0YXJ0VGltZSh0
cnVlKTsKICAgICByZXR1cm4gdG9SZXR1cm4ucmVsZWFzZSgpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158978</attachid>
            <date>2012-08-16 19:17:58 -0700</date>
            <delta_ts>2012-08-20 09:54:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84210-20120816221723.patch</filename>
            <type>text/plain</type>
            <size>13446</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1ODMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDllZGQ0ZTlmODIxMDRj
YTJhMTc1MDY5ODFiN2Q0MmViOTcxZWY5YS4uNTEyYmUzMWE0NmU2ODNmM2MwYTJmMzFhZTA3NDBk
Y2MwODA5ZDBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA4LTE2ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHRyYWNpbmcgZm9yIGFjdGl2ZSBjb21wb3NpdGVkIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MjEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBpc3N1ZXMgdGhlIHRy
YWNlIGV2ZW50cyBmcm9tIHRoZSBhbmltYXRpb25zLiBBbmltYXRpb25zIHdpbGwKKyAgICAgICAg
cmVwb3J0IHdoZW4gdGhleSBzdGFydCBhbmQgZmluaXNoIG9uIHRoZSBtYWluIGFuZCBpbXBsIHRo
cmVhZHMgKHZpYQorICAgICAgICBUUkFDRV9FVkVOVF9BU1lOQyopLCBhbmQgYWxzbyBpc3N1ZXMg
aW5zdGFudCB0cmFjZSBldmVudHMgd2hlbmV2ZXIgdGhleQorICAgICAgICBjaGFuZ2Ugc3RhdGUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBvbmx5IGNoYW5nZXMgdHJhY2luZyBiZWhhdmlvci4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjpDQ0FjdGl2ZUFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6fkNDQWN0aXZl
QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjpzZXRSdW5T
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xv
bmVBbmRJbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0FjdGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRp
b246OmlzQ29udHJvbGxpbmdJbnN0YW5jZSk6CisgICAgICAgIChDQ0FjdGl2ZUFuaW1hdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRy
b2xsZXI6OnB1c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZXBsYWNlSW1wbFRocmVhZEFuaW1hdGlvbnMp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnRpY2tBbmlt
YXRpb25zKToKKwogMjAxMi0wOC0xNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNTcxNy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNzkyZjEwNGU2MDhiYTA1MjE2YzkyMDc1NjZjNjEy
MDljZGY5ZDI1Zi4uNzgxOTBhNjFjNDM1NTJjMmUzNDJlYTg4MzVhMGRkMTdkOThmOGYyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOC0xNiAgSWFu
IFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCB0cmFjaW5nIGZvciBhY3RpdmUgY29tcG9zaXRlZCBhbmltYXRpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDIxMAorCisgICAgICAgIFJldmll
d2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXNzdWVzIHRoZSB0
cmFjZSBldmVudHMgZnJvbSB0aGUgYW5pbWF0aW9ucy4gQW5pbWF0aW9ucyB3aWxsCisgICAgICAg
IHJlcG9ydCB3aGVuIHRoZXkgc3RhcnQgYW5kIGZpbmlzaCBvbiB0aGUgbWFpbiBhbmQgaW1wbCB0
aHJlYWRzICh2aWEKKyAgICAgICAgVFJBQ0VfRVZFTlRfQVNZTkMqKSwgYW5kIGFsc28gaXNzdWVz
IGluc3RhbnQgdHJhY2UgZXZlbnRzIHdoZW5ldmVyIHRoZXkKKyAgICAgICAgY2hhbmdlIHN0YXRl
LgorCisgICAgICAgICogc3JjL1dlYkFuaW1hdGlvbkltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJBbmltYXRpb25JbXBsOjpjbG9uZVRvQ0NBbmltYXRpb24pOgorCiAyMDEyLTA4LTE2ICBB
bGV4YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1d
IFJlcGxhY2UgZGVzdFJlY3Qgd2l0aCBkZXN0T2Zmc2V0IGluIHRleHR1cmUgdXBsb2FkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Fj
dGl2ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAKaW5kZXggZmY2ZTczMzk4Zjc3YmMzN2RhNmY5
MTBkNzUxMjY3NzU5YTgwMjU2ZS4uYTQxOThkM2MwM2VjNzc0NWFlM2JkNmQwNzNlM2MyZmQzMjYz
ZjE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcApAQCAtMjYsMTAgKzI2
LDM5IEBACiAKICNpbmNsdWRlICJjYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oIgogCisjaW5jbHVkZSAi
VHJhY2VFdmVudC5oIgogI2luY2x1ZGUgImNjL0NDQW5pbWF0aW9uQ3VydmUuaCIKKyNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogI2lu
Y2x1ZGUgPGNtYXRoPgogCituYW1lc3BhY2UgeworCisvLyBUaGlzIHNob3VsZCBtYXRjaCB0aGUg
UnVuU3RhdGUgZW51bS4KK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBzX3J1blN0YXRlTmFtZXNb
XSA9IHsKKyAgICAiV2FpdGluZ0Zvck5leHRUaWNrIiwKKyAgICAiV2FpdGluZ0ZvclRhcmdldEF2
YWlsYWJpbGl0eSIsCisgICAgIldhaXRpbmdGb3JTdGFydFRpbWUiLAorICAgICJXYWl0aW5nRm9y
RGVsZXRpb24iLAorICAgICJSdW5uaW5nIiwKKyAgICAiUGF1c2VkIiwKKyAgICAiRmluaXNoZWQi
LAorICAgICJBYm9ydGVkIgorfTsKKworQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihX
ZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVuU3RhdGVFbnVtU2l6ZSkgPT0gV1RGX0FSUkFZ
X0xFTkdUSChzX3J1blN0YXRlTmFtZXMpLCBSdW5TdGF0ZV9uYW1lc19tYXRjaF9lbnVtKTsKKwor
Ly8gVGhpcyBzaG91bGQgbWF0Y2ggdGhlIFRhcmdldFByb3BlcnR5IGVudW0uCitzdGF0aWMgY29u
c3QgY2hhciogY29uc3Qgc190YXJnZXRQcm9wZXJ0eU5hbWVzW10gPSB7CisgICAgIlRyYW5zZm9y
bSIsCisgICAgIk9wYWNpdHkiCit9OworCitDT01QSUxFX0FTU0VSVChzdGF0aWNfY2FzdDxpbnQ+
KFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjpUYXJnZXRQcm9wZXJ0eUVudW1TaXplKSA9PSBX
VEZfQVJSQVlfTEVOR1RIKHNfdGFyZ2V0UHJvcGVydHlOYW1lcyksIFRhcmdldFByb3BlcnR5X25h
bWVzX21hdGNoX2VudW0pOworCit9IC8vIG5hbWVzcGFjZQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IENDQWN0aXZlQW5pbWF0aW9uOjpjcmVh
dGUoUGFzc093blB0cjxDQ0FuaW1hdGlvbkN1cnZlPiBjdXJ2ZSwgaW50IGFuaW1hdGlvbklkLCBp
bnQgZ3JvdXBJZCwgVGFyZ2V0UHJvcGVydHkgdGFyZ2V0UHJvcGVydHkpCkBAIC01MSwxMSArODAs
MTQgQEAgQ0NBY3RpdmVBbmltYXRpb246OkNDQWN0aXZlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NB
bmltYXRpb25DdXJ2ZT4gY3VydmUsIGludCBhbmkKICAgICAsIG1fc3VzcGVuZGVkKGZhbHNlKQog
ICAgICwgbV9wYXVzZVRpbWUoMCkKICAgICAsIG1fdG90YWxQYXVzZWRUaW1lKDApCisgICAgLCBt
X2lzQ29udHJvbGxpbmdJbnN0YW5jZShmYWxzZSkKIHsKIH0KIAogQ0NBY3RpdmVBbmltYXRpb246
On5DQ0FjdGl2ZUFuaW1hdGlvbigpCiB7CisgICAgaWYgKG1fcnVuU3RhdGUgPT0gUnVubmluZyB8
fCBtX3J1blN0YXRlID09IFBhdXNlZCkKKyAgICAgICAgc2V0UnVuU3RhdGUoQWJvcnRlZCwgMCk7
CiB9CiAKIHZvaWQgQ0NBY3RpdmVBbmltYXRpb246OnNldFJ1blN0YXRlKFJ1blN0YXRlIHJ1blN0
YXRlLCBkb3VibGUgbW9ub3RvbmljVGltZSkKQEAgLTYzLDExICs5NSwzNSBAQCB2b2lkIENDQWN0
aXZlQW5pbWF0aW9uOjpzZXRSdW5TdGF0ZShSdW5TdGF0ZSBydW5TdGF0ZSwgZG91YmxlIG1vbm90
b25pY1RpbWUpCiAgICAgaWYgKG1fc3VzcGVuZGVkKQogICAgICAgICByZXR1cm47CiAKKyAgICBj
aGFyIG5hbWVCdWZmZXJbMjU2XTsKKyAgICBzbnByaW50ZihuYW1lQnVmZmVyLCBzaXplb2YobmFt
ZUJ1ZmZlciksICIlcy0lZCVzIiwgc190YXJnZXRQcm9wZXJ0eU5hbWVzW21fdGFyZ2V0UHJvcGVy
dHldLCBtX2dyb3VwLCBtX2lzQ29udHJvbGxpbmdJbnN0YW5jZSA/ICIoaW1wbCkiIDogIiIpOwor
CisgICAgYm9vbCBpc1dhaXRpbmdUb1N0YXJ0ID0gbV9ydW5TdGF0ZSA9PSBXYWl0aW5nRm9yTmV4
dFRpY2sKKyAgICAgICAgfHwgbV9ydW5TdGF0ZSA9PSBXYWl0aW5nRm9yVGFyZ2V0QXZhaWxhYmls
aXR5CisgICAgICAgIHx8IG1fcnVuU3RhdGUgPT0gV2FpdGluZ0ZvclN0YXJ0VGltZTsKKworICAg
IGlmIChpc1dhaXRpbmdUb1N0YXJ0ICYmIHJ1blN0YXRlID09IFJ1bm5pbmcpCisgICAgICAgIFRS
QUNFX0VWRU5UX0FTWU5DX0JFR0lOMSgiY2MiLCAiQ0NBY3RpdmVBbmltYXRpb24iLCB0aGlzLCAi
TmFtZSIsIFRSQUNFX1NUUl9DT1BZKG5hbWVCdWZmZXIpKTsKKworICAgIGJvb2wgd2FzRmluaXNo
ZWQgPSBpc0ZpbmlzaGVkKCk7CisKKyAgICBjb25zdCBjaGFyKiBvbGRSdW5TdGF0ZU5hbWUgPSBz
X3J1blN0YXRlTmFtZXNbbV9ydW5TdGF0ZV07CisKICAgICBpZiAocnVuU3RhdGUgPT0gUnVubmlu
ZyAmJiBtX3J1blN0YXRlID09IFBhdXNlZCkKICAgICAgICAgbV90b3RhbFBhdXNlZFRpbWUgKz0g
bW9ub3RvbmljVGltZSAtIG1fcGF1c2VUaW1lOwogICAgIGVsc2UgaWYgKHJ1blN0YXRlID09IFBh
dXNlZCkKICAgICAgICAgbV9wYXVzZVRpbWUgPSBtb25vdG9uaWNUaW1lOwogICAgIG1fcnVuU3Rh
dGUgPSBydW5TdGF0ZTsKKworICAgIGNvbnN0IGNoYXIqIG5ld1J1blN0YXRlTmFtZSA9IHNfcnVu
U3RhdGVOYW1lc1tydW5TdGF0ZV07CisKKyAgICBpZiAoIXdhc0ZpbmlzaGVkICYmIGlzRmluaXNo
ZWQoKSkKKyAgICAgICAgVFJBQ0VfRVZFTlRfQVNZTkNfRU5EMCgiY2MiLCAiQ0NBY3RpdmVBbmlt
YXRpb24iLCB0aGlzKTsKKworICAgIGNoYXIgc3RhdGVCdWZmZXJbMjU2XTsKKyAgICBzbnByaW50
ZihzdGF0ZUJ1ZmZlciwgc2l6ZW9mKHN0YXRlQnVmZmVyKSwgIiVzLT4lcyIsIG9sZFJ1blN0YXRl
TmFtZSwgbmV3UnVuU3RhdGVOYW1lKTsKKworICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQyKCJjYyIs
ICJDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6c2V0UnVuU3RhdGUiLCAiTmFtZSIsIFRSQUNF
X1NUUl9DT1BZKG5hbWVCdWZmZXIpLCAiU3RhdGUiLCBUUkFDRV9TVFJfQ09QWShzdGF0ZUJ1ZmZl
cikpOwogfQogCiB2b2lkIENDQWN0aXZlQW5pbWF0aW9uOjpzdXNwZW5kKGRvdWJsZSBtb25vdG9u
aWNUaW1lKQpAQCAtMTM5LDE2ICsxOTUsMjIgQEAgZG91YmxlIENDQWN0aXZlQW5pbWF0aW9uOjp0
cmltVGltZVRvQ3VycmVudEl0ZXJhdGlvbihkb3VibGUgbW9ub3RvbmljVGltZSkgY29uc3QKICAg
ICByZXR1cm4gdHJpbW1lZDsKIH0KIAotUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gQ0NB
Y3RpdmVBbmltYXRpb246OmNsb25lRm9ySW1wbFRocmVhZCgpIGNvbnN0CitQYXNzT3duUHRyPEND
QWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmUoSW5zdGFuY2VUeXBlIGlu
c3RhbmNlVHlwZSkgY29uc3QKK3sKKyAgICByZXR1cm4gY2xvbmVBbmRJbml0aWFsaXplKGluc3Rh
bmNlVHlwZSwgbV9ydW5TdGF0ZSwgbV9zdGFydFRpbWUpOworfQorCitQYXNzT3duUHRyPENDQWN0
aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmVBbmRJbml0aWFsaXplKEluc3Rh
bmNlVHlwZSBpbnN0YW5jZVR5cGUsIFJ1blN0YXRlIGluaXRpYWxSdW5TdGF0ZSwgZG91YmxlIHN0
YXJ0VGltZSkgY29uc3QKIHsKICAgICBPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IHRvUmV0dXJu
KGFkb3B0UHRyKG5ldyBDQ0FjdGl2ZUFuaW1hdGlvbihtX2N1cnZlLT5jbG9uZSgpLCBtX2lkLCBt
X2dyb3VwLCBtX3RhcmdldFByb3BlcnR5KSkpOwotICAgIHRvUmV0dXJuLT5tX3J1blN0YXRlID0g
bV9ydW5TdGF0ZTsKKyAgICB0b1JldHVybi0+bV9ydW5TdGF0ZSA9IGluaXRpYWxSdW5TdGF0ZTsK
ICAgICB0b1JldHVybi0+bV9pdGVyYXRpb25zID0gbV9pdGVyYXRpb25zOwotICAgIHRvUmV0dXJu
LT5tX3N0YXJ0VGltZSA9IG1fc3RhcnRUaW1lOworICAgIHRvUmV0dXJuLT5tX3N0YXJ0VGltZSA9
IHN0YXJ0VGltZTsKICAgICB0b1JldHVybi0+bV9wYXVzZVRpbWUgPSBtX3BhdXNlVGltZTsKICAg
ICB0b1JldHVybi0+bV90b3RhbFBhdXNlZFRpbWUgPSBtX3RvdGFsUGF1c2VkVGltZTsKICAgICB0
b1JldHVybi0+bV90aW1lT2Zmc2V0ID0gbV90aW1lT2Zmc2V0OwogICAgIHRvUmV0dXJuLT5tX2Fs
dGVybmF0ZXNEaXJlY3Rpb24gPSBtX2FsdGVybmF0ZXNEaXJlY3Rpb247CisgICAgdG9SZXR1cm4t
Pm1faXNDb250cm9sbGluZ0luc3RhbmNlID0gaW5zdGFuY2VUeXBlID09IENvbnRyb2xsaW5nSW5z
dGFuY2U7CiAgICAgcmV0dXJuIHRvUmV0dXJuLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmlt
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
QWN0aXZlQW5pbWF0aW9uLmgKaW5kZXggMWFjNzJlMTgzZmFmMzc3M2Y5OGJjMDZhYWZkNThiNDUy
MDExNmMwZS4uZWE0ZTM0ZjJlZTZhZjFlMWMzOGZlMTU2NTNjZjRhNmU3ODlmODVlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3Rp
dmVBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCkBAIC01NiwxMiArNTYsMTYgQEAgcHVibGljOgog
ICAgICAgICBSdW5uaW5nLAogICAgICAgICBQYXVzZWQsCiAgICAgICAgIEZpbmlzaGVkLAotICAg
ICAgICBBYm9ydGVkCisgICAgICAgIEFib3J0ZWQsCisgICAgICAgIC8vIFRoaXMgc2VudGluZWwg
bXVzdCBiZSBsYXN0LgorICAgICAgICBSdW5TdGF0ZUVudW1TaXplCiAgICAgfTsKIAogICAgIGVu
dW0gVGFyZ2V0UHJvcGVydHkgewogICAgICAgICBUcmFuc2Zvcm0gPSAwLAotICAgICAgICBPcGFj
aXR5CisgICAgICAgIE9wYWNpdHksCisgICAgICAgIC8vIFRoaXMgc2VudGluZWwgbXVzdCBiZSBs
YXN0LgorICAgICAgICBUYXJnZXRQcm9wZXJ0eUVudW1TaXplCiAgICAgfTsKIAogICAgIHN0YXRp
YyBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBjcmVhdGUoUGFzc093blB0cjxDQ0FuaW1h
dGlvbkN1cnZlPiwgaW50IGFuaW1hdGlvbklkLCBpbnQgZ3JvdXBJZCwgVGFyZ2V0UHJvcGVydHkp
OwpAQCAtMTEyLDcgKzExNiwxNCBAQCBwdWJsaWM6CiAgICAgLy8gb2YgaXRlcmF0aW9ucywgcmV0
dXJucyB0aGUgcmVsYXRpdmUgdGltZSBpbiB0aGUgY3VycmVudCBpdGVyYXRpb24uCiAgICAgZG91
YmxlIHRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKGRvdWJsZSBtb25vdG9uaWNUaW1lKSBjb25z
dDsKIAotICAgIFBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGNsb25lRm9ySW1wbFRocmVh
ZCgpIGNvbnN0OworICAgIGVudW0gSW5zdGFuY2VUeXBlIHsKKyAgICAgICAgQ29udHJvbGxpbmdJ
bnN0YW5jZSA9IDAsCisgICAgICAgIE5vbkNvbnRyb2xsaW5nSW5zdGFuY2UKKyAgICB9OworCisg
ICAgUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gY2xvbmUoSW5zdGFuY2VUeXBlKSBjb25z
dDsKKyAgICBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBjbG9uZUFuZEluaXRpYWxpemUo
SW5zdGFuY2VUeXBlLCBSdW5TdGF0ZSBpbml0aWFsUnVuU3RhdGUsIGRvdWJsZSBzdGFydFRpbWUp
IGNvbnN0OworICAgIGJvb2wgaXNDb250cm9sbGluZ0luc3RhbmNlKCkgY29uc3QgeyByZXR1cm4g
bV9pc0NvbnRyb2xsaW5nSW5zdGFuY2U7IH0KIAogICAgIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhD
Q0FjdGl2ZUFuaW1hdGlvbiopIGNvbnN0OwogCkBAIC0xNTQsNiArMTY1LDE1IEBAIHByaXZhdGU6
CiAgICAgLy8gYWJvdXQgdGhlc2UgdmFsdWVzLgogICAgIGRvdWJsZSBtX3BhdXNlVGltZTsKICAg
ICBkb3VibGUgbV90b3RhbFBhdXNlZFRpbWU7CisKKyAgICAvLyBBbmltYXRpb25zIGxlYWQgZHVh
bCBsaXZlcy4gQW4gYWN0aXZlIGFuaW1hdGlvbiB3aWxsIGJlIGNvbmNlcHR1YWxseSBvd25lZCBi
eQorICAgIC8vIHR3byBjb250cm9sbGVycywgb25lIG9uIHRoZSBpbXBsIHRocmVhZCBhbmQgb25l
IG9uIHRoZSBtYWluLiBJbiByZWFsaXR5LCB0aGVyZQorICAgIC8vIHdpbGwgYmUgdHdvIHNlcGFy
YXRlIENDQWN0aXZlQW5pbWF0aW9uIGluc3RhbmNlcyBmb3IgdGhlIHNhbWUgYW5pbWF0aW9uLiBU
aGV5CisgICAgLy8gd2lsbCBoYXZlIHRoZSBzYW1lIGdyb3VwIGlkIGFuZCB0aGUgc2FtZSB0YXJn
ZXQgcHJvcGVydHkgKHRoZXNlIHR3byB2YWx1ZXMKKyAgICAvLyB1bmlxdWVseSBpZGVudGlmeSBh
biBhbmltYXRpb24pLiBUaGUgaW5zdGFuY2Ugb24gdGhlIGltcGwgdGhyZWFkIGlzIHRoZSBpbnN0
YW5jZQorICAgIC8vIHRoYXQgdWx0aW1hdGVseSBjb250cm9scyB0aGUgdmFsdWVzIG9mIHRoZSBh
bmltYXRpbmcgbGF5ZXIgYW5kIHNvIHdlIHdpbGwgcmVmZXIKKyAgICAvLyB0byBpdCBhcyB0aGUg
J2NvbnRyb2xsaW5nIGluc3RhbmNlJy4KKyAgICBib29sIG1faXNDb250cm9sbGluZ0luc3RhbmNl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGJkM2U2ZTYwYzYxYWViN2MxZjJiMThh
YWM4MTk4YTlmY2IwYTEzNjcuLjkxNDlmMzFhYTI3MDE0ZTA0NjMwMzJlMWVhNWFlNGYzMGZhYWY0
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKQEAgLTIwMCwxMSArMjAwLDExIEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6
OnB1c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25DCiAgICAgICAg
IGlmICghbV9hY3RpdmVBbmltYXRpb25zW2ldLT5uZWVkc1N5bmNocm9uaXplZFN0YXJ0VGltZSgp
KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgT3duUHRyPENDQWN0aXZlQW5pbWF0
aW9uPiB0b0FkZChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmNsb25lRm9ySW1wbFRocmVhZCgpKTsK
LSAgICAgICAgQVNTRVJUKCF0b0FkZC0+bmVlZHNTeW5jaHJvbml6ZWRTdGFydFRpbWUoKSk7CiAg
ICAgICAgIC8vIFRoZSBuZXcgYW5pbWF0aW9uIHNob3VsZCBiZSBzZXQgdG8gcnVuIGFzIHNvb24g
YXMgcG9zc2libGUuCi0gICAgICAgIHRvQWRkLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlv
bjo6V2FpdGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0eSwgMCk7Ci0gICAgICAgIHRvQWRkLT5zZXRT
dGFydFRpbWUoMCk7CisgICAgICAgIENDQWN0aXZlQW5pbWF0aW9uOjpSdW5TdGF0ZSBpbml0aWFs
UnVuU3RhdGUgPSBDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0
eTsKKyAgICAgICAgZG91YmxlIHN0YXJ0VGltZSA9IDA7CisgICAgICAgIE93blB0cjxDQ0FjdGl2
ZUFuaW1hdGlvbj4gdG9BZGQobV9hY3RpdmVBbmltYXRpb25zW2ldLT5jbG9uZUFuZEluaXRpYWxp
emUoQ0NBY3RpdmVBbmltYXRpb246OkNvbnRyb2xsaW5nSW5zdGFuY2UsIGluaXRpYWxSdW5TdGF0
ZSwgc3RhcnRUaW1lKSk7CisgICAgICAgIEFTU0VSVCghdG9BZGQtPm5lZWRzU3luY2hyb25pemVk
U3RhcnRUaW1lKCkpOwogICAgICAgICBjb250cm9sbGVySW1wbC0+YWRkQW5pbWF0aW9uKHRvQWRk
LnJlbGVhc2UoKSk7CiAgICAgfQogfQpAQCAtMzI0LDcgKzMyNCw2IEBAIHZvaWQgQ0NMYXllckFu
aW1hdGlvbkNvbnRyb2xsZXI6OnJlc29sdmVDb25mbGljdHMoZG91YmxlIG1vbm90b25pY1RpbWUp
CiAgICAgfQogfQogCi0KIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6Om1hcmtBbmlt
YXRpb25zRm9yRGVsZXRpb24oZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZlbnRz
VmVjdG9yKiBldmVudHMpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFu
aW1hdGlvbnMuc2l6ZSgpOyBpKyspIHsKQEAgLTM2OSwxMyArMzY4LDE2IEBAIHZvaWQgQ0NMYXll
ckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlcGxhY2VJbXBsVGhyZWFkQW5pbWF0aW9ucyhDQ0xheWVy
QW5pbWF0aW9uQ29uCiB7CiAgICAgY29udHJvbGxlckltcGwtPm1fYWN0aXZlQW5pbWF0aW9ucy5j
bGVhcigpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNp
emUoKTsgKytpKSB7Ci0gICAgICAgIE93blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gdG9BZGQobV9h
Y3RpdmVBbmltYXRpb25zW2ldLT5jbG9uZUZvckltcGxUaHJlYWQoKSk7CisgICAgICAgIE93blB0
cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gdG9BZGQ7CiAgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlv
bnNbaV0tPm5lZWRzU3luY2hyb25pemVkU3RhcnRUaW1lKCkpIHsKICAgICAgICAgICAgIC8vIFdl
IGhhdmVuJ3QgcmVjZWl2ZWQgYW4gYW5pbWF0aW9uIHN0YXJ0ZWQgbm90aWZpY2F0aW9uIHlldCwg
c28gaXQKICAgICAgICAgICAgIC8vIGlzIGltcG9ydGFudCB0aGF0IHdlIGFkZCBpdCBpbiBhICd3
YWl0aW5nJyBhbmQgbm90ICdydW5uaW5nJyBzdGF0ZS4KLSAgICAgICAgICAgIHRvQWRkLT5zZXRS
dW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0eSwg
MCk7Ci0gICAgICAgICAgICB0b0FkZC0+c2V0U3RhcnRUaW1lKDApOwotICAgICAgICB9CisgICAg
ICAgICAgICBDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVuU3RhdGUgaW5pdGlhbFJ1blN0YXRlID0gQ0NB
Y3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHk7CisgICAgICAgICAg
ICBkb3VibGUgc3RhcnRUaW1lID0gMDsKKyAgICAgICAgICAgIHRvQWRkID0gbV9hY3RpdmVBbmlt
YXRpb25zW2ldLT5jbG9uZUFuZEluaXRpYWxpemUoQ0NBY3RpdmVBbmltYXRpb246OkNvbnRyb2xs
aW5nSW5zdGFuY2UsIGluaXRpYWxSdW5TdGF0ZSwgc3RhcnRUaW1lKTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICB0b0FkZCA9IG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+Y2xvbmUoQ0NBY3Rp
dmVBbmltYXRpb246OkNvbnRyb2xsaW5nSW5zdGFuY2UpOworCiAgICAgICAgIGNvbnRyb2xsZXJJ
bXBsLT5hZGRBbmltYXRpb24odG9BZGQucmVsZWFzZSgpKTsKICAgICB9CiB9CkBAIC00MTMsNiAr
NDE1LDEwIEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnRpY2tBbmltYXRpb25z
KGRvdWJsZSBtb25vdG9uaWNUaW1lKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogCisgICAgICAgICAgICAvLyBEbyBub3RoaW5nIGZvciBzZW50aW5lbCB2YWx1ZS4KKyAg
ICAgICAgICAgIGNhc2UgQ0NBY3RpdmVBbmltYXRpb246OlRhcmdldFByb3BlcnR5RW51bVNpemU6
CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkFuaW1hdGlvbkltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQW5p
bWF0aW9uSW1wbC5jcHAKaW5kZXggM2QzYjcwMmQ4MTY0Nzg1OWY2YjViMDAzYTU2YmNlYTc2MGZi
ODhmNy4uZGFlZGY5MDlhYTdhODIwMzA3NTk0MGMzMTE5NzIxMzI1YjdkYzZhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQW5pbWF0aW9uSW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQW5pbWF0aW9uSW1wbC5jcHAKQEAgLTk2LDcg
Kzk2LDcgQEAgdm9pZCBXZWJBbmltYXRpb25JbXBsOjpzZXRBbHRlcm5hdGVzRGlyZWN0aW9uKGJv
b2wgYWx0ZXJuYXRlcykKIAogUGFzc093blB0cjxXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbj4g
V2ViQW5pbWF0aW9uSW1wbDo6Y2xvbmVUb0NDQW5pbWF0aW9uKCkKIHsKLSAgICBPd25QdHI8V2Vi
Q29yZTo6Q0NBY3RpdmVBbmltYXRpb24+IHRvUmV0dXJuKG1fYW5pbWF0aW9uLT5jbG9uZUZvcklt
cGxUaHJlYWQoKSk7CisgICAgT3duUHRyPFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uPiB0b1Jl
dHVybihtX2FuaW1hdGlvbi0+Y2xvbmUoV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb246Ok5vbkNv
bnRyb2xsaW5nSW5zdGFuY2UpKTsKICAgICB0b1JldHVybi0+c2V0TmVlZHNTeW5jaHJvbml6ZWRT
dGFydFRpbWUodHJ1ZSk7CiAgICAgcmV0dXJuIHRvUmV0dXJuLnJlbGVhc2UoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159458</attachid>
            <date>2012-08-20 09:54:52 -0700</date>
            <delta_ts>2012-08-20 11:22:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84210-20120820125413.patch</filename>
            <type>text/plain</type>
            <size>13981</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY4OTBlNTI4ZGI2ZmM5
Y2ZkNzJhMzc0ZTVlZjM0MmY5MTdjMDFlZS4uNDFmNzgwZDgxNDMzMDVhYTVlZjE5YmU0N2Y1ZWQz
ZTlkNDNlNTYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA4LTIwICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHRyYWNpbmcgZm9yIGFjdGl2ZSBjb21wb3NpdGVkIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MjEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBpc3N1ZXMgdGhlIHRy
YWNlIGV2ZW50cyBmcm9tIHRoZSBhbmltYXRpb25zLiBBbmltYXRpb25zIHdpbGwKKyAgICAgICAg
cmVwb3J0IHdoZW4gdGhleSBzdGFydCBhbmQgZmluaXNoIG9uIHRoZSBtYWluIGFuZCBpbXBsIHRo
cmVhZHMgKHZpYQorICAgICAgICBUUkFDRV9FVkVOVF9BU1lOQyopLCBhbmQgYWxzbyBpc3N1ZXMg
aW5zdGFudCB0cmFjZSBldmVudHMgd2hlbmV2ZXIgdGhleQorICAgICAgICBjaGFuZ2Ugc3RhdGUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBvbmx5IGNoYW5nZXMgdHJhY2luZyBiZWhhdmlvci4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjpDQ0FjdGl2ZUFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6fkNDQWN0aXZl
QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjpzZXRSdW5T
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xv
bmVBbmRJbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0FjdGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRp
b246OmlzQ29udHJvbGxpbmdJbnN0YW5jZSk6CisgICAgICAgIChDQ0FjdGl2ZUFuaW1hdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRy
b2xsZXI6OnB1c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZXBsYWNlSW1wbFRocmVhZEFuaW1hdGlvbnMp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnRpY2tBbmlt
YXRpb25zKToKKwogMjAxMi0wOC0yMCAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIENvbnZlcnQgc2NyZWVuIHNwYWNlIHNjcm9sbCBn
ZXN0dXJlcyB0byBsYXllciBzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkNmJm
NjUzNGE3Y2U1YjNhYWU5M2FkZmI0ZGE4NWJhZDAxYjM0Nzc2Li45M2I5NDdiODFkNWUxYjUxYzAx
YzQ1ZWFhNjlhZTU5OTE1YzY4MDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDEyLTA4LTIwICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHRyYWNpbmcgZm9yIGFjdGl2ZSBjb21wb3NpdGVk
IGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg0MjEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpc3N1ZXMgdGhlIHRyYWNlIGV2ZW50cyBmcm9tIHRoZSBhbmltYXRpb25z
LiBBbmltYXRpb25zIHdpbGwKKyAgICAgICAgcmVwb3J0IHdoZW4gdGhleSBzdGFydCBhbmQgZmlu
aXNoIG9uIHRoZSBtYWluIGFuZCBpbXBsIHRocmVhZHMgKHZpYQorICAgICAgICBUUkFDRV9FVkVO
VF9BU1lOQyopLCBhbmQgYWxzbyBpc3N1ZXMgaW5zdGFudCB0cmFjZSBldmVudHMgd2hlbmV2ZXIg
dGhleQorICAgICAgICBjaGFuZ2Ugc3RhdGUuCisKKyAgICAgICAgKiBzcmMvV2ViQW5pbWF0aW9u
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkFuaW1hdGlvbkltcGw6OmNsb25lVG9DQ0Fu
aW1hdGlvbik6CisgICAgICAgICogdGVzdHMvQ0NBbmltYXRpb25UZXN0Q29tbW9uLmg6CisKIDIw
MTItMDgtMjAgIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBDb252ZXJ0IHNjcmVlbiBzcGFjZSBzY3JvbGwgZ2VzdHVyZXMgdG8gbGF5
ZXIgc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcAppbmRleCAzMWYzM2Fh
MjQ3NGE4MzgwYTQyODY1MDUzZjVjMWVhMGNmNDUxZjE5Li42OGZlNDVhNzNjZTJlNjllMzdkMzlj
ZDI5YjFkZDIyNTMzMWI2NGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3Bw
CkBAIC0yNyw3ICsyNywzNyBAQAogI2luY2x1ZGUgIkNDQWN0aXZlQW5pbWF0aW9uLmgiCiAKICNp
bmNsdWRlICJDQ0FuaW1hdGlvbkN1cnZlLmgiCisjaW5jbHVkZSAiVHJhY2VFdmVudC5oIgogI2lu
Y2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KKworbmFtZXNw
YWNlIHsKKworLy8gVGhpcyBzaG91bGQgbWF0Y2ggdGhlIFJ1blN0YXRlIGVudW0uCitzdGF0aWMg
Y29uc3QgY2hhciogY29uc3Qgc19ydW5TdGF0ZU5hbWVzW10gPSB7CisgICAgIldhaXRpbmdGb3JO
ZXh0VGljayIsCisgICAgIldhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHkiLAorICAgICJXYWl0
aW5nRm9yU3RhcnRUaW1lIiwKKyAgICAiV2FpdGluZ0ZvckRlbGV0aW9uIiwKKyAgICAiUnVubmlu
ZyIsCisgICAgIlBhdXNlZCIsCisgICAgIkZpbmlzaGVkIiwKKyAgICAiQWJvcnRlZCIKK307CisK
K0NPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0PGludD4oV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRp
b246OlJ1blN0YXRlRW51bVNpemUpID09IFdURl9BUlJBWV9MRU5HVEgoc19ydW5TdGF0ZU5hbWVz
KSwgUnVuU3RhdGVfbmFtZXNfbWF0Y2hfZW51bSk7CisKKy8vIFRoaXMgc2hvdWxkIG1hdGNoIHRo
ZSBUYXJnZXRQcm9wZXJ0eSBlbnVtLgorc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfdGFyZ2V0
UHJvcGVydHlOYW1lc1tdID0geworICAgICJUcmFuc2Zvcm0iLAorICAgICJPcGFjaXR5IgorfTsK
KworQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1h
dGlvbjo6VGFyZ2V0UHJvcGVydHlFbnVtU2l6ZSkgPT0gV1RGX0FSUkFZX0xFTkdUSChzX3Rhcmdl
dFByb3BlcnR5TmFtZXMpLCBUYXJnZXRQcm9wZXJ0eV9uYW1lc19tYXRjaF9lbnVtKTsKKworfSAv
LyBuYW1lc3BhY2UKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MCwxMSArODAsMTQgQEAg
Q0NBY3RpdmVBbmltYXRpb246OkNDQWN0aXZlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NBbmltYXRp
b25DdXJ2ZT4gY3VydmUsIGludCBhbmkKICAgICAsIG1fc3VzcGVuZGVkKGZhbHNlKQogICAgICwg
bV9wYXVzZVRpbWUoMCkKICAgICAsIG1fdG90YWxQYXVzZWRUaW1lKDApCisgICAgLCBtX2lzQ29u
dHJvbGxpbmdJbnN0YW5jZShmYWxzZSkKIHsKIH0KIAogQ0NBY3RpdmVBbmltYXRpb246On5DQ0Fj
dGl2ZUFuaW1hdGlvbigpCiB7CisgICAgaWYgKG1fcnVuU3RhdGUgPT0gUnVubmluZyB8fCBtX3J1
blN0YXRlID09IFBhdXNlZCkKKyAgICAgICAgc2V0UnVuU3RhdGUoQWJvcnRlZCwgMCk7CiB9CiAK
IHZvaWQgQ0NBY3RpdmVBbmltYXRpb246OnNldFJ1blN0YXRlKFJ1blN0YXRlIHJ1blN0YXRlLCBk
b3VibGUgbW9ub3RvbmljVGltZSkKQEAgLTYyLDExICs5NSwzNSBAQCB2b2lkIENDQWN0aXZlQW5p
bWF0aW9uOjpzZXRSdW5TdGF0ZShSdW5TdGF0ZSBydW5TdGF0ZSwgZG91YmxlIG1vbm90b25pY1Rp
bWUpCiAgICAgaWYgKG1fc3VzcGVuZGVkKQogICAgICAgICByZXR1cm47CiAKKyAgICBjaGFyIG5h
bWVCdWZmZXJbMjU2XTsKKyAgICBzbnByaW50ZihuYW1lQnVmZmVyLCBzaXplb2YobmFtZUJ1ZmZl
ciksICIlcy0lZCVzIiwgc190YXJnZXRQcm9wZXJ0eU5hbWVzW21fdGFyZ2V0UHJvcGVydHldLCBt
X2dyb3VwLCBtX2lzQ29udHJvbGxpbmdJbnN0YW5jZSA/ICIoaW1wbCkiIDogIiIpOworCisgICAg
Ym9vbCBpc1dhaXRpbmdUb1N0YXJ0ID0gbV9ydW5TdGF0ZSA9PSBXYWl0aW5nRm9yTmV4dFRpY2sK
KyAgICAgICAgfHwgbV9ydW5TdGF0ZSA9PSBXYWl0aW5nRm9yVGFyZ2V0QXZhaWxhYmlsaXR5Cisg
ICAgICAgIHx8IG1fcnVuU3RhdGUgPT0gV2FpdGluZ0ZvclN0YXJ0VGltZTsKKworICAgIGlmIChp
c1dhaXRpbmdUb1N0YXJ0ICYmIHJ1blN0YXRlID09IFJ1bm5pbmcpCisgICAgICAgIFRSQUNFX0VW
RU5UX0FTWU5DX0JFR0lOMSgiY2MiLCAiQ0NBY3RpdmVBbmltYXRpb24iLCB0aGlzLCAiTmFtZSIs
IFRSQUNFX1NUUl9DT1BZKG5hbWVCdWZmZXIpKTsKKworICAgIGJvb2wgd2FzRmluaXNoZWQgPSBp
c0ZpbmlzaGVkKCk7CisKKyAgICBjb25zdCBjaGFyKiBvbGRSdW5TdGF0ZU5hbWUgPSBzX3J1blN0
YXRlTmFtZXNbbV9ydW5TdGF0ZV07CisKICAgICBpZiAocnVuU3RhdGUgPT0gUnVubmluZyAmJiBt
X3J1blN0YXRlID09IFBhdXNlZCkKICAgICAgICAgbV90b3RhbFBhdXNlZFRpbWUgKz0gbW9ub3Rv
bmljVGltZSAtIG1fcGF1c2VUaW1lOwogICAgIGVsc2UgaWYgKHJ1blN0YXRlID09IFBhdXNlZCkK
ICAgICAgICAgbV9wYXVzZVRpbWUgPSBtb25vdG9uaWNUaW1lOwogICAgIG1fcnVuU3RhdGUgPSBy
dW5TdGF0ZTsKKworICAgIGNvbnN0IGNoYXIqIG5ld1J1blN0YXRlTmFtZSA9IHNfcnVuU3RhdGVO
YW1lc1tydW5TdGF0ZV07CisKKyAgICBpZiAoIXdhc0ZpbmlzaGVkICYmIGlzRmluaXNoZWQoKSkK
KyAgICAgICAgVFJBQ0VfRVZFTlRfQVNZTkNfRU5EMCgiY2MiLCAiQ0NBY3RpdmVBbmltYXRpb24i
LCB0aGlzKTsKKworICAgIGNoYXIgc3RhdGVCdWZmZXJbMjU2XTsKKyAgICBzbnByaW50ZihzdGF0
ZUJ1ZmZlciwgc2l6ZW9mKHN0YXRlQnVmZmVyKSwgIiVzLT4lcyIsIG9sZFJ1blN0YXRlTmFtZSwg
bmV3UnVuU3RhdGVOYW1lKTsKKworICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQyKCJjYyIsICJDQ0xh
eWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6c2V0UnVuU3RhdGUiLCAiTmFtZSIsIFRSQUNFX1NUUl9D
T1BZKG5hbWVCdWZmZXIpLCAiU3RhdGUiLCBUUkFDRV9TVFJfQ09QWShzdGF0ZUJ1ZmZlcikpOwog
fQogCiB2b2lkIENDQWN0aXZlQW5pbWF0aW9uOjpzdXNwZW5kKGRvdWJsZSBtb25vdG9uaWNUaW1l
KQpAQCAtMTM4LDE2ICsxOTUsMjIgQEAgZG91YmxlIENDQWN0aXZlQW5pbWF0aW9uOjp0cmltVGlt
ZVRvQ3VycmVudEl0ZXJhdGlvbihkb3VibGUgbW9ub3RvbmljVGltZSkgY29uc3QKICAgICByZXR1
cm4gdHJpbW1lZDsKIH0KIAotUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gQ0NBY3RpdmVB
bmltYXRpb246OmNsb25lRm9ySW1wbFRocmVhZCgpIGNvbnN0CitQYXNzT3duUHRyPENDQWN0aXZl
QW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmUoSW5zdGFuY2VUeXBlIGluc3RhbmNl
VHlwZSkgY29uc3QKK3sKKyAgICByZXR1cm4gY2xvbmVBbmRJbml0aWFsaXplKGluc3RhbmNlVHlw
ZSwgbV9ydW5TdGF0ZSwgbV9zdGFydFRpbWUpOworfQorCitQYXNzT3duUHRyPENDQWN0aXZlQW5p
bWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmVBbmRJbml0aWFsaXplKEluc3RhbmNlVHlw
ZSBpbnN0YW5jZVR5cGUsIFJ1blN0YXRlIGluaXRpYWxSdW5TdGF0ZSwgZG91YmxlIHN0YXJ0VGlt
ZSkgY29uc3QKIHsKICAgICBPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IHRvUmV0dXJuKGFkb3B0
UHRyKG5ldyBDQ0FjdGl2ZUFuaW1hdGlvbihtX2N1cnZlLT5jbG9uZSgpLCBtX2lkLCBtX2dyb3Vw
LCBtX3RhcmdldFByb3BlcnR5KSkpOwotICAgIHRvUmV0dXJuLT5tX3J1blN0YXRlID0gbV9ydW5T
dGF0ZTsKKyAgICB0b1JldHVybi0+bV9ydW5TdGF0ZSA9IGluaXRpYWxSdW5TdGF0ZTsKICAgICB0
b1JldHVybi0+bV9pdGVyYXRpb25zID0gbV9pdGVyYXRpb25zOwotICAgIHRvUmV0dXJuLT5tX3N0
YXJ0VGltZSA9IG1fc3RhcnRUaW1lOworICAgIHRvUmV0dXJuLT5tX3N0YXJ0VGltZSA9IHN0YXJ0
VGltZTsKICAgICB0b1JldHVybi0+bV9wYXVzZVRpbWUgPSBtX3BhdXNlVGltZTsKICAgICB0b1Jl
dHVybi0+bV90b3RhbFBhdXNlZFRpbWUgPSBtX3RvdGFsUGF1c2VkVGltZTsKICAgICB0b1JldHVy
bi0+bV90aW1lT2Zmc2V0ID0gbV90aW1lT2Zmc2V0OwogICAgIHRvUmV0dXJuLT5tX2FsdGVybmF0
ZXNEaXJlY3Rpb24gPSBtX2FsdGVybmF0ZXNEaXJlY3Rpb247CisgICAgdG9SZXR1cm4tPm1faXND
b250cm9sbGluZ0luc3RhbmNlID0gaW5zdGFuY2VUeXBlID09IENvbnRyb2xsaW5nSW5zdGFuY2U7
CiAgICAgcmV0dXJuIHRvUmV0dXJuLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZl
QW5pbWF0aW9uLmgKaW5kZXggMWFjNzJlMTgzZmFmMzc3M2Y5OGJjMDZhYWZkNThiNDUyMDExNmMw
ZS4uZWE0ZTM0ZjJlZTZhZjFlMWMzOGZlMTU2NTNjZjRhNmU3ODlmODVlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmlt
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCkBAIC01NiwxMiArNTYsMTYgQEAgcHVibGljOgogICAgICAg
ICBSdW5uaW5nLAogICAgICAgICBQYXVzZWQsCiAgICAgICAgIEZpbmlzaGVkLAotICAgICAgICBB
Ym9ydGVkCisgICAgICAgIEFib3J0ZWQsCisgICAgICAgIC8vIFRoaXMgc2VudGluZWwgbXVzdCBi
ZSBsYXN0LgorICAgICAgICBSdW5TdGF0ZUVudW1TaXplCiAgICAgfTsKIAogICAgIGVudW0gVGFy
Z2V0UHJvcGVydHkgewogICAgICAgICBUcmFuc2Zvcm0gPSAwLAotICAgICAgICBPcGFjaXR5Cisg
ICAgICAgIE9wYWNpdHksCisgICAgICAgIC8vIFRoaXMgc2VudGluZWwgbXVzdCBiZSBsYXN0Lgor
ICAgICAgICBUYXJnZXRQcm9wZXJ0eUVudW1TaXplCiAgICAgfTsKIAogICAgIHN0YXRpYyBQYXNz
T3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBjcmVhdGUoUGFzc093blB0cjxDQ0FuaW1hdGlvbkN1
cnZlPiwgaW50IGFuaW1hdGlvbklkLCBpbnQgZ3JvdXBJZCwgVGFyZ2V0UHJvcGVydHkpOwpAQCAt
MTEyLDcgKzExNiwxNCBAQCBwdWJsaWM6CiAgICAgLy8gb2YgaXRlcmF0aW9ucywgcmV0dXJucyB0
aGUgcmVsYXRpdmUgdGltZSBpbiB0aGUgY3VycmVudCBpdGVyYXRpb24uCiAgICAgZG91YmxlIHRy
aW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKGRvdWJsZSBtb25vdG9uaWNUaW1lKSBjb25zdDsKIAot
ICAgIFBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGNsb25lRm9ySW1wbFRocmVhZCgpIGNv
bnN0OworICAgIGVudW0gSW5zdGFuY2VUeXBlIHsKKyAgICAgICAgQ29udHJvbGxpbmdJbnN0YW5j
ZSA9IDAsCisgICAgICAgIE5vbkNvbnRyb2xsaW5nSW5zdGFuY2UKKyAgICB9OworCisgICAgUGFz
c093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gY2xvbmUoSW5zdGFuY2VUeXBlKSBjb25zdDsKKyAg
ICBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBjbG9uZUFuZEluaXRpYWxpemUoSW5zdGFu
Y2VUeXBlLCBSdW5TdGF0ZSBpbml0aWFsUnVuU3RhdGUsIGRvdWJsZSBzdGFydFRpbWUpIGNvbnN0
OworICAgIGJvb2wgaXNDb250cm9sbGluZ0luc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9pc0Nv
bnRyb2xsaW5nSW5zdGFuY2U7IH0KIAogICAgIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0FjdGl2
ZUFuaW1hdGlvbiopIGNvbnN0OwogCkBAIC0xNTQsNiArMTY1LDE1IEBAIHByaXZhdGU6CiAgICAg
Ly8gYWJvdXQgdGhlc2UgdmFsdWVzLgogICAgIGRvdWJsZSBtX3BhdXNlVGltZTsKICAgICBkb3Vi
bGUgbV90b3RhbFBhdXNlZFRpbWU7CisKKyAgICAvLyBBbmltYXRpb25zIGxlYWQgZHVhbCBsaXZl
cy4gQW4gYWN0aXZlIGFuaW1hdGlvbiB3aWxsIGJlIGNvbmNlcHR1YWxseSBvd25lZCBieQorICAg
IC8vIHR3byBjb250cm9sbGVycywgb25lIG9uIHRoZSBpbXBsIHRocmVhZCBhbmQgb25lIG9uIHRo
ZSBtYWluLiBJbiByZWFsaXR5LCB0aGVyZQorICAgIC8vIHdpbGwgYmUgdHdvIHNlcGFyYXRlIEND
QWN0aXZlQW5pbWF0aW9uIGluc3RhbmNlcyBmb3IgdGhlIHNhbWUgYW5pbWF0aW9uLiBUaGV5Cisg
ICAgLy8gd2lsbCBoYXZlIHRoZSBzYW1lIGdyb3VwIGlkIGFuZCB0aGUgc2FtZSB0YXJnZXQgcHJv
cGVydHkgKHRoZXNlIHR3byB2YWx1ZXMKKyAgICAvLyB1bmlxdWVseSBpZGVudGlmeSBhbiBhbmlt
YXRpb24pLiBUaGUgaW5zdGFuY2Ugb24gdGhlIGltcGwgdGhyZWFkIGlzIHRoZSBpbnN0YW5jZQor
ICAgIC8vIHRoYXQgdWx0aW1hdGVseSBjb250cm9scyB0aGUgdmFsdWVzIG9mIHRoZSBhbmltYXRp
bmcgbGF5ZXIgYW5kIHNvIHdlIHdpbGwgcmVmZXIKKyAgICAvLyB0byBpdCBhcyB0aGUgJ2NvbnRy
b2xsaW5nIGluc3RhbmNlJy4KKyAgICBib29sIG1faXNDb250cm9sbGluZ0luc3RhbmNlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFu
aW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGJjMmViMzQyNjdhYjY3NjA0MjIyNDhiYmY2Yzc0
ODdjNTZjMWNiYzkuLjEzYjljMDg4ODc3NmYzZGI4M2E5YjQxZTcwNjU1YjViZTg1YzU0YTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAg
LTIwMCwxMSArMjAwLDExIEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnB1c2hO
ZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25DCiAgICAgICAgIGlmICgh
bV9hY3RpdmVBbmltYXRpb25zW2ldLT5uZWVkc1N5bmNocm9uaXplZFN0YXJ0VGltZSgpKQogICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiB0
b0FkZChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmNsb25lRm9ySW1wbFRocmVhZCgpKTsKLSAgICAg
ICAgQVNTRVJUKCF0b0FkZC0+bmVlZHNTeW5jaHJvbml6ZWRTdGFydFRpbWUoKSk7CiAgICAgICAg
IC8vIFRoZSBuZXcgYW5pbWF0aW9uIHNob3VsZCBiZSBzZXQgdG8gcnVuIGFzIHNvb24gYXMgcG9z
c2libGUuCi0gICAgICAgIHRvQWRkLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6V2Fp
dGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0eSwgMCk7Ci0gICAgICAgIHRvQWRkLT5zZXRTdGFydFRp
bWUoMCk7CisgICAgICAgIENDQWN0aXZlQW5pbWF0aW9uOjpSdW5TdGF0ZSBpbml0aWFsUnVuU3Rh
dGUgPSBDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0eTsKKyAg
ICAgICAgZG91YmxlIHN0YXJ0VGltZSA9IDA7CisgICAgICAgIE93blB0cjxDQ0FjdGl2ZUFuaW1h
dGlvbj4gdG9BZGQobV9hY3RpdmVBbmltYXRpb25zW2ldLT5jbG9uZUFuZEluaXRpYWxpemUoQ0NB
Y3RpdmVBbmltYXRpb246OkNvbnRyb2xsaW5nSW5zdGFuY2UsIGluaXRpYWxSdW5TdGF0ZSwgc3Rh
cnRUaW1lKSk7CisgICAgICAgIEFTU0VSVCghdG9BZGQtPm5lZWRzU3luY2hyb25pemVkU3RhcnRU
aW1lKCkpOwogICAgICAgICBjb250cm9sbGVySW1wbC0+YWRkQW5pbWF0aW9uKHRvQWRkLnJlbGVh
c2UoKSk7CiAgICAgfQogfQpAQCAtMzI0LDcgKzMyNCw2IEBAIHZvaWQgQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXI6OnJlc29sdmVDb25mbGljdHMoZG91YmxlIG1vbm90b25pY1RpbWUpCiAgICAg
fQogfQogCi0KIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6Om1hcmtBbmltYXRpb25z
Rm9yRGVsZXRpb24oZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZlbnRzVmVjdG9y
KiBldmVudHMpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlv
bnMuc2l6ZSgpOyBpKyspIHsKQEAgLTM2OSwxMyArMzY4LDE2IEBAIHZvaWQgQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXI6OnJlcGxhY2VJbXBsVGhyZWFkQW5pbWF0aW9ucyhDQ0xheWVyQW5pbWF0
aW9uQ29uCiB7CiAgICAgY29udHJvbGxlckltcGwtPm1fYWN0aXZlQW5pbWF0aW9ucy5jbGVhcigp
OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIE93blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gdG9BZGQobV9hY3RpdmVB
bmltYXRpb25zW2ldLT5jbG9uZUZvckltcGxUaHJlYWQoKSk7CisgICAgICAgIE93blB0cjxDQ0Fj
dGl2ZUFuaW1hdGlvbj4gdG9BZGQ7CiAgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0t
Pm5lZWRzU3luY2hyb25pemVkU3RhcnRUaW1lKCkpIHsKICAgICAgICAgICAgIC8vIFdlIGhhdmVu
J3QgcmVjZWl2ZWQgYW4gYW5pbWF0aW9uIHN0YXJ0ZWQgbm90aWZpY2F0aW9uIHlldCwgc28gaXQK
ICAgICAgICAgICAgIC8vIGlzIGltcG9ydGFudCB0aGF0IHdlIGFkZCBpdCBpbiBhICd3YWl0aW5n
JyBhbmQgbm90ICdydW5uaW5nJyBzdGF0ZS4KLSAgICAgICAgICAgIHRvQWRkLT5zZXRSdW5TdGF0
ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0eSwgMCk7Ci0g
ICAgICAgICAgICB0b0FkZC0+c2V0U3RhcnRUaW1lKDApOwotICAgICAgICB9CisgICAgICAgICAg
ICBDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVuU3RhdGUgaW5pdGlhbFJ1blN0YXRlID0gQ0NBY3RpdmVB
bmltYXRpb246OldhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHk7CisgICAgICAgICAgICBkb3Vi
bGUgc3RhcnRUaW1lID0gMDsKKyAgICAgICAgICAgIHRvQWRkID0gbV9hY3RpdmVBbmltYXRpb25z
W2ldLT5jbG9uZUFuZEluaXRpYWxpemUoQ0NBY3RpdmVBbmltYXRpb246OkNvbnRyb2xsaW5nSW5z
dGFuY2UsIGluaXRpYWxSdW5TdGF0ZSwgc3RhcnRUaW1lKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICB0b0FkZCA9IG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+Y2xvbmUoQ0NBY3RpdmVBbmlt
YXRpb246OkNvbnRyb2xsaW5nSW5zdGFuY2UpOworCiAgICAgICAgIGNvbnRyb2xsZXJJbXBsLT5h
ZGRBbmltYXRpb24odG9BZGQucmVsZWFzZSgpKTsKICAgICB9CiB9CkBAIC00MTMsNiArNDE1LDEw
IEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnRpY2tBbmltYXRpb25zKGRvdWJs
ZSBtb25vdG9uaWNUaW1lKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
CisgICAgICAgICAgICAvLyBEbyBub3RoaW5nIGZvciBzZW50aW5lbCB2YWx1ZS4KKyAgICAgICAg
ICAgIGNhc2UgQ0NBY3RpdmVBbmltYXRpb246OlRhcmdldFByb3BlcnR5RW51bVNpemU6CisgICAg
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkFu
aW1hdGlvbkltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQW5pbWF0aW9u
SW1wbC5jcHAKaW5kZXggMzJlNDRhMzQ3ZWEwZjVjZjBkNWFlYzk1NjlkODlmNDE2MzQzOTNkZS4u
MTg3MjcyZWYyMmIyOWViZjk4NzI0ODVhNzZhMmVjMTdlZjY1ZmU2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQW5pbWF0aW9uSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQW5pbWF0aW9uSW1wbC5jcHAKQEAgLTk2LDcgKzk2LDcg
QEAgdm9pZCBXZWJBbmltYXRpb25JbXBsOjpzZXRBbHRlcm5hdGVzRGlyZWN0aW9uKGJvb2wgYWx0
ZXJuYXRlcykKIAogUGFzc093blB0cjxXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbj4gV2ViQW5p
bWF0aW9uSW1wbDo6Y2xvbmVUb0NDQW5pbWF0aW9uKCkKIHsKLSAgICBPd25QdHI8V2ViQ29yZTo6
Q0NBY3RpdmVBbmltYXRpb24+IHRvUmV0dXJuKG1fYW5pbWF0aW9uLT5jbG9uZUZvckltcGxUaHJl
YWQoKSk7CisgICAgT3duUHRyPFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uPiB0b1JldHVybiht
X2FuaW1hdGlvbi0+Y2xvbmUoV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb246Ok5vbkNvbnRyb2xs
aW5nSW5zdGFuY2UpKTsKICAgICB0b1JldHVybi0+c2V0TmVlZHNTeW5jaHJvbml6ZWRTdGFydFRp
bWUodHJ1ZSk7CiAgICAgcmV0dXJuIHRvUmV0dXJuLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NBbmltYXRpb25UZXN0Q29tbW9uLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDQW5pbWF0aW9uVGVzdENvbW1vbi5oCmluZGV4
IGYyNTY0ZTU3ODQ0YWIzMTM5YzAwN2E3YzlmYzQ1ZjU0MTljNDg3NDYuLjcxYjBhZGQyNmMwZjIx
ZTlhMmFkZjk1MDUyNDgxM2IyYjFiOWY5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NBbmltYXRpb25UZXN0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0FuaW1hdGlvblRlc3RDb21tb24uaApAQCAtMjUsOSArMjUsMTEgQEAK
ICNpZm5kZWYgQ0NBbmltYXRpb25UZXN0Q29tbW9uX2gKICNkZWZpbmUgQ0NBbmltYXRpb25UZXN0
Q29tbW9uX2gKIAorI2luY2x1ZGUgIkNDQWN0aXZlQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiQ0NB
bmltYXRpb25DdXJ2ZS5oIgogI2luY2x1ZGUgIkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiSW50U2l6ZS5oIgorCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>