<?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>41332</bug_id>
          
          <creation_ts>2010-06-28 21:59:15 -0700</creation_ts>
          <short_desc>Implement unloadEventEnd, loadEventStart, and loadEventEnd</short_desc>
          <delta_ts>2010-07-09 13:18:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>30685</blocked>
    
    <blocked>41815</blocked>
    
    <blocked>41816</blocked>
    
    <blocked>41824</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>pfeldman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>244086</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-28 21:59:15 -0700</bug_when>
    <thetext>Implement Web Timing navigationStart, fetchStart, load and unload events</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244090</commentid>
    <comment_count>1</comment_count>
      <attachid>59985</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-28 22:10:39 -0700</bug_when>
    <thetext>Created attachment 59985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244317</commentid>
    <comment_count>2</comment_count>
      <attachid>59985</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-06-29 08:50:58 -0700</bug_when>
    <thetext>Comment on attachment 59985
Patch

&gt; @@ -1496,6 +1498,9 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t
&gt;  
&gt;      ASSERT(m_frame-&gt;view());
&gt;  
&gt; +    m_frameLoadTimeline = FrameLoadTimeline();
&gt; +    m_frameLoadTimeline.navigationStart = currentTime();
&gt; +
&gt;      if (m_pageDismissalEventBeingDispatched)
&gt;          return;
&gt;  
&gt; @@ -2494,6 +2499,9 @@ void FrameLoader::continueLoadAfterWillSubmitForm()
&gt;  
&gt;      unsigned long identifier = 0;
&gt;  
&gt; +    ASSERT(!m_frameLoadTimeline.fetchStart);
&gt; +    m_frameLoadTimeline.fetchStart = currentTime();
&gt; +
&gt;      if (Page* page = m_frame-&gt;page()) {
&gt;          identifier = page-&gt;progress()-&gt;createUniqueIdentifier();
&gt;          notifier()-&gt;assignIdentifierToInitialRequest(identifier, m_provisionalDocumentLoader.get(), m_provisionalDocumentLoader-&gt;originalRequest());

I don&apos;t know the precise sequence of this part of FrameLoader well enough to know for certain that these are the correct places for navigationStart and fetchStart. abarth might know better.

&gt; +struct FrameLoadTimeline {
&gt; +    FrameLoadTimeline()
&gt; +        : navigationStart(0)
&gt; +        , unloadEventStart(0)
&gt; +        , unloadEventEnd(0)
&gt; +        , fetchStart(0)
&gt; +        , loadEventStart(0)
&gt; +        , loadEventEnd(0)
&gt; +    {
&gt; +    }
&gt; +
&gt; +    double navigationStart;
&gt; +    double unloadEventStart;
&gt; +    double unloadEventEnd;
&gt; +    double fetchStart;
&gt; +    double loadEventStart;
&gt; +    double loadEventEnd;
&gt; +};
&gt; +

This should be in FrameLoaderTypes.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244473</commentid>
    <comment_count>3</comment_count>
      <attachid>60052</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-29 14:12:24 -0700</bug_when>
    <thetext>Created attachment 60052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245963</commentid>
    <comment_count>4</comment_count>
      <attachid>60378</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-02 10:38:57 -0700</bug_when>
    <thetext>Created attachment 60378
Merge with 41442</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245966</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-02 10:41:47 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 59985 [details])
&gt; &gt; @@ -1496,6 +1498,9 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t
&gt; &gt;  
&gt; &gt;      ASSERT(m_frame-&gt;view());
&gt; &gt;  
&gt; &gt; +    m_frameLoadTimeline = FrameLoadTimeline();
&gt; &gt; +    m_frameLoadTimeline.navigationStart = currentTime();
&gt; &gt; +
&gt; &gt;      if (m_pageDismissalEventBeingDispatched)
&gt; &gt;          return;
&gt; &gt;  
&gt; &gt; @@ -2494,6 +2499,9 @@ void FrameLoader::continueLoadAfterWillSubmitForm()
&gt; &gt;  
&gt; &gt;      unsigned long identifier = 0;
&gt; &gt;  
&gt; &gt; +    ASSERT(!m_frameLoadTimeline.fetchStart);
&gt; &gt; +    m_frameLoadTimeline.fetchStart = currentTime();
&gt; &gt; +
&gt; &gt;      if (Page* page = m_frame-&gt;page()) {
&gt; &gt;          identifier = page-&gt;progress()-&gt;createUniqueIdentifier();
&gt; &gt;          notifier()-&gt;assignIdentifierToInitialRequest(identifier, m_provisionalDocumentLoader.get(), m_provisionalDocumentLoader-&gt;originalRequest());
&gt; 
&gt; I don&apos;t know the precise sequence of this part of FrameLoader well enough to know for certain that these are the correct places for navigationStart and fetchStart. abarth might know better.

Adam, are you a good person to make sure these times are marked in the correct places? Or maybe you know someone else who should take a look?

&gt; 
&gt; &gt; +struct FrameLoadTimeline {
&gt; &gt; +    FrameLoadTimeline()
&gt; &gt; +        : navigationStart(0)
&gt; &gt; +        , unloadEventStart(0)
&gt; &gt; +        , unloadEventEnd(0)
&gt; &gt; +        , fetchStart(0)
&gt; &gt; +        , loadEventStart(0)
&gt; &gt; +        , loadEventEnd(0)
&gt; &gt; +    {
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    double navigationStart;
&gt; &gt; +    double unloadEventStart;
&gt; &gt; +    double unloadEventEnd;
&gt; &gt; +    double fetchStart;
&gt; &gt; +    double loadEventStart;
&gt; &gt; +    double loadEventEnd;
&gt; &gt; +};
&gt; &gt; +
&gt; 
&gt; This should be in FrameLoaderTypes.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247878</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-07 17:27:15 -0700</bug_when>
    <thetext>To make this easier to review, I&apos;m breaking it up into 3 patches. This patch now only implements unloadEventEnd, loadEventStart and loadEventEnd. Those marks are trivial and shouldn&apos;t need Adam to look at the trickier parts of FrameLoader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247883</commentid>
    <comment_count>7</comment_count>
      <attachid>60813</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-07 17:35:10 -0700</bug_when>
    <thetext>Created attachment 60813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248275</commentid>
    <comment_count>8</comment_count>
      <attachid>60813</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-07-08 09:42:54 -0700</bug_when>
    <thetext>Comment on attachment 60813
Patch

r+ with a nit

&gt; +    if (FrameLoader* frameLoader = frame() ? frame()-&gt;loader() : 0)
&gt; +        frameLoader-&gt;frameLoadTimeline()-&gt;loadEventStart = currentTime();
&gt;      dispatchEvent(Event::create(eventNames().loadEvent, false, false), document());
&gt; +    if (FrameLoader* frameLoader = frame() ? frame()-&gt;loader() : 0)
&gt; +        frameLoader-&gt;frameLoadTimeline()-&gt;loadEventEnd = currentTime();

I find these if statements a bit unclear. You don&apos;t need to null check the FrameLoader, so maybe just set a Frame* in the if() statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248340</commentid>
    <comment_count>9</comment_count>
      <attachid>60910</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-08 10:57:16 -0700</bug_when>
    <thetext>Created attachment 60910
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249013</commentid>
    <comment_count>10</comment_count>
      <attachid>60910</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-09 07:52:34 -0700</bug_when>
    <thetext>Comment on attachment 60910
Patch for landing

Rejecting patch 60910 from commit-queue.

Unexpected failure when processing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--build&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, 60910, &apos;--test&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Last 500 characters of output:
webkitpy/tool/commands/stepsequence.py&quot;, line 64, in _run
    step(tool, options).run(state)
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 68, in run
    if self._has_valid_reviewer(changelog_entry):
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 50, in _has_valid_reviewer
    if changelog_entry.reviewer():
AttributeError: &apos;NoneType&apos; object has no attribute &apos;reviewer&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249038</commentid>
    <comment_count>11</comment_count>
      <attachid>60910</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-09 09:17:11 -0700</bug_when>
    <thetext>Comment on attachment 60910
Patch for landing

Rejecting patch 60910 from commit-queue.

Unexpected failure when processing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--build&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, 60910, &apos;--test&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Last 500 characters of output:
webkitpy/tool/commands/stepsequence.py&quot;, line 64, in _run
    step(tool, options).run(state)
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 68, in run
    if self._has_valid_reviewer(changelog_entry):
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 50, in _has_valid_reviewer
    if changelog_entry.reviewer():
AttributeError: &apos;NoneType&apos; object has no attribute &apos;reviewer&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249100</commentid>
    <comment_count>12</comment_count>
      <attachid>61058</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-09 10:35:23 -0700</bug_when>
    <thetext>Created attachment 61058
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249214</commentid>
    <comment_count>13</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-09 13:17:57 -0700</bug_when>
    <thetext>Landed r62984</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59985</attachid>
            <date>2010-06-28 22:10:39 -0700</date>
            <delta_ts>2010-06-29 14:12:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41332-20100628221038.patch</filename>
            <type>text/plain</type>
            <size>15321</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYmIxNDY0M2I4N2ZlYzJmZjk5OTAwNjA0ZDQ4MTQ5YzJkOTc3NDU4Li5lY2JjYThj
ODUyZThiMjBjM2M2NDkyZjIyYzMwN2FkZWE4Y2YwYzQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDYtMjggIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgV2Vi
IFRpbWluZyBuYXZpZ2F0aW9uU3RhcnQsIGZldGNoU3RhcnQsIGxvYWQgYW5kIHVubG9hZCBldmVu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMzMy
CisKKyAgICAgICAgRXhwZWN0YXRpb25zIHNldCB0byBGQUlMIGJlY2F1c2UgZGlzYWJsZWQgYnkg
ZGVmYXVsdC4gUGFzc2VzIHdpdGggLS1lbmFibGUtd2ViLXRpbWluZy4KKworICAgICAgICAqIGZh
c3QvZG9tL3NjcmlwdC10ZXN0cy93ZWJ0aW1pbmcuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxk
QmVHcmVhdGVyVGhhbk9yRXF1YWwpOgorICAgICAgICAoY2hlY2tUaW1pbmdCZWZvcmVMb2FkKToK
KyAgICAgICAgKGNoZWNrV2ViVGltaW5nT25Mb2FkKToKKyAgICAgICAgKGNoZWNrV2ViVGltaW5n
QWZ0ZXJMb2FkKToKKyAgICAgICAgKiBmYXN0L2RvbS93ZWJ0aW1pbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS93ZWJ0aW1pbmcuaHRtbDogQWRkZWQuCisKIDIwMTAt
MDYtMjggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Njcmlw
dC10ZXN0cy93ZWJ0aW1pbmcuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMv
d2VidGltaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyNjM3MDNmN2VhYWMxZGQxYWMzZmRlNTcyNTA4NTky
ZWYxMDhhMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQt
dGVzdHMvd2VidGltaW5nLmpzCkBAIC0wLDAgKzEsNzEgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgY2hlY2tzIHRoYXQgdGhlIDxhIGhyZWY9J2h0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBp
L1dlYlRpbWluZy8nPldlYiBUaW1pbmc8L2E+IGF0dHJpYnV0ZXMgYXJlIGF2YWlsYWJsZSBhbmQg
aGF2ZSByZWFzb25hYmxlIHZhbHVlcy4iKTsKKwordmFyIHBlcmZvcm1hbmNlID0gd2luZG93LnBl
cmZvcm1hbmNlIHx8IHt9OwordmFyIHRpbWluZyA9IHBlcmZvcm1hbmNlLnRpbWluZyB8fCB7fTsK
KworLy8gR2V0IHRoZSBvcmRlciBvZiBtYWduaXR1ZGUgY29ycmVjdCB3aXRob3V0IGEgY2hhbmNl
IGZvciBmbGFraW5lc3MuCit2YXIgb25lSG91ck1pbGxpc2Vjb25kcyA9IDYwICogNjAgKiAxMDAw
OwordmFyIGN1cnJlbnRVVEMgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpOwordmFyIG9uZUhvdXJB
Z29VVEMgPSBjdXJyZW50VVRDIC0gb25lSG91ck1pbGxpc2Vjb25kczsKKworLy8gRklYTUU6IE1v
dmUgdG8gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanM/CitmdW5j
dGlvbiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbChfYSwgX2IpCit7CisgICAgaWYgKHR5cGVv
ZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVn
KCJXQVJOOiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCBleHBlY3RzIHN0cmluZyBhcmd1bWVu
dHMiKTsKKworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAg
ICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlv
biA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAgIGlmIChleGNlcHRp
b24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2J2ICsgIi4g
VGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAgIGVsc2UgaWYgKHR5cGVvZiBfYXYg
PT0gInVuZGVmaW5lZCIgfHwgX2F2IDwgX2J2KQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBz
aG91bGQgYmUgPj0gIiArIF9idiArICIuIFdhcyAiICsgX2F2ICsgIi4iKTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzID49ICIgKyBfYik7Cit9CisKK2Z1bmN0aW9uIGNo
ZWNrVGltaW5nQmVmb3JlTG9hZCgpCit7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwo
InRpbWluZy5uYXZpZ2F0aW9uU3RhcnQiLCAib25lSG91ckFnb1VUQyIpOworCisgICAgc2hvdWxk
QmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy5mZXRjaFN0YXJ0IiwgInRpbWluZy5uYXZpZ2F0
aW9uU3RhcnQiKTsKKworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcudW5s
b2FkRXZlbnRTdGFydCIsICJ0aW1pbmcubmF2aWdhdGlvblN0YXJ0Iik7CisKKyAgICBzaG91bGRC
ZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLnVubG9hZEV2ZW50RW5kIiwgInRpbWluZy51bmxv
YWRFdmVudFN0YXJ0Iik7CisKKyAgICBzaG91bGRCZSgidGltaW5nLmxvYWRFdmVudFN0YXJ0Iiwg
IjAiKTsKKworICAgIHNob3VsZEJlKCJ0aW1pbmcubG9hZEV2ZW50RW5kIiwgIjAiKTsKKworICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgY2hlY2tXZWJUaW1pbmdPbkxvYWQsIGZh
bHNlKTsKK30KKworZnVuY3Rpb24gY2hlY2tXZWJUaW1pbmdPbkxvYWQoKQoreworICAgIHNob3Vs
ZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcubG9hZEV2ZW50U3RhcnQiLCAidGltaW5nLmZl
dGNoU3RhcnQiKTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLmxvYWRF
dmVudFN0YXJ0IiwgInRpbWluZy51bmxvYWRFdmVudEVuZCIpOworCisgICAgc2hvdWxkQmUoInRp
bWluZy5sb2FkRXZlbnRFbmQiLCAiMCIpOworCisgICAgc2V0VGltZW91dCgiY2hlY2tXZWJUaW1p
bmdBZnRlckxvYWQoKSIsIDApOworfQorCitmdW5jdGlvbiBjaGVja1dlYlRpbWluZ0FmdGVyTG9h
ZCgpCit7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy5sb2FkRXZlbnRF
bmQiLCAidGltaW5nLmxvYWRFdmVudFN0YXJ0Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30K
KworanNUZXN0SXNBc3luYyA9IHRydWU7CitjaGVja1RpbWluZ0JlZm9yZUxvYWQoKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS93ZWJ0aW1pbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2VidGlt
aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2ZkODZhZGI0NjYxZDZlOWJlMjUzZWRhN2U5
ZmYwZmM1N2U3NmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2Vi
dGltaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUaGlzIHRlc3QgY2hlY2tzIHRo
YXQgdGhlIFdlYiBUaW1pbmcgYXR0cmlidXRlcyBhcmUgYXZhaWxhYmxlIGFuZCBoYXZlIHJlYXNv
bmFibGUgdmFsdWVzLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitGQUlM
IHRpbWluZy5uYXZpZ2F0aW9uU3RhcnQgc2hvdWxkIGJlID49IDEyNzc3ODM1ODc4NTQuIFdhcyB1
bmRlZmluZWQuDQorRkFJTCB0aW1pbmcuZmV0Y2hTdGFydCBzaG91bGQgYmUgPj0gdW5kZWZpbmVk
LiBXYXMgdW5kZWZpbmVkLg0KK0ZBSUwgdGltaW5nLnVubG9hZEV2ZW50U3RhcnQgc2hvdWxkIGJl
ID49IHVuZGVmaW5lZC4gV2FzIHVuZGVmaW5lZC4NCitGQUlMIHRpbWluZy51bmxvYWRFdmVudEVu
ZCBzaG91bGQgYmUgPj0gdW5kZWZpbmVkLiBXYXMgdW5kZWZpbmVkLg0KK0ZBSUwgdGltaW5nLmxv
YWRFdmVudFN0YXJ0IHNob3VsZCBiZSAwIChvZiB0eXBlIG51bWJlcikuIFdhcyB1bmRlZmluZWQg
KG9mIHR5cGUgdW5kZWZpbmVkKS4NCitGQUlMIHRpbWluZy5sb2FkRXZlbnRFbmQgc2hvdWxkIGJl
IDAgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLg0K
K0ZBSUwgdGltaW5nLmxvYWRFdmVudFN0YXJ0IHNob3VsZCBiZSA+PSB1bmRlZmluZWQuIFdhcyB1
bmRlZmluZWQuDQorRkFJTCB0aW1pbmcubG9hZEV2ZW50U3RhcnQgc2hvdWxkIGJlID49IHVuZGVm
aW5lZC4gV2FzIHVuZGVmaW5lZC4NCitGQUlMIHRpbWluZy5sb2FkRXZlbnRFbmQgc2hvdWxkIGJl
IDAgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLg0K
K0ZBSUwgdGltaW5nLmxvYWRFdmVudEVuZCBzaG91bGQgYmUgPj0gdW5kZWZpbmVkLiBXYXMgdW5k
ZWZpbmVkLg0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUNCisNCitURVNUIENPTVBM
RVRFDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2VidGltaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93ZWJ0aW1pbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGI2NWM1
NzE2MzQ3MWViZDhlMDgxNjAwMDM5MTg1OTYzZDAyMTZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vd2VidGltaW5nLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy93ZWJ0aW1pbmcu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MDA4Mzg2MzQ4ZDc0NWUzNWEyNzE5MWVl
Nzk1OTc2YzFjYWIxNTBlLi5lNmM2NGQwNmE4MjI5ZjMzMDgxOTczOWRhMmVkNTkxZjI2Y2VmNTg2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMxIEBACisyMDEwLTA2LTI4ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IFdlYiBUaW1pbmcgbmF2aWdhdGlvblN0YXJ0LCBmZXRjaFN0YXJ0LCBsb2Fk
IGFuZCB1bmxvYWQgZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MTMzMgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3dlYnRpbWluZy5odG1s
CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpsb2FkV2l0aERvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlcldpbGxTdWJtaXRGb3JtKToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFRpbWVsaW5lOjpGcmFtZUxv
YWRUaW1lbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZnJhbWVMb2FkVGlt
ZWxpbmUpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6ZGlzcGF0Y2hMb2FkRXZlbnQpOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdGlv
blRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uVGltaW5nOjpuYXZpZ2F0
aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblRpbWluZzo6ZmV0Y2hTdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25UaW1pbmc6OnVubG9hZEV2ZW50RW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25UaW1pbmc6OmxvYWRFdmVudFN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25UaW1pbmc6OmxvYWRFdmVudEVuZCk6CisgICAgICAg
ICogcGFnZS9OYXZpZ2F0aW9uVGltaW5nLmg6CisgICAgICAgICogcGFnZS9OYXZpZ2F0aW9uVGlt
aW5nLmlkbDoKKwogMjAxMC0wNi0yOCAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgYXR0ZW1wdCB0byBmaXggUXQgYm90cy4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCA2OTNlOTg1NTgzN2RiZTc3MWI4ODhkMWI5OWUyODY3ODFlNThmOTcyLi41
NjRkNzdlNjhkOWU2ZDEzOWI1MzUyZTY4ODZmYjg1ZTk3MzZlMzQ2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC00MzcsNiArNDM3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcExvYWRpbmco
VW5sb2FkRXZlbnRQb2xpY3kgdW5sb2FkRXZlbnRQb2xpY3ksIERhdGFiYXNlUG9saWMKICAgICBp
ZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIoKSkK
ICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCktPnN0b3BQYXJzaW5nKCk7CiAK
KyAgICBtX2ZyYW1lTG9hZFRpbWVsaW5lLnVubG9hZEV2ZW50U3RhcnQgPSBjdXJyZW50VGltZSgp
OwogICAgIGlmICh1bmxvYWRFdmVudFBvbGljeSAhPSBVbmxvYWRFdmVudFBvbGljeU5vbmUpIHsK
ICAgICAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKICAgICAgICAgICAgIGlmIChtX2Rp
ZENhbGxJbXBsaWNpdENsb3NlICYmICFtX3dhc1VubG9hZEV2ZW50RW1pdHRlZCkgewpAQCAtNDY3
LDYgKzQ2OCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BMb2FkaW5nKFVubG9hZEV2ZW50UG9s
aWN5IHVubG9hZEV2ZW50UG9saWN5LCBEYXRhYmFzZVBvbGljCiAgICAgICAgICAgICAgICAgbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKICAgICAgICAgfQog
ICAgIH0KKyAgICBtX2ZyYW1lTG9hZFRpbWVsaW5lLnVubG9hZEV2ZW50RW5kID0gY3VycmVudFRp
bWUoKTsKIAogICAgIG1faXNDb21wbGV0ZSA9IHRydWU7IC8vIHRvIGF2b2lkIGNhbGxpbmcgY29t
cGxldGVkKCkgaW4gZmluaXNoZWRQYXJzaW5nKCkKICAgICBtX2lzTG9hZGluZ01haW5SZXNvdXJj
ZSA9IGZhbHNlOwpAQCAtMTQ5Niw2ICsxNDk4LDkgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdp
dGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBGcmFtZUxvYWRUeXBlIHQK
IAogICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3KCkpOwogCisgICAgbV9mcmFtZUxvYWRUaW1lbGlu
ZSA9IEZyYW1lTG9hZFRpbWVsaW5lKCk7CisgICAgbV9mcmFtZUxvYWRUaW1lbGluZS5uYXZpZ2F0
aW9uU3RhcnQgPSBjdXJyZW50VGltZSgpOworCiAgICAgaWYgKG1fcGFnZURpc21pc3NhbEV2ZW50
QmVpbmdEaXNwYXRjaGVkKQogICAgICAgICByZXR1cm47CiAKQEAgLTI0OTQsNiArMjQ5OSw5IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyV2lsbFN1Ym1pdEZvcm0oKQogCiAg
ICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyID0gMDsKIAorICAgIEFTU0VSVCghbV9mcmFtZUxv
YWRUaW1lbGluZS5mZXRjaFN0YXJ0KTsKKyAgICBtX2ZyYW1lTG9hZFRpbWVsaW5lLmZldGNoU3Rh
cnQgPSBjdXJyZW50VGltZSgpOworCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdl
KCkpIHsKICAgICAgICAgaWRlbnRpZmllciA9IHBhZ2UtPnByb2dyZXNzKCktPmNyZWF0ZVVuaXF1
ZUlkZW50aWZpZXIoKTsKICAgICAgICAgbm90aWZpZXIoKS0+YXNzaWduSWRlbnRpZmllclRvSW5p
dGlhbFJlcXVlc3QoaWRlbnRpZmllciwgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLmdldCgp
LCBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXItPm9yaWdpbmFsUmVxdWVzdCgpKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCmluZGV4IDg5ODA1MjBhOTVhYzg0OWZkYzM3Zjk2MzAyMjBmZmJkOTYzODJkNGYu
LmFiNTgwYzM3MGI4MDAzZTNhOTUzYjZhNjY1OTI1M2U4NjRkMmIzNDYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaApAQCAtODIsNiArODIsMjUgQEAgY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKIHN0cnVj
dCBGcmFtZUxvYWRSZXF1ZXN0Owogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCitzdHJ1Y3QgRnJh
bWVMb2FkVGltZWxpbmUgeworICAgIEZyYW1lTG9hZFRpbWVsaW5lKCkKKyAgICAgICAgOiBuYXZp
Z2F0aW9uU3RhcnQoMCkKKyAgICAgICAgLCB1bmxvYWRFdmVudFN0YXJ0KDApCisgICAgICAgICwg
dW5sb2FkRXZlbnRFbmQoMCkKKyAgICAgICAgLCBmZXRjaFN0YXJ0KDApCisgICAgICAgICwgbG9h
ZEV2ZW50U3RhcnQoMCkKKyAgICAgICAgLCBsb2FkRXZlbnRFbmQoMCkKKyAgICB7CisgICAgfQor
CisgICAgZG91YmxlIG5hdmlnYXRpb25TdGFydDsKKyAgICBkb3VibGUgdW5sb2FkRXZlbnRTdGFy
dDsKKyAgICBkb3VibGUgdW5sb2FkRXZlbnRFbmQ7CisgICAgZG91YmxlIGZldGNoU3RhcnQ7Cisg
ICAgZG91YmxlIGxvYWRFdmVudFN0YXJ0OworICAgIGRvdWJsZSBsb2FkRXZlbnRFbmQ7Cit9Owor
CiBib29sIGlzQmFja0ZvcndhcmRMb2FkVHlwZShGcmFtZUxvYWRUeXBlKTsKIAogY2xhc3MgRnJh
bWVMb2FkZXIgOiBwdWJsaWMgTm9uY29weWFibGUgewpAQCAtMTkzLDYgKzIxMiw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRpZENoYW5nZUljb25zKERvY3VtZW50TG9hZGVyKik7CiAKICAgICBGcmFt
ZUxvYWRUeXBlIGxvYWRUeXBlKCkgY29uc3Q7CisgICAgRnJhbWVMb2FkVGltZWxpbmUqIGZyYW1l
TG9hZFRpbWVsaW5lKCkgeyByZXR1cm4gJm1fZnJhbWVMb2FkVGltZWxpbmU7IH0KKwogICAgIENh
Y2hlUG9saWN5IHN1YnJlc291cmNlQ2FjaGVQb2xpY3koKSBjb25zdDsKIAogICAgIHZvaWQgZGlk
Rmlyc3RMYXlvdXQoKTsKQEAgLTQ0NCw2ICs0NjUsNyBAQCBwcml2YXRlOgogCiAgICAgRnJhbWVT
dGF0ZSBtX3N0YXRlOwogICAgIEZyYW1lTG9hZFR5cGUgbV9sb2FkVHlwZTsKKyAgICBGcmFtZUxv
YWRUaW1lbGluZSBtX2ZyYW1lTG9hZFRpbWVsaW5lOwogCiAgICAgLy8gRG9jdW1lbnQgbG9hZGVy
cyBmb3IgdGhlIHRocmVlIHBoYXNlcyBvZiBmcmFtZSBsb2FkaW5nLiBOb3RlIHRoYXQgd2hpbGUg
CiAgICAgLy8gYSBuZXcgcmVxdWVzdCBpcyBiZWluZyBsb2FkZWQsIHRoZSBvbGQgZG9jdW1lbnQg
bG9hZGVyIG1heSBzdGlsbCBiZSByZWZlcmVuY2VkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBhMDZkZDc5
NjZjMTMyYjhjNDE2MDIzOWRjOTQ0MmZlNTA3MTQwNjQzLi5mZjUyZGFhODgxZjVkODM0MmMwYjFi
NGEyMmE1ZGFlNGZjOThkNDA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNzgsOCArNzgsOSBAQAogI2lu
Y2x1ZGUgIlN1ZGRlblRlcm1pbmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViS2l0UG9pbnQuaCIKICNp
bmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBzdGQ6Om1pbjsKIHVzaW5nIHN0ZDo6
bWF4OwpAQCAtMTQyOCw3ICsxNDI5LDExIEBAIGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExp
c3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAKIHZv
aWQgRE9NV2luZG93OjpkaXNwYXRjaExvYWRFdmVudCgpCiB7CisgICAgaWYgKEZyYW1lTG9hZGVy
KiBmcmFtZUxvYWRlciA9IGZyYW1lKCkgPyBmcmFtZSgpLT5sb2FkZXIoKSA6IDApCisgICAgICAg
IGZyYW1lTG9hZGVyLT5mcmFtZUxvYWRUaW1lbGluZSgpLT5sb2FkRXZlbnRTdGFydCA9IGN1cnJl
bnRUaW1lKCk7CiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5s
b2FkRXZlbnQsIGZhbHNlLCBmYWxzZSksIGRvY3VtZW50KCkpOworICAgIGlmIChGcmFtZUxvYWRl
ciogZnJhbWVMb2FkZXIgPSBmcmFtZSgpID8gZnJhbWUoKS0+bG9hZGVyKCkgOiAwKQorICAgICAg
ICBmcmFtZUxvYWRlci0+ZnJhbWVMb2FkVGltZWxpbmUoKS0+bG9hZEV2ZW50RW5kID0gY3VycmVu
dFRpbWUoKTsKIAogICAgIC8vIEZvciBsb2FkIGV2ZW50cywgc2VuZCBhIHNlcGFyYXRlIGxvYWQg
ZXZlbnQgdG8gdGhlIGVuY2xvc2luZyBmcmFtZSBvbmx5LgogICAgIC8vIFRoaXMgaXMgYSBET00g
ZXh0ZW5zaW9uIGFuZCBpcyBpbmRlcGVuZGVudCBvZiBidWJibGluZy9jYXB0dXJpbmcgcnVsZXMg
b2YKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9OYXZpZ2F0aW9uVGltaW5nLmNwcCBiL1dlYkNv
cmUvcGFnZS9OYXZpZ2F0aW9uVGltaW5nLmNwcAppbmRleCA4Y2JiYmMxMjk4NzdjNzc4YmZhMDQw
Njc5NWYzYjAzZWE1YjY2MmQ1Li4yZWFiNTM1M2E4ZmJkZGY0YzE0MDA2M2M3OWQ1OWRkZTliZDJl
M2YxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvTmF2aWdhdGlvblRpbWluZy5jcHAKKysrIGIv
V2ViQ29yZS9wYWdlL05hdmlnYXRpb25UaW1pbmcuY3BwCkBAIC01MiwxMiArNTIsNTIgQEAgdm9p
ZCBOYXZpZ2F0aW9uVGltaW5nOjpkaXNjb25uZWN0RnJhbWUoKQogICAgIG1fZnJhbWUgPSAwOwog
fQogCi11bnNpZ25lZCBsb25nIE5hdmlnYXRpb25UaW1pbmc6Om5hdmlnYXRpb25TdGFydCgpIGNv
bnN0Cit1bnNpZ25lZCBsb25nIGxvbmcgTmF2aWdhdGlvblRpbWluZzo6bmF2aWdhdGlvblN0YXJ0
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
cmV0dXJuIDA7IC8vIEZJWE1FCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcg
bG9uZz4obV9mcmFtZS0+bG9hZGVyKCktPmZyYW1lTG9hZFRpbWVsaW5lKCktPm5hdmlnYXRpb25T
dGFydCAqIDEwMDApOworfQorCit1bnNpZ25lZCBsb25nIGxvbmcgTmF2aWdhdGlvblRpbWluZzo6
ZmV0Y2hTdGFydCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fZnJhbWUt
PmxvYWRlcigpLT5mcmFtZUxvYWRUaW1lbGluZSgpLT5mZXRjaFN0YXJ0ICogMTAwMCk7Cit9CisK
K3Vuc2lnbmVkIGxvbmcgbG9uZyBOYXZpZ2F0aW9uVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9mcmFtZS0+bG9hZGVyKCktPmZy
YW1lTG9hZFRpbWVsaW5lKCktPnVubG9hZEV2ZW50U3RhcnQgKiAxMDAwKTsKK30KKwordW5zaWdu
ZWQgbG9uZyBsb25nIE5hdmlnYXRpb25UaW1pbmc6OnVubG9hZEV2ZW50RW5kKCkgY29uc3QKK3sK
KyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9mcmFtZS0+bG9hZGVyKCktPmZyYW1lTG9hZFRp
bWVsaW5lKCktPnVubG9hZEV2ZW50RW5kICogMTAwMCk7Cit9CisKK3Vuc2lnbmVkIGxvbmcgbG9u
ZyBOYXZpZ2F0aW9uVGltaW5nOjpsb2FkRXZlbnRTdGFydCgpIGNvbnN0Cit7CisgICAgaWYgKCFt
X2ZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNp
Z25lZCBsb25nIGxvbmc+KG1fZnJhbWUtPmxvYWRlcigpLT5mcmFtZUxvYWRUaW1lbGluZSgpLT5s
b2FkRXZlbnRTdGFydCAqIDEwMDApOworfQorCit1bnNpZ25lZCBsb25nIGxvbmcgTmF2aWdhdGlv
blRpbWluZzo6bG9hZEV2ZW50RW5kKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9u
Zz4obV9mcmFtZS0+bG9hZGVyKCktPmZyYW1lTG9hZFRpbWVsaW5lKCktPmxvYWRFdmVudEVuZCAq
IDEwMDApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvTmF2aWdhdGlvblRpbWluZy5oIGIvV2ViQ29yZS9wYWdlL05hdmlnYXRpb25UaW1pbmcu
aAppbmRleCA5NTQ4MmVlYjllMzdkNDljYzUxMTIwZTQ0ZDFjYWU3NDFlZGFiNGViLi40NjI2MWVi
ZWNmOWY2MjIyMGMwMGI1Yzc4Y2M5Mzc1NzJkZWMwZDJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdGlvblRpbWluZy5oCisrKyBiL1dlYkNvcmUvcGFnZS9OYXZpZ2F0aW9uVGltaW5n
LmgKQEAgLTQ3LDcgKzQ3LDEyIEBAIHB1YmxpYzoKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsK
ICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOwogCi0gICAgdW5zaWduZWQgbG9uZyBuYXZpZ2F0
aW9uU3RhcnQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgbmF2aWdhdGlvblN0YXJ0
KCkgY29uc3Q7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGZldGNoU3RhcnQoKSBjb25zdDsKKyAg
ICB1bnNpZ25lZCBsb25nIGxvbmcgdW5sb2FkRXZlbnRTdGFydCgpIGNvbnN0OworICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyB1bmxvYWRFdmVudEVuZCgpIGNvbnN0OworICAgIHVuc2lnbmVkIGxvbmcg
bG9uZyBsb2FkRXZlbnRTdGFydCgpIGNvbnN0OworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2Fk
RXZlbnRFbmQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBOYXZpZ2F0aW9uVGltaW5nKEZyYW1l
Kik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvTmF2aWdhdGlvblRpbWluZy5pZGwgYi9XZWJD
b3JlL3BhZ2UvTmF2aWdhdGlvblRpbWluZy5pZGwKaW5kZXggZTlhMjU5MDBjYWMyMDMyYzczZTQ5
N2E5NmVmMTZjN2EyYjI4YTM5YS4uMzVkNzM1N2Q0MzBlZTkzY2MxNjVmNjYwNWE2MjdkOGQ2MDM4
OGUzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL05hdmlnYXRpb25UaW1pbmcuaWRsCisrKyBi
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0aW9uVGltaW5nLmlkbApAQCAtMzIsOCArMzIsMjMgQEAgbW9k
dWxlIHdpbmRvdyB7CiAKICAgICAvLyBTZWU6IGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBp
L1dlYlRpbWluZy8KICAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVdFQl9USU1JTkcsIE9taXRD
b25zdHJ1Y3Rvcl0gTmF2aWdhdGlvblRpbWluZyB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBsb25nIG5hdmlnYXRpb25TdGFydDsKLSAgICAgICAgLy8gRklYTUU6IEltcGxl
bWVudCByZW1haW5kZXIgb2YgaW50ZXJmYWNlLgorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBsb25nIG5hdmlnYXRpb25TdGFydDsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBmZXRjaFN0YXJ0OworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHVubG9hZEV2ZW50U3RhcnQ7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgdW5sb2FkRXZlbnRFbmQ7CisgICAg
ICAgIC8vIEZJWE1FOiBSZXRyaWV2ZSB0aGVzZSBtYXJrcyBmcm9tIHRoZSBuZXR3b3JrIHBsYXRm
b3JtLgorICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHJl
ZGlyZWN0U3RhcnQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxvbmcgcmVkaXJlY3RFbmQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGxvbmcgZG9tYWluTG9va3VwU3RhcnQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgZG9tYWluTG9va3VwRW5kOworICAgICAgICAvLyByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIGNvbm5lY3RTdGFydDsKKyAgICAgICAg
Ly8gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBjb25uZWN0RW5kOworICAg
ICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHJlcXVlc3RTdGFy
dDsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyByZXF1
ZXN0RW5kOworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25n
IHJlc3BvbnNlU3RhcnQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxvbmcgcmVzcG9uc2VFbmQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGxvbmcgbG9hZEV2ZW50U3RhcnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxvbmcgbG9hZEV2ZW50RW5kOwogICAgIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60052</attachid>
            <date>2010-06-29 14:12:24 -0700</date>
            <delta_ts>2010-07-02 10:38:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41332-20100629141223.patch</filename>
            <type>text/plain</type>
            <size>16054</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OTc1Mjg3NjA3NjllMThkYmM0NWI0OTNkMWM5OWQ2YmZjNWIzNmQ0Li5lNGUwMzQw
MWQ0Yzk3NTUyZWJiMzdkZDgzNDhhYTE2OWQ0NGU0MDJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDYtMjggIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgV2Vi
IFRpbWluZyBuYXZpZ2F0aW9uU3RhcnQsIGZldGNoU3RhcnQsIGxvYWQgYW5kIHVubG9hZCBldmVu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMzMy
CisKKyAgICAgICAgRXhwZWN0YXRpb25zIHNldCB0byBGQUlMIGJlY2F1c2UgZGlzYWJsZWQgYnkg
ZGVmYXVsdC4gUGFzc2VzIHdpdGggLS1lbmFibGUtd2ViLXRpbWluZy4KKworICAgICAgICAqIGZh
c3QvZG9tL3NjcmlwdC10ZXN0cy93ZWJ0aW1pbmcuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxk
QmVHcmVhdGVyVGhhbk9yRXF1YWwpOgorICAgICAgICAoY2hlY2tUaW1pbmdCZWZvcmVMb2FkKToK
KyAgICAgICAgKGNoZWNrV2ViVGltaW5nT25Mb2FkKToKKyAgICAgICAgKGNoZWNrV2ViVGltaW5n
QWZ0ZXJMb2FkKToKKyAgICAgICAgKiBmYXN0L2RvbS93ZWJ0aW1pbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS93ZWJ0aW1pbmcuaHRtbDogQWRkZWQuCisKIDIwMTAt
MDYtMjkgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NjcmlwdC10ZXN0cy93ZWJ0aW1pbmcuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQt
dGVzdHMvd2VidGltaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MGNjODgzMGRhNDVkMzUyZmJiMDc4Nzhh
MWIzMTNiOTQzMmVmOTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
Y3JpcHQtdGVzdHMvd2VidGltaW5nLmpzCkBAIC0wLDAgKzEsNzEgQEAKK2Rlc2NyaXB0aW9uKCJU
aGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIDxhIGhyZWY9J2h0dHA6Ly9kZXYudzMub3JnLzIwMDYv
d2ViYXBpL1dlYlRpbWluZy8nPldlYiBUaW1pbmc8L2E+IGF0dHJpYnV0ZXMgYXJlIGF2YWlsYWJs
ZSBhbmQgaGF2ZSByZWFzb25hYmxlIHZhbHVlcy4iKTsKKwordmFyIHBlcmZvcm1hbmNlID0gd2lu
ZG93LnBlcmZvcm1hbmNlIHx8IHt9OwordmFyIHRpbWluZyA9IHBlcmZvcm1hbmNlLnRpbWluZyB8
fCB7fTsKKworLy8gR2V0IHRoZSBvcmRlciBvZiBtYWduaXR1ZGUgY29ycmVjdCB3aXRob3V0IGEg
Y2hhbmNlIGZvciBmbGFraW5lc3MuCit2YXIgb25lSG91ck1pbGxpc2Vjb25kcyA9IDYwICogNjAg
KiAxMDAwOwordmFyIGN1cnJlbnRVVEMgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpOwordmFyIG9u
ZUhvdXJBZ29VVEMgPSBjdXJyZW50VVRDIC0gb25lSG91ck1pbGxpc2Vjb25kczsKKworLy8gRklY
TUU6IE1vdmUgdG8gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanM/
CitmdW5jdGlvbiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbChfYSwgX2IpCit7CisgICAgaWYg
KHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAg
IGRlYnVnKCJXQVJOOiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCBleHBlY3RzIHN0cmluZyBh
cmd1bWVudHMiKTsKKworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkg
eworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4
Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAgIGlmIChl
eGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2Ig
KyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgZWxzZSBpZiAodHlwZW9m
IF9hdiA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPCBfYnYpCisgICAgICAgIHRlc3RGYWlsZWQoX2Eg
KyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBXYXMgIiArIF9hdiArICIuIik7CisgICAgZWxz
ZQorICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyA+PSAiICsgX2IpOworfQorCitmdW5jdGlv
biBjaGVja1RpbWluZ0JlZm9yZUxvYWQoKQoreworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVx
dWFsKCJ0aW1pbmcubmF2aWdhdGlvblN0YXJ0IiwgIm9uZUhvdXJBZ29VVEMiKTsKKworICAgIHNo
b3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcuZmV0Y2hTdGFydCIsICJ0aW1pbmcubmF2
aWdhdGlvblN0YXJ0Iik7CisKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5n
LnVubG9hZEV2ZW50U3RhcnQiLCAidGltaW5nLm5hdmlnYXRpb25TdGFydCIpOworCisgICAgc2hv
dWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy51bmxvYWRFdmVudEVuZCIsICJ0aW1pbmcu
dW5sb2FkRXZlbnRTdGFydCIpOworCisgICAgc2hvdWxkQmUoInRpbWluZy5sb2FkRXZlbnRTdGFy
dCIsICIwIik7CisKKyAgICBzaG91bGRCZSgidGltaW5nLmxvYWRFdmVudEVuZCIsICIwIik7CisK
KyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGNoZWNrV2ViVGltaW5nT25Mb2Fk
LCBmYWxzZSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrV2ViVGltaW5nT25Mb2FkKCkKK3sKKyAgICBz
aG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLmxvYWRFdmVudFN0YXJ0IiwgInRpbWlu
Zy5mZXRjaFN0YXJ0Iik7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy5s
b2FkRXZlbnRTdGFydCIsICJ0aW1pbmcudW5sb2FkRXZlbnRFbmQiKTsKKworICAgIHNob3VsZEJl
KCJ0aW1pbmcubG9hZEV2ZW50RW5kIiwgIjAiKTsKKworICAgIHNldFRpbWVvdXQoImNoZWNrV2Vi
VGltaW5nQWZ0ZXJMb2FkKCkiLCAwKTsKK30KKworZnVuY3Rpb24gY2hlY2tXZWJUaW1pbmdBZnRl
ckxvYWQoKQoreworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcubG9hZEV2
ZW50RW5kIiwgInRpbWluZy5sb2FkRXZlbnRTdGFydCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7
Cit9CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworY2hlY2tUaW1pbmdCZWZvcmVMb2FkKCk7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vd2VidGltaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dl
YnRpbWluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ5YjBmMGVmOTYyYmE3ZmIxYThkNjkz
OTRmYWRlZmQ5YjQ2NDM1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3dlYnRpbWluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0IGNoZWNr
cyB0aGF0IHRoZSBXZWIgVGltaW5nIGF0dHJpYnV0ZXMgYXJlIGF2YWlsYWJsZSBhbmQgaGF2ZSBy
ZWFzb25hYmxlIHZhbHVlcy4NCisNCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuDQorDQorDQor
RkFJTCB0aW1pbmcubmF2aWdhdGlvblN0YXJ0IHNob3VsZCBiZSA+PSBvbmVIb3VyQWdvVVRDLiBX
YXMgdW5kZWZpbmVkLg0KK0ZBSUwgdGltaW5nLmZldGNoU3RhcnQgc2hvdWxkIGJlID49IHRpbWlu
Zy5uYXZpZ2F0aW9uU3RhcnQuIFdhcyB1bmRlZmluZWQuDQorRkFJTCB0aW1pbmcudW5sb2FkRXZl
bnRTdGFydCBzaG91bGQgYmUgPj0gdGltaW5nLm5hdmlnYXRpb25TdGFydC4gV2FzIHVuZGVmaW5l
ZC4NCitGQUlMIHRpbWluZy51bmxvYWRFdmVudEVuZCBzaG91bGQgYmUgPj0gdGltaW5nLnVubG9h
ZEV2ZW50U3RhcnQuIFdhcyB1bmRlZmluZWQuDQorRkFJTCB0aW1pbmcubG9hZEV2ZW50U3RhcnQg
c2hvdWxkIGJlIDAgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRl
ZmluZWQpLg0KK0ZBSUwgdGltaW5nLmxvYWRFdmVudEVuZCBzaG91bGQgYmUgMCAob2YgdHlwZSBu
dW1iZXIpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuDQorRkFJTCB0aW1pbmcu
bG9hZEV2ZW50U3RhcnQgc2hvdWxkIGJlID49IHRpbWluZy5mZXRjaFN0YXJ0LiBXYXMgdW5kZWZp
bmVkLg0KK0ZBSUwgdGltaW5nLmxvYWRFdmVudFN0YXJ0IHNob3VsZCBiZSA+PSB0aW1pbmcudW5s
b2FkRXZlbnRFbmQuIFdhcyB1bmRlZmluZWQuDQorRkFJTCB0aW1pbmcubG9hZEV2ZW50RW5kIHNo
b3VsZCBiZSAwIChvZiB0eXBlIG51bWJlcikuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZp
bmVkKS4NCitGQUlMIHRpbWluZy5sb2FkRXZlbnRFbmQgc2hvdWxkIGJlID49IHRpbWluZy5sb2Fk
RXZlbnRTdGFydC4gV2FzIHVuZGVmaW5lZC4NCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3dlYnRpbWluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2VidGltaW5nLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGRiNjVjNTcxNjM0NzFlYmQ4ZTA4MTYwMDAzOTE4NTk2M2QwMjE2ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dlYnRpbWluZy5odG1sCkBAIC0w
LDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvd2VidGltaW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzhhZjBm
ZDkxNDVmOGNmNTc2YzA4NGUxNTE1MGI0ZjE0ZGNmYjFkMi4uMzY5NDdjNDAzYjliNmRiYmQ4Y2Rk
ZTQ3YTAxMjQzZjQzMWUxZTUwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wNi0yOCAgVG9ueSBHZW50
aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBXZWIgVGltaW5nIG5hdmlnYXRpb25TdGFy
dCwgZmV0Y2hTdGFydCwgbG9hZCBhbmQgdW5sb2FkIGV2ZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDEzMzIKKworICAgICAgICBUZXN0OiBmYXN0
L2RvbS93ZWJ0aW1pbmcuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wTG9hZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJXaWxsU3VibWl0Rm9ybSk6Cisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRUaW1lbGluZTo6RnJhbWVMb2FkVGltZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmZyYW1lTG9hZFRpbWVsaW5lKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJU
eXBlcy5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6ZGlzcGF0Y2hMb2FkRXZlbnQpOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdGlv
blRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uVGltaW5nOjpuYXZpZ2F0
aW9uU3RhcnQpOiBTaG91bGQgYmUgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhlIHVzZXIgYWN0
aW9uIHRoYXQgaW5pdGlhdGVkIHRoZSBuYXZpZ2F0aW9uLgorICAgICAgICAoV2ViQ29yZTo6TmF2
aWdhdGlvblRpbWluZzo6ZmV0Y2hTdGFydCk6IFNob3VsZCBiZSBhcyBjbG9zZSBhcyBwb3NzaWJs
ZSB0byBXZWJLaXQgcmVxdWVzdGluZyB0aGUgcmVzb3VyY2UgZnJvbSB0aGUgcGxhdGZvcm0uCisg
ICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KTogU3Rh
cnQgb2YgdW5sb2FkIGV2ZW50IGZvciBwcmV2aW91cyBwYWdlLgorICAgICAgICAoV2ViQ29yZTo6
TmF2aWdhdGlvblRpbWluZzo6dW5sb2FkRXZlbnRFbmQpOiBFbmQgb2YgdW5sb2FkIGV2ZW50IGZv
ciBwcmV2aW91cyBwYWdlLgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblRpbWluZzo6bG9h
ZEV2ZW50U3RhcnQpOiBTdGFydCBvZiBsb2FkIGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6TmF2
aWdhdGlvblRpbWluZzo6bG9hZEV2ZW50RW5kKTogRW5kIG9mIGxvYWQgZXZlbnQuCisgICAgICAg
ICogcGFnZS9OYXZpZ2F0aW9uVGltaW5nLmg6CisgICAgICAgICogcGFnZS9OYXZpZ2F0aW9uVGlt
aW5nLmlkbDoKKwogMjAxMC0wNi0yOSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IDY5M2U5ODU1ODM3ZGJlNzcxYjg4OGQxYjk5ZTI4Njc4MWU1OGY5NzIuLjU2NGQ3
N2U2OGQ5ZTZkMTM5YjUzNTJlNjg4NmZiODVlOTczNmUzNDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKQEAgLTQzNyw2ICs0MzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdG9wTG9hZGluZyhVbmxv
YWRFdmVudFBvbGljeSB1bmxvYWRFdmVudFBvbGljeSwgRGF0YWJhc2VQb2xpYwogICAgIGlmICht
X2ZyYW1lLT5kb2N1bWVudCgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCktPnBhcnNlcigpKQogICAg
ICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIoKS0+c3RvcFBhcnNpbmcoKTsKIAorICAg
IG1fZnJhbWVMb2FkVGltZWxpbmUudW5sb2FkRXZlbnRTdGFydCA9IGN1cnJlbnRUaW1lKCk7CiAg
ICAgaWYgKHVubG9hZEV2ZW50UG9saWN5ICE9IFVubG9hZEV2ZW50UG9saWN5Tm9uZSkgewogICAg
ICAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSkgewogICAgICAgICAgICAgaWYgKG1fZGlkQ2Fs
bEltcGxpY2l0Q2xvc2UgJiYgIW1fd2FzVW5sb2FkRXZlbnRFbWl0dGVkKSB7CkBAIC00NjcsNiAr
NDY4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3kg
dW5sb2FkRXZlbnRQb2xpY3ksIERhdGFiYXNlUG9saWMKICAgICAgICAgICAgICAgICBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5yZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogICAgICAgICB9CiAgICAg
fQorICAgIG1fZnJhbWVMb2FkVGltZWxpbmUudW5sb2FkRXZlbnRFbmQgPSBjdXJyZW50VGltZSgp
OwogCiAgICAgbV9pc0NvbXBsZXRlID0gdHJ1ZTsgLy8gdG8gYXZvaWQgY2FsbGluZyBjb21wbGV0
ZWQoKSBpbiBmaW5pc2hlZFBhcnNpbmcoKQogICAgIG1faXNMb2FkaW5nTWFpblJlc291cmNlID0g
ZmFsc2U7CkBAIC0xNDk2LDYgKzE0OTgsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERv
Y3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdAogCiAg
ICAgQVNTRVJUKG1fZnJhbWUtPnZpZXcoKSk7CiAKKyAgICBtX2ZyYW1lTG9hZFRpbWVsaW5lID0g
RnJhbWVMb2FkVGltZWxpbmUoKTsKKyAgICBtX2ZyYW1lTG9hZFRpbWVsaW5lLm5hdmlnYXRpb25T
dGFydCA9IGN1cnJlbnRUaW1lKCk7CisKICAgICBpZiAobV9wYWdlRGlzbWlzc2FsRXZlbnRCZWlu
Z0Rpc3BhdGNoZWQpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjQ5NCw2ICsyNDk5LDkgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJXaWxsU3VibWl0Rm9ybSgpCiAKICAgICB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIgPSAwOwogCisgICAgQVNTRVJUKCFtX2ZyYW1lTG9hZFRp
bWVsaW5lLmZldGNoU3RhcnQpOworICAgIG1fZnJhbWVMb2FkVGltZWxpbmUuZmV0Y2hTdGFydCA9
IGN1cnJlbnRUaW1lKCk7CisKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkg
ewogICAgICAgICBpZGVudGlmaWVyID0gcGFnZS0+cHJvZ3Jlc3MoKS0+Y3JlYXRlVW5pcXVlSWRl
bnRpZmllcigpOwogICAgICAgICBub3RpZmllcigpLT5hc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFs
UmVxdWVzdChpZGVudGlmaWVyLCBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIuZ2V0KCksIG1f
cHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+b3JpZ2luYWxSZXF1ZXN0KCkpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKaW5kZXggODk4MDUyMGE5NWFjODQ5ZmRjMzdmOTYzMDIyMGZmYmQ5NjM4MmQ0Zi4uNzU2
ZWJjMzRiMWExZWMxZGFmMzdiYmE3NjRlMDA5NDdkOTFmYTg5OCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
CkBAIC0xOTMsNiArMTkzLDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2hhbmdlSWNvbnMoRG9j
dW1lbnRMb2FkZXIqKTsKIAogICAgIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUoKSBjb25zdDsKKyAg
ICBGcmFtZUxvYWRUaW1lbGluZSogZnJhbWVMb2FkVGltZWxpbmUoKSB7IHJldHVybiAmbV9mcmFt
ZUxvYWRUaW1lbGluZTsgfQorCiAgICAgQ2FjaGVQb2xpY3kgc3VicmVzb3VyY2VDYWNoZVBvbGlj
eSgpIGNvbnN0OwogCiAgICAgdm9pZCBkaWRGaXJzdExheW91dCgpOwpAQCAtNDQ0LDYgKzQ0Niw3
IEBAIHByaXZhdGU6CiAKICAgICBGcmFtZVN0YXRlIG1fc3RhdGU7CiAgICAgRnJhbWVMb2FkVHlw
ZSBtX2xvYWRUeXBlOworICAgIEZyYW1lTG9hZFRpbWVsaW5lIG1fZnJhbWVMb2FkVGltZWxpbmU7
CiAKICAgICAvLyBEb2N1bWVudCBsb2FkZXJzIGZvciB0aGUgdGhyZWUgcGhhc2VzIG9mIGZyYW1l
IGxvYWRpbmcuIE5vdGUgdGhhdCB3aGlsZSAKICAgICAvLyBhIG5ldyByZXF1ZXN0IGlzIGJlaW5n
IGxvYWRlZCwgdGhlIG9sZCBkb2N1bWVudCBsb2FkZXIgbWF5IHN0aWxsIGJlIHJlZmVyZW5jZWQu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmggYi9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggMDE2ZGUxOWQyNDE1ZmRkNzczMGU2M2Jh
NzE3NGI4MTVkYjQ2YjA0My4uYjg4NTMwZjFmMjY4OWVhZjcyNmZjNWY1MDc3NjM5NWMzMDEyZTNk
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCisrKyBiL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtNjAsNiArNjAsMjUgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBGcmFtZUxvYWRUeXBlQmFja1dNTERlY2tOb3RBY2Nlc3Np
YmxlCiAgICAgfTsKIAorICAgIHN0cnVjdCBGcmFtZUxvYWRUaW1lbGluZSB7CisgICAgICAgIEZy
YW1lTG9hZFRpbWVsaW5lKCkKKyAgICAgICAgICAgIDogbmF2aWdhdGlvblN0YXJ0KDApCisgICAg
ICAgICAgICAsIHVubG9hZEV2ZW50U3RhcnQoMCkKKyAgICAgICAgICAgICwgdW5sb2FkRXZlbnRF
bmQoMCkKKyAgICAgICAgICAgICwgZmV0Y2hTdGFydCgwKQorICAgICAgICAgICAgLCBsb2FkRXZl
bnRTdGFydCgwKQorICAgICAgICAgICAgLCBsb2FkRXZlbnRFbmQoMCkKKyAgICAgICAgeworICAg
ICAgICB9CisKKyAgICAgICAgZG91YmxlIG5hdmlnYXRpb25TdGFydDsKKyAgICAgICAgZG91Ymxl
IHVubG9hZEV2ZW50U3RhcnQ7CisgICAgICAgIGRvdWJsZSB1bmxvYWRFdmVudEVuZDsKKyAgICAg
ICAgZG91YmxlIGZldGNoU3RhcnQ7CisgICAgICAgIGRvdWJsZSBsb2FkRXZlbnRTdGFydDsKKyAg
ICAgICAgZG91YmxlIGxvYWRFdmVudEVuZDsKKyAgICB9OworCiAgICAgZW51bSBOYXZpZ2F0aW9u
VHlwZSB7CiAgICAgICAgIE5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQsCiAgICAgICAgIE5hdmln
YXRpb25UeXBlRm9ybVN1Ym1pdHRlZCwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggYTA2ZGQ3OTY2YzEzMmI4
YzQxNjAyMzlkYzk0NDJmZTUwNzE0MDY0My4uZmY1MmRhYTg4MWY1ZDgzNDJjMGIxYjRhMjJhNWRh
ZTRmYzk4ZDQwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTc4LDggKzc4LDkgQEAKICNpbmNsdWRlICJT
dWRkZW5UZXJtaW5hdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5jbHVkZSA8
YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgc3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsKQEAg
LTE0MjgsNyArMTQyOSwxMSBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogCiB2b2lkIERPTVdp
bmRvdzo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQogeworICAgIGlmIChGcmFtZUxvYWRlciogZnJhbWVM
b2FkZXIgPSBmcmFtZSgpID8gZnJhbWUoKS0+bG9hZGVyKCkgOiAwKQorICAgICAgICBmcmFtZUxv
YWRlci0+ZnJhbWVMb2FkVGltZWxpbmUoKS0+bG9hZEV2ZW50U3RhcnQgPSBjdXJyZW50VGltZSgp
OwogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubG9hZEV2ZW50
LCBmYWxzZSwgZmFsc2UpLCBkb2N1bWVudCgpKTsKKyAgICBpZiAoRnJhbWVMb2FkZXIqIGZyYW1l
TG9hZGVyID0gZnJhbWUoKSA/IGZyYW1lKCktPmxvYWRlcigpIDogMCkKKyAgICAgICAgZnJhbWVM
b2FkZXItPmZyYW1lTG9hZFRpbWVsaW5lKCktPmxvYWRFdmVudEVuZCA9IGN1cnJlbnRUaW1lKCk7
CiAKICAgICAvLyBGb3IgbG9hZCBldmVudHMsIHNlbmQgYSBzZXBhcmF0ZSBsb2FkIGV2ZW50IHRv
IHRoZSBlbmNsb3NpbmcgZnJhbWUgb25seS4KICAgICAvLyBUaGlzIGlzIGEgRE9NIGV4dGVuc2lv
biBhbmQgaXMgaW5kZXBlbmRlbnQgb2YgYnViYmxpbmcvY2FwdHVyaW5nIHJ1bGVzIG9mCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvTmF2aWdhdGlvblRpbWluZy5jcHAgYi9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdGlvblRpbWluZy5jcHAKaW5kZXggOGNiYmJjMTI5ODc3Yzc3OGJmYTA0MDY3OTVmM2Iw
M2VhNWI2NjJkNS4uMmVhYjUzNTNhOGZiZGRmNGMxNDAwNjNjNzlkNTlkZGU5YmQyZTNmMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL05hdmlnYXRpb25UaW1pbmcuY3BwCisrKyBiL1dlYkNvcmUv
cGFnZS9OYXZpZ2F0aW9uVGltaW5nLmNwcApAQCAtNTIsMTIgKzUyLDUyIEBAIHZvaWQgTmF2aWdh
dGlvblRpbWluZzo6ZGlzY29ubmVjdEZyYW1lKCkKICAgICBtX2ZyYW1lID0gMDsKIH0KIAotdW5z
aWduZWQgbG9uZyBOYXZpZ2F0aW9uVGltaW5nOjpuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdAordW5z
aWduZWQgbG9uZyBsb25nIE5hdmlnYXRpb25UaW1pbmc6Om5hdmlnYXRpb25TdGFydCgpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiAw
OyAvLyBGSVhNRQorICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1f
ZnJhbWUtPmxvYWRlcigpLT5mcmFtZUxvYWRUaW1lbGluZSgpLT5uYXZpZ2F0aW9uU3RhcnQgKiAx
MDAwKTsKK30KKwordW5zaWduZWQgbG9uZyBsb25nIE5hdmlnYXRpb25UaW1pbmc6OmZldGNoU3Rh
cnQoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX2ZyYW1lLT5sb2FkZXIo
KS0+ZnJhbWVMb2FkVGltZWxpbmUoKS0+ZmV0Y2hTdGFydCAqIDEwMDApOworfQorCit1bnNpZ25l
ZCBsb25nIGxvbmcgTmF2aWdhdGlvblRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCgpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fZnJhbWUtPmxvYWRlcigpLT5mcmFtZUxvYWRU
aW1lbGluZSgpLT51bmxvYWRFdmVudFN0YXJ0ICogMTAwMCk7Cit9CisKK3Vuc2lnbmVkIGxvbmcg
bG9uZyBOYXZpZ2F0aW9uVGltaW5nOjp1bmxvYWRFdmVudEVuZCgpIGNvbnN0Cit7CisgICAgaWYg
KCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
bnNpZ25lZCBsb25nIGxvbmc+KG1fZnJhbWUtPmxvYWRlcigpLT5mcmFtZUxvYWRUaW1lbGluZSgp
LT51bmxvYWRFdmVudEVuZCAqIDEwMDApOworfQorCit1bnNpZ25lZCBsb25nIGxvbmcgTmF2aWdh
dGlvblRpbWluZzo6bG9hZEV2ZW50U3RhcnQoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9u
ZyBsb25nPihtX2ZyYW1lLT5sb2FkZXIoKS0+ZnJhbWVMb2FkVGltZWxpbmUoKS0+bG9hZEV2ZW50
U3RhcnQgKiAxMDAwKTsKK30KKwordW5zaWduZWQgbG9uZyBsb25nIE5hdmlnYXRpb25UaW1pbmc6
OmxvYWRFdmVudEVuZCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fZnJh
bWUtPmxvYWRlcigpLT5mcmFtZUxvYWRUaW1lbGluZSgpLT5sb2FkRXZlbnRFbmQgKiAxMDAwKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL05h
dmlnYXRpb25UaW1pbmcuaCBiL1dlYkNvcmUvcGFnZS9OYXZpZ2F0aW9uVGltaW5nLmgKaW5kZXgg
OTU0ODJlZWI5ZTM3ZDQ5Y2M1MTEyMGU0NGQxY2FlNzQxZWRhYjRlYi4uNDYyNjFlYmVjZjlmNjIy
MjBjMDBiNWM3OGNjOTM3NTcyZGVjMGQyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL05hdmln
YXRpb25UaW1pbmcuaAorKysgYi9XZWJDb3JlL3BhZ2UvTmF2aWdhdGlvblRpbWluZy5oCkBAIC00
Nyw3ICs0NywxMiBAQCBwdWJsaWM6CiAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CiAgICAgdm9p
ZCBkaXNjb25uZWN0RnJhbWUoKTsKIAotICAgIHVuc2lnbmVkIGxvbmcgbmF2aWdhdGlvblN0YXJ0
KCkgY29uc3Q7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIG5hdmlnYXRpb25TdGFydCgpIGNvbnN0
OworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBmZXRjaFN0YXJ0KCkgY29uc3Q7CisgICAgdW5zaWdu
ZWQgbG9uZyBsb25nIHVubG9hZEV2ZW50U3RhcnQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBsb25n
IGxvbmcgdW5sb2FkRXZlbnRFbmQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgbG9h
ZEV2ZW50U3RhcnQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgbG9hZEV2ZW50RW5k
KCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgTmF2aWdhdGlvblRpbWluZyhGcmFtZSopOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL05hdmlnYXRpb25UaW1pbmcuaWRsIGIvV2ViQ29yZS9wYWdl
L05hdmlnYXRpb25UaW1pbmcuaWRsCmluZGV4IGU5YTI1OTAwY2FjMjAzMmM3M2U0OTdhOTZlZjE2
YzdhMmIyOGEzOWEuLjM1ZDczNTdkNDMwZWU5M2NjMTY1ZjY2MDVhNjI3ZDhkNjAzODhlM2IgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9OYXZpZ2F0aW9uVGltaW5nLmlkbAorKysgYi9XZWJDb3Jl
L3BhZ2UvTmF2aWdhdGlvblRpbWluZy5pZGwKQEAgLTMyLDggKzMyLDIzIEBAIG1vZHVsZSB3aW5k
b3cgewogCiAgICAgLy8gU2VlOiBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1p
bmcvCiAgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1XRUJfVElNSU5HLCBPbWl0Q29uc3RydWN0
b3JdIE5hdmlnYXRpb25UaW1pbmcgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBuYXZpZ2F0aW9uU3RhcnQ7Ci0gICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcmVt
YWluZGVyIG9mIGludGVyZmFjZS4KKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgbG9uZyBuYXZpZ2F0aW9uU3RhcnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxvbmcgZmV0Y2hTdGFydDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbG9uZyB1bmxvYWRFdmVudFN0YXJ0OworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHVubG9hZEV2ZW50RW5kOworICAgICAgICAvLyBG
SVhNRTogUmV0cmlldmUgdGhlc2UgbWFya3MgZnJvbSB0aGUgbmV0d29yayBwbGF0Zm9ybS4KKyAg
ICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyByZWRpcmVjdFN0
YXJ0OworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHJl
ZGlyZWN0RW5kOworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBs
b25nIGRvbWFpbkxvb2t1cFN0YXJ0OworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBsb25nIGRvbWFpbkxvb2t1cEVuZDsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBjb25uZWN0U3RhcnQ7CisgICAgICAgIC8vIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgY29ubmVjdEVuZDsKKyAgICAgICAgLy8g
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyByZXF1ZXN0U3RhcnQ7CisgICAg
ICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgcmVxdWVzdEVuZDsK
KyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyByZXNwb25z
ZVN0YXJ0OworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25n
IHJlc3BvbnNlRW5kOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBs
b25nIGxvYWRFdmVudFN0YXJ0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsb25nIGxvYWRFdmVudEVuZDsKICAgICB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60378</attachid>
            <date>2010-07-02 10:38:57 -0700</date>
            <delta_ts>2010-07-07 17:35:07 -0700</delta_ts>
            <desc>Merge with 41442</desc>
            <filename>bug-41332-20100702103856.patch</filename>
            <type>text/plain</type>
            <size>15746</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MmE4NWUwYmUyOTY5ZGE1MWY1MjdkY2ViOWJhYTllNDA3ZGNhM2IwLi4xNmFhODdj
MGU4MjRlZGUxODhlN2VkYzU5YzE1MTY3ODg0OWYwMGY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDctMDIgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgV2Vi
IFRpbWluZyBuYXZpZ2F0aW9uU3RhcnQsIGZldGNoU3RhcnQsIGxvYWQgYW5kIHVubG9hZCBldmVu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMzMy
CisKKyAgICAgICAgRXhwZWN0YXRpb25zIHNldCB0byBGQUlMIGJlY2F1c2UgZGlzYWJsZWQgYnkg
ZGVmYXVsdC4gUGFzc2VzIHdpdGggLS13ZWItdGltaW5nLgorCisgICAgICAgICogZmFzdC9kb20v
c2NyaXB0LXRlc3RzL3dlYnRpbWluZy5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZUdyZWF0
ZXJUaGFuT3JFcXVhbCk6CisgICAgICAgIChjaGVja1RpbWluZ0JlZm9yZUxvYWQpOgorICAgICAg
ICAoY2hlY2tXZWJUaW1pbmdPbkxvYWQpOgorICAgICAgICAoY2hlY2tXZWJUaW1pbmdBZnRlckxv
YWQpOgorICAgICAgICAqIGZhc3QvZG9tL3dlYnRpbWluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL3dlYnRpbWluZy5odG1sOiBBZGRlZC4KKwogMjAxMC0wNy0wMiAg
UGV0ZXIgVmFyZ2EgIDxwdmFyZ2FAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0
LXRlc3RzL3dlYnRpbWluZy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy93
ZWJ0aW1pbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTUwY2M4ODMwZGE0NWQzNTJmYmIwNzg3OGExYjMxM2I5
NDMyZWY5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10
ZXN0cy93ZWJ0aW1pbmcuanMKQEAgLTAsMCArMSw3MSBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVz
dCBjaGVja3MgdGhhdCB0aGUgPGEgaHJlZj0naHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkv
V2ViVGltaW5nLyc+V2ViIFRpbWluZzwvYT4gYXR0cmlidXRlcyBhcmUgYXZhaWxhYmxlIGFuZCBo
YXZlIHJlYXNvbmFibGUgdmFsdWVzLiIpOworCit2YXIgcGVyZm9ybWFuY2UgPSB3aW5kb3cucGVy
Zm9ybWFuY2UgfHwge307Cit2YXIgdGltaW5nID0gcGVyZm9ybWFuY2UudGltaW5nIHx8IHt9Owor
CisvLyBHZXQgdGhlIG9yZGVyIG9mIG1hZ25pdHVkZSBjb3JyZWN0IHdpdGhvdXQgYSBjaGFuY2Ug
Zm9yIGZsYWtpbmVzcy4KK3ZhciBvbmVIb3VyTWlsbGlzZWNvbmRzID0gNjAgKiA2MCAqIDEwMDA7
Cit2YXIgY3VycmVudFVUQyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7Cit2YXIgb25lSG91ckFn
b1VUQyA9IGN1cnJlbnRVVEMgLSBvbmVIb3VyTWlsbGlzZWNvbmRzOworCisvLyBGSVhNRTogTW92
ZSB0byBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcz8KK2Z1bmN0
aW9uIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKF9hLCBfYikKK3sKKyAgICBpZiAodHlwZW9m
IF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICAgICAgZGVidWco
IldBUk46IHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50
cyIpOworCisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAgIHRyeSB7CisgICAg
ICAgIF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXhjZXB0aW9u
ID0gZTsKKyAgICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2IpOworCisgICAgaWYgKGV4Y2VwdGlv
bikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlID49ICIgKyBfYiArICIuIFRo
cmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmICh0eXBlb2YgX2F2ID09
ICJ1bmRlZmluZWQiIHx8IF9hdiA8IF9idikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIGJlID49ICIgKyBfYiArICIuIFdhcyAiICsgX2F2ICsgIi4iKTsKKyAgICBlbHNlCisgICAg
ICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzID49ICIgKyBfYik7Cit9CisKK2Z1bmN0aW9uIGNoZWNr
VGltaW5nQmVmb3JlTG9hZCgpCit7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRp
bWluZy5uYXZpZ2F0aW9uU3RhcnQiLCAib25lSG91ckFnb1VUQyIpOworCisgICAgc2hvdWxkQmVH
cmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy5mZXRjaFN0YXJ0IiwgInRpbWluZy5uYXZpZ2F0aW9u
U3RhcnQiKTsKKworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcudW5sb2Fk
RXZlbnRTdGFydCIsICJ0aW1pbmcubmF2aWdhdGlvblN0YXJ0Iik7CisKKyAgICBzaG91bGRCZUdy
ZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLnVubG9hZEV2ZW50RW5kIiwgInRpbWluZy51bmxvYWRF
dmVudFN0YXJ0Iik7CisKKyAgICBzaG91bGRCZSgidGltaW5nLmxvYWRFdmVudFN0YXJ0IiwgIjAi
KTsKKworICAgIHNob3VsZEJlKCJ0aW1pbmcubG9hZEV2ZW50RW5kIiwgIjAiKTsKKworICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgY2hlY2tXZWJUaW1pbmdPbkxvYWQsIGZhbHNl
KTsKK30KKworZnVuY3Rpb24gY2hlY2tXZWJUaW1pbmdPbkxvYWQoKQoreworICAgIHNob3VsZEJl
R3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcubG9hZEV2ZW50U3RhcnQiLCAidGltaW5nLmZldGNo
U3RhcnQiKTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLmxvYWRFdmVu
dFN0YXJ0IiwgInRpbWluZy51bmxvYWRFdmVudEVuZCIpOworCisgICAgc2hvdWxkQmUoInRpbWlu
Zy5sb2FkRXZlbnRFbmQiLCAiMCIpOworCisgICAgc2V0VGltZW91dCgiY2hlY2tXZWJUaW1pbmdB
ZnRlckxvYWQoKSIsIDApOworfQorCitmdW5jdGlvbiBjaGVja1dlYlRpbWluZ0FmdGVyTG9hZCgp
Cit7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy5sb2FkRXZlbnRFbmQi
LCAidGltaW5nLmxvYWRFdmVudFN0YXJ0Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwor
anNUZXN0SXNBc3luYyA9IHRydWU7CitjaGVja1RpbWluZ0JlZm9yZUxvYWQoKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS93ZWJ0aW1pbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2VidGltaW5n
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDliMGYwZWY5NjJiYTdmYjFhOGQ2OTM5NGZhZGVm
ZDliNDY0MzUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2VidGlt
aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQg
dGhlIFdlYiBUaW1pbmcgYXR0cmlidXRlcyBhcmUgYXZhaWxhYmxlIGFuZCBoYXZlIHJlYXNvbmFi
bGUgdmFsdWVzLg0KKw0KK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4NCisNCisNCitGQUlMIHRp
bWluZy5uYXZpZ2F0aW9uU3RhcnQgc2hvdWxkIGJlID49IG9uZUhvdXJBZ29VVEMuIFdhcyB1bmRl
ZmluZWQuDQorRkFJTCB0aW1pbmcuZmV0Y2hTdGFydCBzaG91bGQgYmUgPj0gdGltaW5nLm5hdmln
YXRpb25TdGFydC4gV2FzIHVuZGVmaW5lZC4NCitGQUlMIHRpbWluZy51bmxvYWRFdmVudFN0YXJ0
IHNob3VsZCBiZSA+PSB0aW1pbmcubmF2aWdhdGlvblN0YXJ0LiBXYXMgdW5kZWZpbmVkLg0KK0ZB
SUwgdGltaW5nLnVubG9hZEV2ZW50RW5kIHNob3VsZCBiZSA+PSB0aW1pbmcudW5sb2FkRXZlbnRT
dGFydC4gV2FzIHVuZGVmaW5lZC4NCitGQUlMIHRpbWluZy5sb2FkRXZlbnRTdGFydCBzaG91bGQg
YmUgMCAob2YgdHlwZSBudW1iZXIpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCku
DQorRkFJTCB0aW1pbmcubG9hZEV2ZW50RW5kIHNob3VsZCBiZSAwIChvZiB0eXBlIG51bWJlciku
IFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4NCitGQUlMIHRpbWluZy5sb2FkRXZl
bnRTdGFydCBzaG91bGQgYmUgPj0gdGltaW5nLmZldGNoU3RhcnQuIFdhcyB1bmRlZmluZWQuDQor
RkFJTCB0aW1pbmcubG9hZEV2ZW50U3RhcnQgc2hvdWxkIGJlID49IHRpbWluZy51bmxvYWRFdmVu
dEVuZC4gV2FzIHVuZGVmaW5lZC4NCitGQUlMIHRpbWluZy5sb2FkRXZlbnRFbmQgc2hvdWxkIGJl
IDAgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLg0K
K0ZBSUwgdGltaW5nLmxvYWRFdmVudEVuZCBzaG91bGQgYmUgPj0gdGltaW5nLmxvYWRFdmVudFN0
YXJ0LiBXYXMgdW5kZWZpbmVkLg0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUNCisN
CitURVNUIENPTVBMRVRFDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2Vi
dGltaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93ZWJ0aW1pbmcuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZGI2NWM1NzE2MzQ3MWViZDhlMDgxNjAwMDM5MTg1OTYzZDAyMTZmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2VidGltaW5nLmh0bWwKQEAgLTAsMCArMSwx
MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy93ZWJ0aW1pbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMGExYzE3ZDVlMzZl
YzZkZDdmMTM0NDIzYzQzZTZiOTFiZTk0ZjU1Li5jNGYzYmIyMjFiMTY3MDg5NjMyM2U3MDM2ZDgz
Y2E1NmFkYmNhNjFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEwLTA3LTAyICBUb255IEdlbnRpbGNvcmUg
IDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IFdlYiBUaW1pbmcgbmF2aWdhdGlvblN0YXJ0LCBmZXRj
aFN0YXJ0LCBsb2FkIGFuZCB1bmxvYWQgZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTMzMgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3dl
YnRpbWluZy5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlcldpbGxTdWJtaXRGb3JtKToKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFRpbWVs
aW5lOjpGcmFtZUxvYWRUaW1lbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
ZnJhbWVMb2FkVGltZWxpbmUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5cGVzLmg6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpkaXNwYXRjaExvYWRFdmVudCk6CisgICAgICAgICogcGFnZS9UaW1pbmcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGltaW5nOjpuYXZpZ2F0aW9uU3RhcnQpOiBTaG91bGQgYmUgYXMgY2xv
c2UgYXMgcG9zc2libGUgdG8gdGhlIHVzZXIgYWN0aW9uIHRoYXQgaW5pdGlhdGVkIHRoZSBuYXZp
Z2F0aW9uLgorICAgICAgICAoV2ViQ29yZTo6VGltaW5nOjpmZXRjaFN0YXJ0KTogU2hvdWxkIGJl
IGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIFdlYktpdCByZXF1ZXN0aW5nIHRoZSByZXNvdXJjZSBm
cm9tIHRoZSBwbGF0Zm9ybS4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWluZzo6dW5sb2FkRXZlbnRT
dGFydCk6IFN0YXJ0IG9mIHVubG9hZCBldmVudCBmb3IgcHJldmlvdXMgcGFnZS4KKyAgICAgICAg
KFdlYkNvcmU6OlRpbWluZzo6dW5sb2FkRXZlbnRFbmQpOiBFbmQgb2YgdW5sb2FkIGV2ZW50IGZv
ciBwcmV2aW91cyBwYWdlLgorICAgICAgICAoV2ViQ29yZTo6VGltaW5nOjpsb2FkRXZlbnRTdGFy
dCk6IFN0YXJ0IG9mIGxvYWQgZXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpUaW1pbmc6OmxvYWRF
dmVudEVuZCk6IEVuZCBvZiBsb2FkIGV2ZW50LgorICAgICAgICAqIHBhZ2UvVGltaW5nLmg6Cisg
ICAgICAgICogcGFnZS9UaW1pbmcuaWRsOgorCiAyMDEwLTA3LTAyICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMDlhOTgxYmQxNDcxNDMzYzJlODFk
ODg0M2E4YTc2NzkzMWQ0MmI3NC4uNWE0ZmMzODcxZWM3MmRlYjAyYTg5MDc4YjczM2YwMDRmOWFi
YzcyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNDM3LDYgKzQzNyw3IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OnN0b3BMb2FkaW5nKFVubG9hZEV2ZW50UG9saWN5IHVubG9hZEV2ZW50UG9saWN5
LCBEYXRhYmFzZVBvbGljCiAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkgJiYgbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+cGFyc2VyKCkpCiAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnBhcnNl
cigpLT5zdG9wUGFyc2luZygpOwogCisgICAgbV9mcmFtZUxvYWRUaW1lbGluZS51bmxvYWRFdmVu
dFN0YXJ0ID0gY3VycmVudFRpbWUoKTsKICAgICBpZiAodW5sb2FkRXZlbnRQb2xpY3kgIT0gVW5s
b2FkRXZlbnRQb2xpY3lOb25lKSB7CiAgICAgICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpKSB7
CiAgICAgICAgICAgICBpZiAobV9kaWRDYWxsSW1wbGljaXRDbG9zZSAmJiAhbV93YXNVbmxvYWRF
dmVudEVtaXR0ZWQpIHsKQEAgLTQ2Nyw2ICs0NjgsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdG9w
TG9hZGluZyhVbmxvYWRFdmVudFBvbGljeSB1bmxvYWRFdmVudFBvbGljeSwgRGF0YWJhc2VQb2xp
YwogICAgICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlbW92ZUFsbEV2ZW50TGlz
dGVuZXJzKCk7CiAgICAgICAgIH0KICAgICB9CisgICAgbV9mcmFtZUxvYWRUaW1lbGluZS51bmxv
YWRFdmVudEVuZCA9IGN1cnJlbnRUaW1lKCk7CiAKICAgICBtX2lzQ29tcGxldGUgPSB0cnVlOyAv
LyB0byBhdm9pZCBjYWxsaW5nIGNvbXBsZXRlZCgpIGluIGZpbmlzaGVkUGFyc2luZygpCiAgICAg
bV9pc0xvYWRpbmdNYWluUmVzb3VyY2UgPSBmYWxzZTsKQEAgLTE0OTYsNiArMTQ5OCw5IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxv
YWRlciwgRnJhbWVMb2FkVHlwZSB0CiAKICAgICBBU1NFUlQobV9mcmFtZS0+dmlldygpKTsKIAor
ICAgIG1fZnJhbWVMb2FkVGltZWxpbmUgPSBGcmFtZUxvYWRUaW1lbGluZSgpOworICAgIG1fZnJh
bWVMb2FkVGltZWxpbmUubmF2aWdhdGlvblN0YXJ0ID0gY3VycmVudFRpbWUoKTsKKwogICAgIGlm
IChtX3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCkKICAgICAgICAgcmV0dXJuOwog
CkBAIC0yNDk0LDYgKzI0OTksOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRl
cldpbGxTdWJtaXRGb3JtKCkKIAogICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciA9IDA7CiAK
KyAgICBBU1NFUlQoIW1fZnJhbWVMb2FkVGltZWxpbmUuZmV0Y2hTdGFydCk7CisgICAgbV9mcmFt
ZUxvYWRUaW1lbGluZS5mZXRjaFN0YXJ0ID0gY3VycmVudFRpbWUoKTsKKwogICAgIGlmIChQYWdl
KiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgIGlkZW50aWZpZXIgPSBwYWdlLT5w
cm9ncmVzcygpLT5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7CiAgICAgICAgIG5vdGlmaWVyKCkt
PmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIG1fcHJvdmlzaW9u
YWxEb2N1bWVudExvYWRlci5nZXQoKSwgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5vcmln
aW5hbFJlcXVlc3QoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA4OTgwNTIwYTk1YWM4NDlmZGMz
N2Y5NjMwMjIwZmZiZDk2MzgyZDRmLi43NTZlYmMzNGIxYTFlYzFkYWYzN2JiYTc2NGUwMDk0N2Q5
MWZhODk4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTE5Myw2ICsxOTMsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRDaGFuZ2VJY29ucyhEb2N1bWVudExvYWRlciopOwogCiAgICAgRnJhbWVMb2Fk
VHlwZSBsb2FkVHlwZSgpIGNvbnN0OworICAgIEZyYW1lTG9hZFRpbWVsaW5lKiBmcmFtZUxvYWRU
aW1lbGluZSgpIHsgcmV0dXJuICZtX2ZyYW1lTG9hZFRpbWVsaW5lOyB9CisKICAgICBDYWNoZVBv
bGljeSBzdWJyZXNvdXJjZUNhY2hlUG9saWN5KCkgY29uc3Q7CiAKICAgICB2b2lkIGRpZEZpcnN0
TGF5b3V0KCk7CkBAIC00NDQsNiArNDQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIEZyYW1lU3RhdGUg
bV9zdGF0ZTsKICAgICBGcmFtZUxvYWRUeXBlIG1fbG9hZFR5cGU7CisgICAgRnJhbWVMb2FkVGlt
ZWxpbmUgbV9mcmFtZUxvYWRUaW1lbGluZTsKIAogICAgIC8vIERvY3VtZW50IGxvYWRlcnMgZm9y
IHRoZSB0aHJlZSBwaGFzZXMgb2YgZnJhbWUgbG9hZGluZy4gTm90ZSB0aGF0IHdoaWxlIAogICAg
IC8vIGEgbmV3IHJlcXVlc3QgaXMgYmVpbmcgbG9hZGVkLCB0aGUgb2xkIGRvY3VtZW50IGxvYWRl
ciBtYXkgc3RpbGwgYmUgcmVmZXJlbmNlZC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyVHlwZXMuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAppbmRl
eCAwMTZkZTE5ZDI0MTVmZGQ3NzMwZTYzYmE3MTc0YjgxNWRiNDZiMDQzLi5iODg1MzBmMWYyNjg5
ZWFmNzI2ZmM1ZjUwNzc2Mzk1YzMwMTJlM2QwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlclR5cGVzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5o
CkBAIC02MCw2ICs2MCwyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEZyYW1lTG9h
ZFR5cGVCYWNrV01MRGVja05vdEFjY2Vzc2libGUKICAgICB9OwogCisgICAgc3RydWN0IEZyYW1l
TG9hZFRpbWVsaW5lIHsKKyAgICAgICAgRnJhbWVMb2FkVGltZWxpbmUoKQorICAgICAgICAgICAg
OiBuYXZpZ2F0aW9uU3RhcnQoMCkKKyAgICAgICAgICAgICwgdW5sb2FkRXZlbnRTdGFydCgwKQor
ICAgICAgICAgICAgLCB1bmxvYWRFdmVudEVuZCgwKQorICAgICAgICAgICAgLCBmZXRjaFN0YXJ0
KDApCisgICAgICAgICAgICAsIGxvYWRFdmVudFN0YXJ0KDApCisgICAgICAgICAgICAsIGxvYWRF
dmVudEVuZCgwKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUgbmF2aWdh
dGlvblN0YXJ0OworICAgICAgICBkb3VibGUgdW5sb2FkRXZlbnRTdGFydDsKKyAgICAgICAgZG91
YmxlIHVubG9hZEV2ZW50RW5kOworICAgICAgICBkb3VibGUgZmV0Y2hTdGFydDsKKyAgICAgICAg
ZG91YmxlIGxvYWRFdmVudFN0YXJ0OworICAgICAgICBkb3VibGUgbG9hZEV2ZW50RW5kOworICAg
IH07CisKICAgICBlbnVtIE5hdmlnYXRpb25UeXBlIHsKICAgICAgICAgTmF2aWdhdGlvblR5cGVM
aW5rQ2xpY2tlZCwKICAgICAgICAgTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkLApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAppbmRleCBhMDZkZDc5NjZjMTMyYjhjNDE2MDIzOWRjOTQ0MmZlNTA3MTQwNjQzLi5mZjUy
ZGFhODgxZjVkODM0MmMwYjFiNGEyMmE1ZGFlNGZjOThkNDA4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAt
NzgsOCArNzgsOSBAQAogI2luY2x1ZGUgIlN1ZGRlblRlcm1pbmF0aW9uLmgiCiAjaW5jbHVkZSAi
V2ViS2l0UG9pbnQuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBzdGQ6
Om1pbjsKIHVzaW5nIHN0ZDo6bWF4OwpAQCAtMTQyOCw3ICsxNDI5LDExIEBAIGJvb2wgRE9NV2lu
ZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBF
dmVudExpc3RlbmVyCiAKIHZvaWQgRE9NV2luZG93OjpkaXNwYXRjaExvYWRFdmVudCgpCiB7Cisg
ICAgaWYgKEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IGZyYW1lKCkgPyBmcmFtZSgpLT5sb2Fk
ZXIoKSA6IDApCisgICAgICAgIGZyYW1lTG9hZGVyLT5mcmFtZUxvYWRUaW1lbGluZSgpLT5sb2Fk
RXZlbnRTdGFydCA9IGN1cnJlbnRUaW1lKCk7CiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSksIGRvY3VtZW50KCkpOwor
ICAgIGlmIChGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBmcmFtZSgpID8gZnJhbWUoKS0+bG9h
ZGVyKCkgOiAwKQorICAgICAgICBmcmFtZUxvYWRlci0+ZnJhbWVMb2FkVGltZWxpbmUoKS0+bG9h
ZEV2ZW50RW5kID0gY3VycmVudFRpbWUoKTsKIAogICAgIC8vIEZvciBsb2FkIGV2ZW50cywgc2Vu
ZCBhIHNlcGFyYXRlIGxvYWQgZXZlbnQgdG8gdGhlIGVuY2xvc2luZyBmcmFtZSBvbmx5LgogICAg
IC8vIFRoaXMgaXMgYSBET00gZXh0ZW5zaW9uIGFuZCBpcyBpbmRlcGVuZGVudCBvZiBidWJibGlu
Zy9jYXB0dXJpbmcgcnVsZXMgb2YKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9UaW1pbmcuY3Bw
IGIvV2ViQ29yZS9wYWdlL1RpbWluZy5jcHAKaW5kZXggZGNkMGZiNzg1ZGFmNWMwYjljMTNmOTgy
Y2E4Mjk0NDVjYmM0YTU1Ny4uNWQzNTM5M2YxMTM5NzEwODI5Y2Y2YzI0YzNhZGI2ZmFlZTdhOGI5
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1RpbWluZy5jcHAKKysrIGIvV2ViQ29yZS9wYWdl
L1RpbWluZy5jcHAKQEAgLTUyLDEyICs1Miw1MiBAQCB2b2lkIFRpbWluZzo6ZGlzY29ubmVjdEZy
YW1lKCkKICAgICBtX2ZyYW1lID0gMDsKIH0KIAotdW5zaWduZWQgbG9uZyBUaW1pbmc6Om5hdmln
YXRpb25TdGFydCgpIGNvbnN0Cit1bnNpZ25lZCBsb25nIGxvbmcgVGltaW5nOjpuYXZpZ2F0aW9u
U3RhcnQoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CiAK
LSAgICByZXR1cm4gMDsgLy8gRklYTUUKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQg
bG9uZyBsb25nPihtX2ZyYW1lLT5sb2FkZXIoKS0+ZnJhbWVMb2FkVGltZWxpbmUoKS0+bmF2aWdh
dGlvblN0YXJ0ICogMTAwMCk7Cit9CisKK3Vuc2lnbmVkIGxvbmcgbG9uZyBUaW1pbmc6OmZldGNo
U3RhcnQoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX2ZyYW1lLT5sb2Fk
ZXIoKS0+ZnJhbWVMb2FkVGltZWxpbmUoKS0+ZmV0Y2hTdGFydCAqIDEwMDApOworfQorCit1bnNp
Z25lZCBsb25nIGxvbmcgVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KCkgY29uc3QKK3sKKyAgICBp
ZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9mcmFtZS0+bG9hZGVyKCktPmZyYW1lTG9hZFRpbWVsaW5l
KCktPnVubG9hZEV2ZW50U3RhcnQgKiAxMDAwKTsKK30KKwordW5zaWduZWQgbG9uZyBsb25nIFRp
bWluZzo6dW5sb2FkRXZlbnRFbmQoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25n
PihtX2ZyYW1lLT5sb2FkZXIoKS0+ZnJhbWVMb2FkVGltZWxpbmUoKS0+dW5sb2FkRXZlbnRFbmQg
KiAxMDAwKTsKK30KKwordW5zaWduZWQgbG9uZyBsb25nIFRpbWluZzo6bG9hZEV2ZW50U3RhcnQo
KSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX2ZyYW1lLT5sb2FkZXIoKS0+
ZnJhbWVMb2FkVGltZWxpbmUoKS0+bG9hZEV2ZW50U3RhcnQgKiAxMDAwKTsKK30KKwordW5zaWdu
ZWQgbG9uZyBsb25nIFRpbWluZzo6bG9hZEV2ZW50RW5kKCkgY29uc3QKK3sKKyAgICBpZiAoIW1f
ZnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2ln
bmVkIGxvbmcgbG9uZz4obV9mcmFtZS0+bG9hZGVyKCktPmZyYW1lTG9hZFRpbWVsaW5lKCktPmxv
YWRFdmVudEVuZCAqIDEwMDApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvVGltaW5nLmggYi9XZWJDb3JlL3BhZ2UvVGltaW5nLmgKaW5kZXgg
N2I2NmQ2Njk2YmM4ZjZhM2M4NGY4Yzg0YzAwMTZhNDZiMjZjNzQwMy4uNGY5NzVhZTU2MWZkZDQ4
NTFiYzhiMGQyZWE0OWU4NGJjMTNhMmM5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1RpbWlu
Zy5oCisrKyBiL1dlYkNvcmUvcGFnZS9UaW1pbmcuaApAQCAtNDcsNyArNDcsMTIgQEAgcHVibGlj
OgogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7
CiAKLSAgICB1bnNpZ25lZCBsb25nIG5hdmlnYXRpb25TdGFydCgpIGNvbnN0OworICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBsb25n
IGxvbmcgZmV0Y2hTdGFydCgpIGNvbnN0OworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB1bmxvYWRF
dmVudFN0YXJ0KCkgY29uc3Q7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHVubG9hZEV2ZW50RW5k
KCkgY29uc3Q7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGxvYWRFdmVudFN0YXJ0KCkgY29uc3Q7
CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGxvYWRFdmVudEVuZCgpIGNvbnN0OwogCiBwcml2YXRl
OgogICAgIFRpbWluZyhGcmFtZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1RpbWluZy5p
ZGwgYi9XZWJDb3JlL3BhZ2UvVGltaW5nLmlkbAppbmRleCAwMWI3MmJjYjFmZjUzNTAzNjIzZTJk
YmQ2ZjYzYjIyNmJhODkzYmYyLi41MDkyZjQ1YWQ2MjRmN2I3NDQ2MjIzOTBkODlmNDRkZjczNTlh
MjYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvVGltaW5nLmlkbAorKysgYi9XZWJDb3JlL3Bh
Z2UvVGltaW5nLmlkbApAQCAtMzIsOCArMzIsMjMgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAv
LyBTZWU6IGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYlRpbWluZy8KICAgICBpbnRl
cmZhY2UgW0NvbmRpdGlvbmFsPVdFQl9USU1JTkcsIE9taXRDb25zdHJ1Y3Rvcl0gVGltaW5nIHsK
LSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbmF2aWdhdGlvblN0YXJ0
OwotICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHJlbWFpbmRlciBvZiBpbnRlcmZhY2UuCisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgbmF2aWdhdGlvblN0
YXJ0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIGZldGNo
U3RhcnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgdW5s
b2FkRXZlbnRTdGFydDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bG9uZyB1bmxvYWRFdmVudEVuZDsKKyAgICAgICAgLy8gRklYTUU6IFJldHJpZXZlIHRoZXNlIG1h
cmtzIGZyb20gdGhlIG5ldHdvcmsgcGxhdGZvcm0uCisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgcmVkaXJlY3RTdGFydDsKKyAgICAgICAgLy8gcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyByZWRpcmVjdEVuZDsKKyAgICAgICAgLy8g
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBkb21haW5Mb29rdXBTdGFydDsK
KyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBkb21haW5M
b29rdXBFbmQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxv
bmcgY29ubmVjdFN0YXJ0OworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsb25nIGNvbm5lY3RFbmQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGxvbmcgcmVxdWVzdFN0YXJ0OworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyBsb25nIHJlcXVlc3RFbmQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgcmVzcG9uc2VTdGFydDsKKyAgICAgICAgLy8gcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyByZXNwb25zZUVuZDsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2FkRXZlbnRTdGFydDsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2FkRXZlbnRFbmQ7
CiAgICAgfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60813</attachid>
            <date>2010-07-07 17:35:10 -0700</date>
            <delta_ts>2010-07-08 10:57:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41332-20100707173509.patch</filename>
            <type>text/plain</type>
            <size>14249</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmZjODIyNWZhNmU2ZTEzMzgxNzFhMTQwMzkyNzYzOGE5ZDhlZjU5Li4wMDdhYzFj
OWVhODk4NjQ2YjJkMDc5MTNjYzYwYWNhZGNmNmI1OGZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDctMDcgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdW5s
b2FkRXZlbnRFbmQsIGxvYWRFdmVudFN0YXJ0LCBhbmQgbG9hZEV2ZW50RW5kIGZvciBXZWIgVGlt
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTMz
MgorCisgICAgICAgIEV4cGVjdGF0aW9ucyBhcmUgc2V0IHRvIEZBSUwgYmVjYXVzZSBkaXNhYmxl
ZCBieSBkZWZhdWx0LiBQYXNzZXMgd2l0aCAtLXdlYi10aW1pbmcuCisKKyAgICAgICAgKiBmYXN0
L2RvbS9zY3JpcHQtdGVzdHMvd2VidGltaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKHNsZWVwRmlm
dHlNaWxsaXNlY29uZHMpOgorICAgICAgICAoc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwpOgor
ICAgICAgICAoY2hlY2tUaW1pbmdCZWZvcmVMb2FkKToKKyAgICAgICAgKGNoZWNrV2ViVGltaW5n
T25Mb2FkKToKKyAgICAgICAgKGNoZWNrV2ViVGltaW5nQWZ0ZXJMb2FkKToKKyAgICAgICAgKiBm
YXN0L2RvbS93ZWJ0aW1pbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS93ZWJ0aW1pbmcuaHRtbDogQWRkZWQuCisKIDIwMTAtMDctMDcgIFBldGVyIEthc3RpbmcgIDxw
a2FzdGluZ0Bnb29nbGUuY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4gIENocm9taXVtIHRl
c3QgZXhwZWN0YXRpb24gdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2NyaXB0LXRlc3RzL3dlYnRpbWluZy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10
ZXN0cy93ZWJ0aW1pbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODVlMjA0ZDBhM2E3NjkzYmU2MmUyMzI3Mzlj
YTBiZTgwZTAwOTI5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Nj
cmlwdC10ZXN0cy93ZWJ0aW1pbmcuanMKQEAgLTAsMCArMSw3MiBAQAorZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBjaGVja3MgdGhhdCBhbGwgb2YgdGhlIDxhIGhyZWY9J2h0dHA6Ly9kZXYudzMub3Jn
LzIwMDYvd2ViYXBpL1dlYlRpbWluZy8nPldlYiBUaW1pbmc8L2E+IGF0dHJpYnV0ZXMgYXJlIGF2
YWlsYWJsZSBhbmQgaGF2ZSByZWFzb25hYmxlIHZhbHVlcyBpbiB0aGUgcmlnaHQgb3JkZXIuIik7
CisKK3ZhciBwZXJmb3JtYW5jZSA9IHdpbmRvdy53ZWJraXRQZXJmb3JtYW5jZSB8fCB7fTsKK3Zh
ciB0aW1pbmcgPSBwZXJmb3JtYW5jZS50aW1pbmcgfHwge307CisKKy8vIEdldCB0aGUgb3JkZXIg
b2YgbWFnbml0dWRlIGNvcnJlY3Qgd2l0aG91dCBhIGNoYW5jZSBmb3IgZmxha2luZXNzLgordmFy
IG9uZUhvdXJNaWxsaXNlY29uZHMgPSA2MCAqIDYwICogMTAwMDsKK3ZhciBjdXJyZW50VVRDID0g
KG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKK3ZhciBvbmVIb3VyQWdvVVRDID0gY3VycmVudFVUQyAt
IG9uZUhvdXJNaWxsaXNlY29uZHM7CisKK2Z1bmN0aW9uIHNsZWVwRmlmdHlNaWxsaXNlY29uZHMo
KSB7CisgIHZhciBlbmRUaW1lID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKSArIDUwOworICB3aGls
ZSAoKG5ldyBEYXRlKCkuZ2V0VGltZSgpIDwgZW5kVGltZSkpIHsgfQorfQord2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBzbGVlcEZpZnR5TWlsbGlzZWNvbmRzLCBmYWxzZSk7CisKKy8v
IEZJWE1FOiBNb3ZlIHRoaXMgdG8ganMtdGVzdC1wcmUuanMgaWYgaXQgaXMgbmVlZGVkIGJ5IG90
aGVyIHRlc3RzLgorZnVuY3Rpb24gc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoX2EsIF9iKSB7
CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIp
CisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCBleHBlY3Rz
IHN0cmluZyBhcmd1bWVudHMiKTsKKworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsK
KyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKwor
ICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+
PSAiICsgX2IgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgZWxzZSBp
ZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPCBfYnYpCisgICAgICAgIHRlc3RG
YWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBXYXMgIiArIF9hdiArICIgKG9m
IHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNz
ZWQoX2EgKyAiIGlzID49ICIgKyBfYik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrVGltaW5nQmVmb3Jl
TG9hZCgpCit7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy51bmxvYWRF
dmVudEVuZCIsICJ0aW1pbmcub25lSG91ckFnb1VUQyIpOworCisgICAgc2hvdWxkQmUoInRpbWlu
Zy5sb2FkRXZlbnRTdGFydCIsICIwIik7CisgICAgc2hvdWxkQmUoInRpbWluZy5sb2FkRXZlbnRF
bmQiLCAiMCIpOworCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBjaGVja1dl
YlRpbWluZ09uTG9hZCwgZmFsc2UpOworfQorCitmdW5jdGlvbiBjaGVja1dlYlRpbWluZ09uTG9h
ZCgpCit7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy51bmxvYWRFdmVu
dEVuZCIsICJ0aW1pbmcub25lSG91ckFnb1VUQyIpOworCisgICAgc2hvdWxkQmVHcmVhdGVyVGhh
bk9yRXF1YWwoInRpbWluZy5sb2FkRXZlbnRTdGFydCIsICJ0aW1pbmcudW5sb2FkRXZlbnRFbmQi
KTsKKyAgICBzaG91bGRCZSgidGltaW5nLmxvYWRFdmVudEVuZCIsICIwIik7CisKKyAgICBzZXRU
aW1lb3V0KCJjaGVja1dlYlRpbWluZ0FmdGVyTG9hZCgpIiwgMCk7Cit9CisKK2Z1bmN0aW9uIGNo
ZWNrV2ViVGltaW5nQWZ0ZXJMb2FkKCkKK3sKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVh
bCgidGltaW5nLnVubG9hZEV2ZW50RW5kIiwgInRpbWluZy5vbmVIb3VyQWdvVVRDIik7CisKKyAg
ICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLmxvYWRFdmVudFN0YXJ0IiwgInRp
bWluZy51bmxvYWRFdmVudEVuZCIpOworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0
aW1pbmcubG9hZEV2ZW50RW5kIiwgInRpbWluZy5sb2FkRXZlbnRTdGFydCArIDUwIik7CisKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKworanNUZXN0SXNBc3luYyA9IHRydWU7CitjaGVja1RpbWlu
Z0JlZm9yZUxvYWQoKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93ZWJ0aW1pbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vd2VidGltaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2Q4NTEw
NGFhNjgyYTkzNWEyZjEwZDdhY2M4ZDdiYzJhMDVkNWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vd2VidGltaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBA
CitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYWxsIG9mIHRoZSBXZWIgVGltaW5nIGF0dHJpYnV0ZXMg
YXJlIGF2YWlsYWJsZSBhbmQgaGF2ZSByZWFzb25hYmxlIHZhbHVlcyBpbiB0aGUgcmlnaHQgb3Jk
ZXIuDQorDQorT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLg0KKw0KKw0KK0ZBSUwgdGltaW5nLnVu
bG9hZEV2ZW50RW5kIHNob3VsZCBiZSA+PSB0aW1pbmcub25lSG91ckFnb1VUQy4gV2FzIHVuZGVm
aW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLg0KK0ZBSUwgdGltaW5nLmxvYWRFdmVudFN0YXJ0IHNo
b3VsZCBiZSAwIChvZiB0eXBlIG51bWJlcikuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZp
bmVkKS4NCitGQUlMIHRpbWluZy5sb2FkRXZlbnRFbmQgc2hvdWxkIGJlIDAgKG9mIHR5cGUgbnVt
YmVyKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLg0KK0ZBSUwgdGltaW5nLnVu
bG9hZEV2ZW50RW5kIHNob3VsZCBiZSA+PSB0aW1pbmcub25lSG91ckFnb1VUQy4gV2FzIHVuZGVm
aW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLg0KK0ZBSUwgdGltaW5nLmxvYWRFdmVudFN0YXJ0IHNo
b3VsZCBiZSA+PSB0aW1pbmcudW5sb2FkRXZlbnRFbmQuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUg
dW5kZWZpbmVkKS4NCitGQUlMIHRpbWluZy5sb2FkRXZlbnRFbmQgc2hvdWxkIGJlIDAgKG9mIHR5
cGUgbnVtYmVyKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLg0KK0ZBSUwgdGlt
aW5nLnVubG9hZEV2ZW50RW5kIHNob3VsZCBiZSA+PSB0aW1pbmcub25lSG91ckFnb1VUQy4gV2Fz
IHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLg0KK0ZBSUwgdGltaW5nLmxvYWRFdmVudFN0
YXJ0IHNob3VsZCBiZSA+PSB0aW1pbmcudW5sb2FkRXZlbnRFbmQuIFdhcyB1bmRlZmluZWQgKG9m
IHR5cGUgdW5kZWZpbmVkKS4NCitGQUlMIHRpbWluZy5sb2FkRXZlbnRFbmQgc2hvdWxkIGJlID49
IHRpbWluZy5sb2FkRXZlbnRTdGFydCArIDUwLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVm
aW5lZCkuDQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQ0KKw0KK1RFU1QgQ09NUExF
VEUNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93ZWJ0aW1pbmcuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3dlYnRpbWluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkYjY1YzU3
MTYzNDcxZWJkOGUwODE2MDAwMzkxODU5NjNkMDIxNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS93ZWJ0aW1pbmcuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3dlYnRpbWluZy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDgzMGYzYTI2NDExZDVlNzE2ZTVkYWE5NGYx
NjU2OTRkYmZmNTE3ZmYuLjU4MmRmNGQ3OGNlM2FiNzdlYTdkNzI3NWNiZmM3Mjg3ZTkyOTc1OTMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKworMjAxMC0wNy0wNyAgVG9ueSBHZW50aWxjb3JlICA8dG9ueWdAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudCB1bmxvYWRFdmVudEVuZCwgbG9hZEV2ZW50U3RhcnQsIGFuZCBsb2FkRXZl
bnRFbmQgZm9yIFdlYiBUaW1pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQxMzMyCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vd2VidGltaW5nLmh0
bWwKKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6c3RvcExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmZyYW1lTG9hZFRpbWVsaW5lKToK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkVGltZWxpbmU6OkZyYW1lTG9hZFRpbWVsaW5lKToKKyAgICAgICAgKiBwYWdlL0RP
TVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRpc3BhdGNoTG9hZEV2
ZW50KToKKyAgICAgICAgKiBwYWdlL1RpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1p
bmc6Om5hdmlnYXRpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1pbmc6OnVubG9hZEV2
ZW50RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWluZzo6bG9hZEV2ZW50U3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6VGltaW5nOjpsb2FkRXZlbnRFbmQpOgorICAgICAgICAqIHBhZ2UvVGlt
aW5nLmg6CisgICAgICAgICogcGFnZS9UaW1pbmcuaWRsOgorCiAyMDEwLTA3LTA3ICBKb3NlcGgg
UGVjb3Jhcm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQg
YnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA2Y2ViOTRhZjk2YjNi
YWFjNmMyMmJiMDY5ZjhhODE4ZWEzNGExMDA3Li45YzI1MGQ5NGExMWZjMTBjOTY4ZGFmZTc1ZTY3
NDhjYWRiNWRkOWY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
KysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00NDksNiArNDQ5LDcgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6c3RvcExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3kgdW5sb2FkRXZl
bnRQb2xpY3ksIERhdGFiYXNlUG9saWMKICAgICAgICAgICAgICAgICAgICAgICAgIG1fZnJhbWUt
PmRvbVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50KFBhZ2VUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkucGFnZWhpZGVFdmVudCwgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aW5QYWdlQ2Fj
aGUoKSksIG1fZnJhbWUtPmRvY3VtZW50KCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIW1f
ZnJhbWUtPmRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS51bmxvYWRFdmVudCwgZmFsc2UsIGZhbHNlKSwgbV9mcmFtZS0+ZG9tV2luZG93KCkt
PmRvY3VtZW50KCkpOworICAgICAgICAgICAgICAgICAgICBtX2ZyYW1lTG9hZFRpbWVsaW5lLnVu
bG9hZEV2ZW50RW5kID0gY3VycmVudFRpbWUoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgbV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQgPSBmYWxzZTsKICAg
ICAgICAgICAgICAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSkKQEAgLTE0OTksNiArMTUwMCw4
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgaWYgKG1fcGFnZURpc21pc3NhbEV2ZW50
QmVpbmdEaXNwYXRjaGVkKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX2ZyYW1lTG9hZFRpbWVs
aW5lID0gRnJhbWVMb2FkVGltZWxpbmUoKTsKKwogICAgIHBvbGljeUNoZWNrZXIoKS0+c2V0TG9h
ZFR5cGUodHlwZSk7CiAgICAgUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlID0gcHJwRm9ybVN0
YXRlOwogICAgIGJvb2wgaXNGb3JtU3VibWlzc2lvbiA9IGZvcm1TdGF0ZTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCmluZGV4IDg5ODA1MjBhOTVhYzg0OWZkYzM3Zjk2MzAyMjBmZmJkOTYzODJkNGYuLjc1NmVi
YzM0YjFhMWVjMWRhZjM3YmJhNzY0ZTAwOTQ3ZDkxZmE4OTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApA
QCAtMTkzLDYgKzE5Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENoYW5nZUljb25zKERvY3Vt
ZW50TG9hZGVyKik7CiAKICAgICBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlKCkgY29uc3Q7CisgICAg
RnJhbWVMb2FkVGltZWxpbmUqIGZyYW1lTG9hZFRpbWVsaW5lKCkgeyByZXR1cm4gJm1fZnJhbWVM
b2FkVGltZWxpbmU7IH0KKwogICAgIENhY2hlUG9saWN5IHN1YnJlc291cmNlQ2FjaGVQb2xpY3ko
KSBjb25zdDsKIAogICAgIHZvaWQgZGlkRmlyc3RMYXlvdXQoKTsKQEAgLTQ0NCw2ICs0NDYsNyBA
QCBwcml2YXRlOgogCiAgICAgRnJhbWVTdGF0ZSBtX3N0YXRlOwogICAgIEZyYW1lTG9hZFR5cGUg
bV9sb2FkVHlwZTsKKyAgICBGcmFtZUxvYWRUaW1lbGluZSBtX2ZyYW1lTG9hZFRpbWVsaW5lOwog
CiAgICAgLy8gRG9jdW1lbnQgbG9hZGVycyBmb3IgdGhlIHRocmVlIHBoYXNlcyBvZiBmcmFtZSBs
b2FkaW5nLiBOb3RlIHRoYXQgd2hpbGUgCiAgICAgLy8gYSBuZXcgcmVxdWVzdCBpcyBiZWluZyBs
b2FkZWQsIHRoZSBvbGQgZG9jdW1lbnQgbG9hZGVyIG1heSBzdGlsbCBiZSByZWZlcmVuY2VkLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oIGIvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCmluZGV4IDAxNmRlMTlkMjQxNWZkZDc3MzBlNjNiYTcx
NzRiODE1ZGI0NmIwNDMuLjJlM2NmMTU4YjM0M2RiYTczNWU0OTQ1YTkyODU0NjU3ZTA2Mzc0Yjcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAorKysgYi9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKQEAgLTYwLDYgKzYwLDE5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgRnJhbWVMb2FkVHlwZUJhY2tXTUxEZWNrTm90QWNjZXNzaWJs
ZQogICAgIH07CiAKKyAgICBzdHJ1Y3QgRnJhbWVMb2FkVGltZWxpbmUgeworICAgICAgICBGcmFt
ZUxvYWRUaW1lbGluZSgpCisgICAgICAgICAgICA6IHVubG9hZEV2ZW50RW5kKDApCisgICAgICAg
ICAgICAsIGxvYWRFdmVudFN0YXJ0KDApCisgICAgICAgICAgICAsIGxvYWRFdmVudEVuZCgwKQor
ICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUgdW5sb2FkRXZlbnRFbmQ7Cisg
ICAgICAgIGRvdWJsZSBsb2FkRXZlbnRTdGFydDsKKyAgICAgICAgZG91YmxlIGxvYWRFdmVudEVu
ZDsKKyAgICB9OworCiAgICAgZW51bSBOYXZpZ2F0aW9uVHlwZSB7CiAgICAgICAgIE5hdmlnYXRp
b25UeXBlTGlua0NsaWNrZWQsCiAgICAgICAgIE5hdmlnYXRpb25UeXBlRm9ybVN1Ym1pdHRlZCwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggMTE3NmVlNzE1ZTJjZjA0YTRhY2NmMTNkNmZhNmExODEwZTZmYWRh
Yy4uODc2ZDJhOTQ5YmJmZDcxZjNlNTJmNjEwNTNhNTVhMmVhNDc1MTNlYyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKQEAgLTc4LDggKzc4LDkgQEAKICNpbmNsdWRlICJTdWRkZW5UZXJtaW5hdGlvbi5oIgogI2lu
Y2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNp
bmcgc3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsKQEAgLTE0MjgsNyArMTQyOSwxMSBAQCBib29s
IERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgRXZlbnRMaXN0ZW5lcgogCiB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hMb2FkRXZlbnQo
KQogeworICAgIGlmIChGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBmcmFtZSgpID8gZnJhbWUo
KS0+bG9hZGVyKCkgOiAwKQorICAgICAgICBmcmFtZUxvYWRlci0+ZnJhbWVMb2FkVGltZWxpbmUo
KS0+bG9hZEV2ZW50U3RhcnQgPSBjdXJyZW50VGltZSgpOwogICAgIGRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubG9hZEV2ZW50LCBmYWxzZSwgZmFsc2UpLCBkb2N1bWVu
dCgpKTsKKyAgICBpZiAoRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gZnJhbWUoKSA/IGZyYW1l
KCktPmxvYWRlcigpIDogMCkKKyAgICAgICAgZnJhbWVMb2FkZXItPmZyYW1lTG9hZFRpbWVsaW5l
KCktPmxvYWRFdmVudEVuZCA9IGN1cnJlbnRUaW1lKCk7CiAKICAgICAvLyBGb3IgbG9hZCBldmVu
dHMsIHNlbmQgYSBzZXBhcmF0ZSBsb2FkIGV2ZW50IHRvIHRoZSBlbmNsb3NpbmcgZnJhbWUgb25s
eS4KICAgICAvLyBUaGlzIGlzIGEgRE9NIGV4dGVuc2lvbiBhbmQgaXMgaW5kZXBlbmRlbnQgb2Yg
YnViYmxpbmcvY2FwdHVyaW5nIHJ1bGVzIG9mCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvVGlt
aW5nLmNwcCBiL1dlYkNvcmUvcGFnZS9UaW1pbmcuY3BwCmluZGV4IGRjZDBmYjc4NWRhZjVjMGI5
YzEzZjk4MmNhODI5NDQ1Y2JjNGE1NTcuLmMyMWQzOTk1N2NkMmJiZGU4OGVmZjE5MTZlOWQyZThh
ZGNjNmRjNWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9UaW1pbmcuY3BwCisrKyBiL1dlYkNv
cmUvcGFnZS9UaW1pbmcuY3BwCkBAIC01Miw3ICs1Miw3IEBAIHZvaWQgVGltaW5nOjpkaXNjb25u
ZWN0RnJhbWUoKQogICAgIG1fZnJhbWUgPSAwOwogfQogCi11bnNpZ25lZCBsb25nIFRpbWluZzo6
bmF2aWdhdGlvblN0YXJ0KCkgY29uc3QKK3Vuc2lnbmVkIGxvbmcgbG9uZyBUaW1pbmc6Om5hdmln
YXRpb25TdGFydCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4g
MDsKQEAgLTYwLDYgKzYwLDMwIEBAIHVuc2lnbmVkIGxvbmcgVGltaW5nOjpuYXZpZ2F0aW9uU3Rh
cnQoKSBjb25zdAogICAgIHJldHVybiAwOyAvLyBGSVhNRQogfQogCit1bnNpZ25lZCBsb25nIGxv
bmcgVGltaW5nOjp1bmxvYWRFdmVudEVuZCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25n
IGxvbmc+KG1fZnJhbWUtPmxvYWRlcigpLT5mcmFtZUxvYWRUaW1lbGluZSgpLT51bmxvYWRFdmVu
dEVuZCAqIDEwMDApOworfQorCit1bnNpZ25lZCBsb25nIGxvbmcgVGltaW5nOjpsb2FkRXZlbnRT
dGFydCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fZnJhbWUtPmxvYWRl
cigpLT5mcmFtZUxvYWRUaW1lbGluZSgpLT5sb2FkRXZlbnRTdGFydCAqIDEwMDApOworfQorCit1
bnNpZ25lZCBsb25nIGxvbmcgVGltaW5nOjpsb2FkRXZlbnRFbmQoKSBjb25zdAoreworICAgIGlm
ICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dW5zaWduZWQgbG9uZyBsb25nPihtX2ZyYW1lLT5sb2FkZXIoKS0+ZnJhbWVMb2FkVGltZWxpbmUo
KS0+bG9hZEV2ZW50RW5kICogMTAwMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShXRUJfVElNSU5HKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1Rp
bWluZy5oIGIvV2ViQ29yZS9wYWdlL1RpbWluZy5oCmluZGV4IDdiNjZkNjY5NmJjOGY2YTNjODRm
OGM4NGMwMDE2YTQ2YjI2Yzc0MDMuLjQ3Y2U0NzhhZTcwNWFhMDE0MDc4ZjgzNmY0NjFkMzZkNzE5
ZDMwNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9UaW1pbmcuaAorKysgYi9XZWJDb3JlL3Bh
Z2UvVGltaW5nLmgKQEAgLTQ3LDcgKzQ3LDEwIEBAIHB1YmxpYzoKICAgICBGcmFtZSogZnJhbWUo
KSBjb25zdDsKICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOwogCi0gICAgdW5zaWduZWQgbG9u
ZyBuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgbmF2aWdh
dGlvblN0YXJ0KCkgY29uc3Q7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHVubG9hZEV2ZW50RW5k
KCkgY29uc3Q7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGxvYWRFdmVudFN0YXJ0KCkgY29uc3Q7
CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGxvYWRFdmVudEVuZCgpIGNvbnN0OwogCiBwcml2YXRl
OgogICAgIFRpbWluZyhGcmFtZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1RpbWluZy5p
ZGwgYi9XZWJDb3JlL3BhZ2UvVGltaW5nLmlkbAppbmRleCAwMWI3MmJjYjFmZjUzNTAzNjIzZTJk
YmQ2ZjYzYjIyNmJhODkzYmYyLi5kYmU5OTZlMjMzYzU4NTMwYjY0ZjdmNjFiNGE0ZWJmYTQ1NzQ3
YzdmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvVGltaW5nLmlkbAorKysgYi9XZWJDb3JlL3Bh
Z2UvVGltaW5nLmlkbApAQCAtMzIsOCArMzIsMjIgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAv
LyBTZWU6IGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYlRpbWluZy8KICAgICBpbnRl
cmZhY2UgW0NvbmRpdGlvbmFsPVdFQl9USU1JTkcsIE9taXRDb25zdHJ1Y3Rvcl0gVGltaW5nIHsK
LSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbmF2aWdhdGlvblN0YXJ0
OwogICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHJlbWFpbmRlciBvZiBpbnRlcmZhY2UuCisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgbmF2aWdhdGlvblN0
YXJ0OworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIGZl
dGNoU3RhcnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcg
dW5sb2FkRXZlbnRFbmQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxvbmcgcmVkaXJlY3RTdGFydDsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbG9uZyByZWRpcmVjdEVuZDsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBkb21haW5Mb29rdXBTdGFydDsKKyAgICAgICAgLy8gcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBkb21haW5Mb29rdXBFbmQ7CisgICAg
ICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgY29ubmVjdFN0YXJ0
OworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIGNvbm5l
Y3RFbmQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcg
cmVxdWVzdFN0YXJ0OworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsb25nIHJlcXVlc3RFbmQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGxvbmcgcmVzcG9uc2VTdGFydDsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbG9uZyByZXNwb25zZUVuZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2FkRXZlbnRTdGFydDsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2FkRXZlbnRFbmQ7CiAgICAgfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60910</attachid>
            <date>2010-07-08 10:57:16 -0700</date>
            <delta_ts>2010-07-09 10:35:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-41332-20100708105715.patch</filename>
            <type>text/plain</type>
            <size>14107</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMmIyMjRlZGY2NThlYTYzZTBlODEyNGFmZWJmYTMzZGFkNTY4NDQzLi5jMjY2MzA1
NThiMzZiNDkwMWM4ODZiNzUxNGJmYWM0MWI3ZjFhZTQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDctMDggIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KKworICAgICAgICBJbXBsZW1lbnQgdW5sb2Fk
RXZlbnRFbmQsIGxvYWRFdmVudFN0YXJ0LCBhbmQgbG9hZEV2ZW50RW5kIGZvciBXZWIgVGltaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTMzMgor
CisgICAgICAgIEV4cGVjdGF0aW9ucyBhcmUgc2V0IHRvIEZBSUwgYmVjYXVzZSBkaXNhYmxlZCBi
eSBkZWZhdWx0LiBQYXNzZXMgd2l0aCAtLXdlYi10aW1pbmcuCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9zY3JpcHQtdGVzdHMvd2VidGltaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKHNsZWVwRmlmdHlN
aWxsaXNlY29uZHMpOgorICAgICAgICAoc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwpOgorICAg
ICAgICAoY2hlY2tUaW1pbmdCZWZvcmVMb2FkKToKKyAgICAgICAgKGNoZWNrV2ViVGltaW5nT25M
b2FkKToKKyAgICAgICAgKGNoZWNrV2ViVGltaW5nQWZ0ZXJMb2FkKToKKyAgICAgICAgKiBmYXN0
L2RvbS93ZWJ0aW1pbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS93
ZWJ0aW1pbmcuaHRtbDogQWRkZWQuCisKIDIwMTAtMDctMDggIEFuZHJlYXMgS2xpbmcgIDxhbmRy
ZWFzLmtsaW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFu
bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy93ZWJ0aW1p
bmcuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvd2VidGltaW5nLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg1ZTIwNGQwYTNhNzY5M2JlNjJlMjMyNzM5Y2EwYmU4MGUwMDkyOTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvd2VidGltaW5n
LmpzCkBAIC0wLDAgKzEsNzIgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQg
YWxsIG9mIHRoZSA8YSBocmVmPSdodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1p
bmcvJz5XZWIgVGltaW5nPC9hPiBhdHRyaWJ1dGVzIGFyZSBhdmFpbGFibGUgYW5kIGhhdmUgcmVh
c29uYWJsZSB2YWx1ZXMgaW4gdGhlIHJpZ2h0IG9yZGVyLiIpOworCit2YXIgcGVyZm9ybWFuY2Ug
PSB3aW5kb3cud2Via2l0UGVyZm9ybWFuY2UgfHwge307Cit2YXIgdGltaW5nID0gcGVyZm9ybWFu
Y2UudGltaW5nIHx8IHt9OworCisvLyBHZXQgdGhlIG9yZGVyIG9mIG1hZ25pdHVkZSBjb3JyZWN0
IHdpdGhvdXQgYSBjaGFuY2UgZm9yIGZsYWtpbmVzcy4KK3ZhciBvbmVIb3VyTWlsbGlzZWNvbmRz
ID0gNjAgKiA2MCAqIDEwMDA7Cit2YXIgY3VycmVudFVUQyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1l
KCk7Cit2YXIgb25lSG91ckFnb1VUQyA9IGN1cnJlbnRVVEMgLSBvbmVIb3VyTWlsbGlzZWNvbmRz
OworCitmdW5jdGlvbiBzbGVlcEZpZnR5TWlsbGlzZWNvbmRzKCkgeworICB2YXIgZW5kVGltZSA9
IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgKyA1MDsKKyAgd2hpbGUgKChuZXcgRGF0ZSgpLmdldFRp
bWUoKSA8IGVuZFRpbWUpKSB7IH0KK30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
c2xlZXBGaWZ0eU1pbGxpc2Vjb25kcywgZmFsc2UpOworCisvLyBGSVhNRTogTW92ZSB0aGlzIHRv
IGpzLXRlc3QtcHJlLmpzIGlmIGl0IGlzIG5lZWRlZCBieSBvdGhlciB0ZXN0cy4KK2Z1bmN0aW9u
IHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKF9hLCBfYikgeworICAgIGlmICh0eXBlb2YgX2Eg
IT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAgICAgICBkZWJ1ZygiV0FS
Tjogc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7
CisKKyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAg
X2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBl
OworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9uKQor
ICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgPj0gIiArIF9iICsgIi4gVGhyZXcg
ZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAgIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVu
ZGVmaW5lZCIgfHwgX2F2IDwgX2J2KQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQg
YmUgPj0gIiArIF9iICsgIi4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2
ICsgIikuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyA+PSAiICsg
X2IpOworfQorCitmdW5jdGlvbiBjaGVja1RpbWluZ0JlZm9yZUxvYWQoKQoreworICAgIHNob3Vs
ZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcudW5sb2FkRXZlbnRFbmQiLCAidGltaW5nLm9u
ZUhvdXJBZ29VVEMiKTsKKworICAgIHNob3VsZEJlKCJ0aW1pbmcubG9hZEV2ZW50U3RhcnQiLCAi
MCIpOworICAgIHNob3VsZEJlKCJ0aW1pbmcubG9hZEV2ZW50RW5kIiwgIjAiKTsKKworICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgY2hlY2tXZWJUaW1pbmdPbkxvYWQsIGZhbHNl
KTsKK30KKworZnVuY3Rpb24gY2hlY2tXZWJUaW1pbmdPbkxvYWQoKQoreworICAgIHNob3VsZEJl
R3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcudW5sb2FkRXZlbnRFbmQiLCAidGltaW5nLm9uZUhv
dXJBZ29VVEMiKTsKKworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcubG9h
ZEV2ZW50U3RhcnQiLCAidGltaW5nLnVubG9hZEV2ZW50RW5kIik7CisgICAgc2hvdWxkQmUoInRp
bWluZy5sb2FkRXZlbnRFbmQiLCAiMCIpOworCisgICAgc2V0VGltZW91dCgiY2hlY2tXZWJUaW1p
bmdBZnRlckxvYWQoKSIsIDApOworfQorCitmdW5jdGlvbiBjaGVja1dlYlRpbWluZ0FmdGVyTG9h
ZCgpCit7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy51bmxvYWRFdmVu
dEVuZCIsICJ0aW1pbmcub25lSG91ckFnb1VUQyIpOworCisgICAgc2hvdWxkQmVHcmVhdGVyVGhh
bk9yRXF1YWwoInRpbWluZy5sb2FkRXZlbnRTdGFydCIsICJ0aW1pbmcudW5sb2FkRXZlbnRFbmQi
KTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLmxvYWRFdmVudEVuZCIs
ICJ0aW1pbmcubG9hZEV2ZW50U3RhcnQgKyA1MCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworY2hlY2tUaW1pbmdCZWZvcmVMb2FkKCk7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vd2VidGltaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dlYnRp
bWluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0NTRmNWVlYjY4ZmRiZWEyOTc1ZDcwZTMz
ODdmMzc2Nzc3NzIwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dl
YnRpbWluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IGFsbCBvZiB0aGUgV2ViIFRpbWluZyBhdHRyaWJ1dGVzIGFyZSBhdmFpbGFibGUgYW5kIGhh
dmUgcmVhc29uYWJsZSB2YWx1ZXMgaW4gdGhlIHJpZ2h0IG9yZGVyLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworRkFJTCB0aW1pbmcudW5sb2FkRXZlbnRFbmQgc2hvdWxkIGJlID49
IHRpbWluZy5vbmVIb3VyQWdvVVRDLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCku
CitGQUlMIHRpbWluZy5sb2FkRXZlbnRTdGFydCBzaG91bGQgYmUgMCAob2YgdHlwZSBudW1iZXIp
LiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIHRpbWluZy5sb2FkRXZl
bnRFbmQgc2hvdWxkIGJlIDAgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlw
ZSB1bmRlZmluZWQpLgorRkFJTCB0aW1pbmcudW5sb2FkRXZlbnRFbmQgc2hvdWxkIGJlID49IHRp
bWluZy5vbmVIb3VyQWdvVVRDLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitG
QUlMIHRpbWluZy5sb2FkRXZlbnRTdGFydCBzaG91bGQgYmUgPj0gdGltaW5nLnVubG9hZEV2ZW50
RW5kLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIHRpbWluZy5sb2Fk
RXZlbnRFbmQgc2hvdWxkIGJlIDAgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHVuZGVmaW5lZCAob2Yg
dHlwZSB1bmRlZmluZWQpLgorRkFJTCB0aW1pbmcudW5sb2FkRXZlbnRFbmQgc2hvdWxkIGJlID49
IHRpbWluZy5vbmVIb3VyQWdvVVRDLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCku
CitGQUlMIHRpbWluZy5sb2FkRXZlbnRTdGFydCBzaG91bGQgYmUgPj0gdGltaW5nLnVubG9hZEV2
ZW50RW5kLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIHRpbWluZy5s
b2FkRXZlbnRFbmQgc2hvdWxkIGJlID49IHRpbWluZy5sb2FkRXZlbnRTdGFydCArIDUwLiBXYXMg
dW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vd2VidGltaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93ZWJ0aW1pbmcuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wZGI2NWM1NzE2MzQ3MWViZDhlMDgxNjAwMDM5MTg1OTYzZDAyMTZmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2VidGltaW5nLmh0bWwKQEAgLTAs
MCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy93ZWJ0aW1pbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNDFlMmUz
YzVlMmVkY2Y5OTNjODlhNzU2ZjVmZjI1NjRhMDMyNGQ3Li42NTcxYjllNjJlMTU5NWEwMzE1Y2E1
ZmE3NzRmZTFlNDRhMDQ3MDI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisKKzIwMTAtMDctMDggIFRvbnkgR2Vu
dGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOYXRl
IENoYXBpbi4KKworICAgICAgICBJbXBsZW1lbnQgdW5sb2FkRXZlbnRFbmQsIGxvYWRFdmVudFN0
YXJ0LCBhbmQgbG9hZEV2ZW50RW5kIGZvciBXZWIgVGltaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTMzMgorCisgICAgICAgIFRlc3Q6IGZhc3Qv
ZG9tL3dlYnRpbWluZy5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpmcmFt
ZUxvYWRUaW1lbGluZSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFRpbWVsaW5lOjpGcmFtZUxvYWRUaW1lbGluZSk6Cisg
ICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93
OjpkaXNwYXRjaExvYWRFdmVudCk6CisgICAgICAgICogcGFnZS9UaW1pbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGltaW5nOjpuYXZpZ2F0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
VGltaW5nOjp1bmxvYWRFdmVudEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1pbmc6OmxvYWRF
dmVudFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWluZzo6bG9hZEV2ZW50RW5kKToKKyAg
ICAgICAgKiBwYWdlL1RpbWluZy5oOgorICAgICAgICAqIHBhZ2UvVGltaW5nLmlkbDoKKwogMjAx
MC0wNy0wOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDZjZWI5NGFm
OTZiM2JhYWM2YzIyYmIwNjlmOGE4MThlYTM0YTEwMDcuLjljMjUwZDk0YTExZmMxMGM5NjhkYWZl
NzVlNjc0OGNhZGI1ZGQ5ZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQ0OSw2ICs0NDks
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdG9wTG9hZGluZyhVbmxvYWRFdmVudFBvbGljeSB1bmxv
YWRFdmVudFBvbGljeSwgRGF0YWJhc2VQb2xpYwogICAgICAgICAgICAgICAgICAgICAgICAgbV9m
cmFtZS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pblBh
Z2VDYWNoZSgpKSwgbV9mcmFtZS0+ZG9jdW1lbnQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnVubG9hZEV2ZW50LCBmYWxzZSwgZmFsc2UpLCBtX2ZyYW1lLT5kb21XaW5k
b3coKS0+ZG9jdW1lbnQoKSk7CisgICAgICAgICAgICAgICAgICAgIG1fZnJhbWVMb2FkVGltZWxp
bmUudW5sb2FkRXZlbnRFbmQgPSBjdXJyZW50VGltZSgpOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICBtX3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCA9IGZhbHNl
OwogICAgICAgICAgICAgICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpKQpAQCAtMTQ5OSw2ICsx
NTAwLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVu
dExvYWRlciogbG9hZGVyLCBGcmFtZUxvYWRUeXBlIHQKICAgICBpZiAobV9wYWdlRGlzbWlzc2Fs
RXZlbnRCZWluZ0Rpc3BhdGNoZWQpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fZnJhbWVMb2Fk
VGltZWxpbmUgPSBGcmFtZUxvYWRUaW1lbGluZSgpOworCiAgICAgcG9saWN5Q2hlY2tlcigpLT5z
ZXRMb2FkVHlwZSh0eXBlKTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBG
b3JtU3RhdGU7CiAgICAgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uID0gZm9ybVN0YXRlOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKaW5kZXggODk4MDUyMGE5NWFjODQ5ZmRjMzdmOTYzMDIyMGZmYmQ5NjM4MmQ0Zi4u
NzU2ZWJjMzRiMWExZWMxZGFmMzdiYmE3NjRlMDA5NDdkOTFmYTg5OCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCkBAIC0xOTMsNiArMTkzLDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2hhbmdlSWNvbnMo
RG9jdW1lbnRMb2FkZXIqKTsKIAogICAgIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUoKSBjb25zdDsK
KyAgICBGcmFtZUxvYWRUaW1lbGluZSogZnJhbWVMb2FkVGltZWxpbmUoKSB7IHJldHVybiAmbV9m
cmFtZUxvYWRUaW1lbGluZTsgfQorCiAgICAgQ2FjaGVQb2xpY3kgc3VicmVzb3VyY2VDYWNoZVBv
bGljeSgpIGNvbnN0OwogCiAgICAgdm9pZCBkaWRGaXJzdExheW91dCgpOwpAQCAtNDQ0LDYgKzQ0
Niw3IEBAIHByaXZhdGU6CiAKICAgICBGcmFtZVN0YXRlIG1fc3RhdGU7CiAgICAgRnJhbWVMb2Fk
VHlwZSBtX2xvYWRUeXBlOworICAgIEZyYW1lTG9hZFRpbWVsaW5lIG1fZnJhbWVMb2FkVGltZWxp
bmU7CiAKICAgICAvLyBEb2N1bWVudCBsb2FkZXJzIGZvciB0aGUgdGhyZWUgcGhhc2VzIG9mIGZy
YW1lIGxvYWRpbmcuIE5vdGUgdGhhdCB3aGlsZSAKICAgICAvLyBhIG5ldyByZXF1ZXN0IGlzIGJl
aW5nIGxvYWRlZCwgdGhlIG9sZCBkb2N1bWVudCBsb2FkZXIgbWF5IHN0aWxsIGJlIHJlZmVyZW5j
ZWQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmggYi9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggMDE2ZGUxOWQyNDE1ZmRkNzczMGU2
M2JhNzE3NGI4MTVkYjQ2YjA0My4uMmUzY2YxNThiMzQzZGJhNzM1ZTQ5NDVhOTI4NTQ2NTdlMDYz
NzRiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCisrKyBi
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtNjAsNiArNjAsMTkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBGcmFtZUxvYWRUeXBlQmFja1dNTERlY2tOb3RBY2Nl
c3NpYmxlCiAgICAgfTsKIAorICAgIHN0cnVjdCBGcmFtZUxvYWRUaW1lbGluZSB7CisgICAgICAg
IEZyYW1lTG9hZFRpbWVsaW5lKCkKKyAgICAgICAgICAgIDogdW5sb2FkRXZlbnRFbmQoMCkKKyAg
ICAgICAgICAgICwgbG9hZEV2ZW50U3RhcnQoMCkKKyAgICAgICAgICAgICwgbG9hZEV2ZW50RW5k
KDApCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGRvdWJsZSB1bmxvYWRFdmVudEVu
ZDsKKyAgICAgICAgZG91YmxlIGxvYWRFdmVudFN0YXJ0OworICAgICAgICBkb3VibGUgbG9hZEV2
ZW50RW5kOworICAgIH07CisKICAgICBlbnVtIE5hdmlnYXRpb25UeXBlIHsKICAgICAgICAgTmF2
aWdhdGlvblR5cGVMaW5rQ2xpY2tlZCwKICAgICAgICAgTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0
dGVkLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAppbmRleCAxMTc2ZWU3MTVlMmNmMDRhNGFjY2YxM2Q2ZmE2YTE4MTBl
NmZhZGFjLi5kNDY5MDQ5ZGEyYWZhNjZhNDFkZDg0N2EzMzc0MjkwOWMzMDdhNjNhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcApAQCAtNzgsOCArNzgsOSBAQAogI2luY2x1ZGUgIlN1ZGRlblRlcm1pbmF0aW9uLmgi
CiAjaW5jbHVkZSAiV2ViS2l0UG9pbnQuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
CiB1c2luZyBzdGQ6Om1pbjsKIHVzaW5nIHN0ZDo6bWF4OwpAQCAtMTQyOCw3ICsxNDI5LDExIEBA
IGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAKIHZvaWQgRE9NV2luZG93OjpkaXNwYXRjaExvYWRF
dmVudCgpCiB7CisgICAgaWYgKG1fZnJhbWUpCisgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5m
cmFtZUxvYWRUaW1lbGluZSgpLT5sb2FkRXZlbnRTdGFydCA9IGN1cnJlbnRUaW1lKCk7CiAgICAg
ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIGZhbHNl
LCBmYWxzZSksIGRvY3VtZW50KCkpOworICAgIGlmIChtX2ZyYW1lKQorICAgICAgICBtX2ZyYW1l
LT5sb2FkZXIoKS0+ZnJhbWVMb2FkVGltZWxpbmUoKS0+bG9hZEV2ZW50RW5kID0gY3VycmVudFRp
bWUoKTsKIAogICAgIC8vIEZvciBsb2FkIGV2ZW50cywgc2VuZCBhIHNlcGFyYXRlIGxvYWQgZXZl
bnQgdG8gdGhlIGVuY2xvc2luZyBmcmFtZSBvbmx5LgogICAgIC8vIFRoaXMgaXMgYSBET00gZXh0
ZW5zaW9uIGFuZCBpcyBpbmRlcGVuZGVudCBvZiBidWJibGluZy9jYXB0dXJpbmcgcnVsZXMgb2YK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9UaW1pbmcuY3BwIGIvV2ViQ29yZS9wYWdlL1RpbWlu
Zy5jcHAKaW5kZXggZGNkMGZiNzg1ZGFmNWMwYjljMTNmOTgyY2E4Mjk0NDVjYmM0YTU1Ny4uYzIx
ZDM5OTU3Y2QyYmJkZTg4ZWZmMTkxNmU5ZDJlOGFkY2M2ZGM1YSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL1RpbWluZy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1RpbWluZy5jcHAKQEAgLTUyLDcg
KzUyLDcgQEAgdm9pZCBUaW1pbmc6OmRpc2Nvbm5lY3RGcmFtZSgpCiAgICAgbV9mcmFtZSA9IDA7
CiB9CiAKLXVuc2lnbmVkIGxvbmcgVGltaW5nOjpuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdAordW5z
aWduZWQgbG9uZyBsb25nIFRpbWluZzo6bmF2aWdhdGlvblN0YXJ0KCkgY29uc3QKIHsKICAgICBp
ZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNjAsNiArNjAsMzAgQEAgdW5zaWdu
ZWQgbG9uZyBUaW1pbmc6Om5hdmlnYXRpb25TdGFydCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7IC8v
IEZJWE1FCiB9CiAKK3Vuc2lnbmVkIGxvbmcgbG9uZyBUaW1pbmc6OnVubG9hZEV2ZW50RW5kKCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9mcmFtZS0+bG9hZGVyKCktPmZy
YW1lTG9hZFRpbWVsaW5lKCktPnVubG9hZEV2ZW50RW5kICogMTAwMCk7Cit9CisKK3Vuc2lnbmVk
IGxvbmcgbG9uZyBUaW1pbmc6OmxvYWRFdmVudFN0YXJ0KCkgY29uc3QKK3sKKyAgICBpZiAoIW1f
ZnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2ln
bmVkIGxvbmcgbG9uZz4obV9mcmFtZS0+bG9hZGVyKCktPmZyYW1lTG9hZFRpbWVsaW5lKCktPmxv
YWRFdmVudFN0YXJ0ICogMTAwMCk7Cit9CisKK3Vuc2lnbmVkIGxvbmcgbG9uZyBUaW1pbmc6Omxv
YWRFdmVudEVuZCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fZnJhbWUt
PmxvYWRlcigpLT5mcmFtZUxvYWRUaW1lbGluZSgpLT5sb2FkRXZlbnRFbmQgKiAxMDAwKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9USU1JTkcp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvVGltaW5nLmggYi9XZWJDb3JlL3BhZ2UvVGltaW5n
LmgKaW5kZXggN2I2NmQ2Njk2YmM4ZjZhM2M4NGY4Yzg0YzAwMTZhNDZiMjZjNzQwMy4uNDdjZTQ3
OGFlNzA1YWEwMTQwNzhmODM2ZjQ2MWQzNmQ3MTlkMzA0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL1RpbWluZy5oCisrKyBiL1dlYkNvcmUvcGFnZS9UaW1pbmcuaApAQCAtNDcsNyArNDcsMTAg
QEAgcHVibGljOgogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwogICAgIHZvaWQgZGlzY29ubmVj
dEZyYW1lKCk7CiAKLSAgICB1bnNpZ25lZCBsb25nIG5hdmlnYXRpb25TdGFydCgpIGNvbnN0Owor
ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdDsKKyAgICB1bnNp
Z25lZCBsb25nIGxvbmcgdW5sb2FkRXZlbnRFbmQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBsb25n
IGxvbmcgbG9hZEV2ZW50U3RhcnQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgbG9h
ZEV2ZW50RW5kKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgVGltaW5nKEZyYW1lKik7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvVGltaW5nLmlkbCBiL1dlYkNvcmUvcGFnZS9UaW1pbmcuaWRs
CmluZGV4IDAxYjcyYmNiMWZmNTM1MDM2MjNlMmRiZDZmNjNiMjI2YmE4OTNiZjIuLmRiZTk5NmUy
MzNjNTg1MzBiNjRmN2Y2MWI0YTRlYmZhNDU3NDdjN2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFn
ZS9UaW1pbmcuaWRsCisrKyBiL1dlYkNvcmUvcGFnZS9UaW1pbmcuaWRsCkBAIC0zMiw4ICszMiwy
MiBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgIC8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAw
Ni93ZWJhcGkvV2ViVGltaW5nLwogICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9V0VCX1RJTUlO
RywgT21pdENvbnN0cnVjdG9yXSBUaW1pbmcgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBuYXZpZ2F0aW9uU3RhcnQ7CiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgcmVtYWluZGVyIG9mIGludGVyZmFjZS4KKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbG9uZyBuYXZpZ2F0aW9uU3RhcnQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgZmV0Y2hTdGFydDsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyB1bmxvYWRFdmVudEVuZDsKKyAgICAgICAgLy8g
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyByZWRpcmVjdFN0YXJ0OworICAg
ICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHJlZGlyZWN0RW5k
OworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIGRvbWFp
bkxvb2t1cFN0YXJ0OworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsb25nIGRvbWFpbkxvb2t1cEVuZDsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbG9uZyBjb25uZWN0U3RhcnQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgY29ubmVjdEVuZDsKKyAgICAgICAgLy8gcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyByZXF1ZXN0U3RhcnQ7CisgICAgICAgIC8vIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgcmVxdWVzdEVuZDsKKyAgICAgICAg
Ly8gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyByZXNwb25zZVN0YXJ0Owor
ICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHJlc3BvbnNl
RW5kOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIGxvYWRF
dmVudFN0YXJ0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25n
IGxvYWRFdmVudEVuZDsKICAgICB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61058</attachid>
            <date>2010-07-09 10:35:23 -0700</date>
            <delta_ts>2010-07-09 13:18:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-41332-20100709103522.patch</filename>
            <type>text/plain</type>
            <size>14120</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ZjViN2I2N2YyOTZkNmIwZjZhM2FhYWI5MzlmMTgyYzQ1MzI3YzFjLi40NGM3ZmYz
NGU5ZTQwNjNhODRkNTc4YWVjZjE1ZGQ4ODBhNGJmYjhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDctMDggIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KKworICAgICAgICBJbXBsZW1lbnQgdW5sb2Fk
RXZlbnRFbmQsIGxvYWRFdmVudFN0YXJ0LCBhbmQgbG9hZEV2ZW50RW5kIGZvciBXZWIgVGltaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTMzMgor
CisgICAgICAgIEV4cGVjdGF0aW9ucyBhcmUgc2V0IHRvIEZBSUwgYmVjYXVzZSBkaXNhYmxlZCBi
eSBkZWZhdWx0LiBQYXNzZXMgd2l0aCAtLXdlYi10aW1pbmcuCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9zY3JpcHQtdGVzdHMvd2VidGltaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKHNsZWVwRmlmdHlN
aWxsaXNlY29uZHMpOgorICAgICAgICAoc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwpOgorICAg
ICAgICAoY2hlY2tUaW1pbmdCZWZvcmVMb2FkKToKKyAgICAgICAgKGNoZWNrV2ViVGltaW5nT25M
b2FkKToKKyAgICAgICAgKGNoZWNrV2ViVGltaW5nQWZ0ZXJMb2FkKToKKyAgICAgICAgKiBmYXN0
L2RvbS93ZWJ0aW1pbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS93
ZWJ0aW1pbmcuaHRtbDogQWRkZWQuCisKIDIwMTAtMDctMDkgIEJlbiBNdXJkb2NoICA8YmVubUBn
b29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3dlYnRpbWluZy5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy93ZWJ0aW1pbmcuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODVl
MjA0ZDBhM2E3NjkzYmU2MmUyMzI3MzljYTBiZTgwZTAwOTI5NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy93ZWJ0aW1pbmcuanMKQEAgLTAsMCAr
MSw3MiBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhhdCBhbGwgb2YgdGhlIDxh
IGhyZWY9J2h0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYlRpbWluZy8nPldlYiBUaW1p
bmc8L2E+IGF0dHJpYnV0ZXMgYXJlIGF2YWlsYWJsZSBhbmQgaGF2ZSByZWFzb25hYmxlIHZhbHVl
cyBpbiB0aGUgcmlnaHQgb3JkZXIuIik7CisKK3ZhciBwZXJmb3JtYW5jZSA9IHdpbmRvdy53ZWJr
aXRQZXJmb3JtYW5jZSB8fCB7fTsKK3ZhciB0aW1pbmcgPSBwZXJmb3JtYW5jZS50aW1pbmcgfHwg
e307CisKKy8vIEdldCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlIGNvcnJlY3Qgd2l0aG91dCBhIGNo
YW5jZSBmb3IgZmxha2luZXNzLgordmFyIG9uZUhvdXJNaWxsaXNlY29uZHMgPSA2MCAqIDYwICog
MTAwMDsKK3ZhciBjdXJyZW50VVRDID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKK3ZhciBvbmVI
b3VyQWdvVVRDID0gY3VycmVudFVUQyAtIG9uZUhvdXJNaWxsaXNlY29uZHM7CisKK2Z1bmN0aW9u
IHNsZWVwRmlmdHlNaWxsaXNlY29uZHMoKSB7CisgIHZhciBlbmRUaW1lID0gKG5ldyBEYXRlKCkp
LmdldFRpbWUoKSArIDUwOworICB3aGlsZSAoKG5ldyBEYXRlKCkuZ2V0VGltZSgpIDwgZW5kVGlt
ZSkpIHsgfQorfQord2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzbGVlcEZpZnR5TWls
bGlzZWNvbmRzLCBmYWxzZSk7CisKKy8vIEZJWE1FOiBNb3ZlIHRoaXMgdG8ganMtdGVzdC1wcmUu
anMgaWYgaXQgaXMgbmVlZGVkIGJ5IG90aGVyIHRlc3RzLgorZnVuY3Rpb24gc2hvdWxkQmVHcmVh
dGVyVGhhbk9yRXF1YWwoX2EsIF9iKSB7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8
fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZUdy
ZWF0ZXJUaGFuT3JFcXVhbCBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKworICAgIHZhciBl
eGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9h
KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAg
IHZhciBfYnYgPSBldmFsKF9iKTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RG
YWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBUaHJldyBleGNlcHRpb24gIiAr
IGV4Y2VwdGlvbik7CisgICAgZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIiB8fCBf
YXYgPCBfYnYpCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2Ig
KyAiLiBXYXMgIiArIF9hdiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKKyAg
ICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzID49ICIgKyBfYik7Cit9CisKK2Z1
bmN0aW9uIGNoZWNrVGltaW5nQmVmb3JlTG9hZCgpCit7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhh
bk9yRXF1YWwoInRpbWluZy51bmxvYWRFdmVudEVuZCIsICJ0aW1pbmcub25lSG91ckFnb1VUQyIp
OworCisgICAgc2hvdWxkQmUoInRpbWluZy5sb2FkRXZlbnRTdGFydCIsICIwIik7CisgICAgc2hv
dWxkQmUoInRpbWluZy5sb2FkRXZlbnRFbmQiLCAiMCIpOworCisgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCBjaGVja1dlYlRpbWluZ09uTG9hZCwgZmFsc2UpOworfQorCitmdW5j
dGlvbiBjaGVja1dlYlRpbWluZ09uTG9hZCgpCit7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9y
RXF1YWwoInRpbWluZy51bmxvYWRFdmVudEVuZCIsICJ0aW1pbmcub25lSG91ckFnb1VUQyIpOwor
CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy5sb2FkRXZlbnRTdGFydCIs
ICJ0aW1pbmcudW5sb2FkRXZlbnRFbmQiKTsKKyAgICBzaG91bGRCZSgidGltaW5nLmxvYWRFdmVu
dEVuZCIsICIwIik7CisKKyAgICBzZXRUaW1lb3V0KCJjaGVja1dlYlRpbWluZ0FmdGVyTG9hZCgp
IiwgMCk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrV2ViVGltaW5nQWZ0ZXJMb2FkKCkKK3sKKyAgICBz
aG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLnVubG9hZEV2ZW50RW5kIiwgInRpbWlu
Zy5vbmVIb3VyQWdvVVRDIik7CisKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGlt
aW5nLmxvYWRFdmVudFN0YXJ0IiwgInRpbWluZy51bmxvYWRFdmVudEVuZCIpOworICAgIHNob3Vs
ZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcubG9hZEV2ZW50RW5kIiwgInRpbWluZy5sb2Fk
RXZlbnRTdGFydCArIDUwIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworanNUZXN0SXNB
c3luYyA9IHRydWU7CitjaGVja1RpbWluZ0JlZm9yZUxvYWQoKTsKKwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93ZWJ0aW1p
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2VidGltaW5nLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNzQ1NGY1ZWViNjhmZGJlYTI5NzVkNzBlMzM4N2YzNzY3Nzc3MjBk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2VidGltaW5nLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYWxsIG9mIHRo
ZSBXZWIgVGltaW5nIGF0dHJpYnV0ZXMgYXJlIGF2YWlsYWJsZSBhbmQgaGF2ZSByZWFzb25hYmxl
IHZhbHVlcyBpbiB0aGUgcmlnaHQgb3JkZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitGQUlMIHRpbWluZy51bmxvYWRFdmVudEVuZCBzaG91bGQgYmUgPj0gdGltaW5nLm9uZUhv
dXJBZ29VVEMuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgdGltaW5n
LmxvYWRFdmVudFN0YXJ0IHNob3VsZCBiZSAwIChvZiB0eXBlIG51bWJlcikuIFdhcyB1bmRlZmlu
ZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgdGltaW5nLmxvYWRFdmVudEVuZCBzaG91bGQg
YmUgMCAob2YgdHlwZSBudW1iZXIpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCku
CitGQUlMIHRpbWluZy51bmxvYWRFdmVudEVuZCBzaG91bGQgYmUgPj0gdGltaW5nLm9uZUhvdXJB
Z29VVEMuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgdGltaW5nLmxv
YWRFdmVudFN0YXJ0IHNob3VsZCBiZSA+PSB0aW1pbmcudW5sb2FkRXZlbnRFbmQuIFdhcyB1bmRl
ZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgdGltaW5nLmxvYWRFdmVudEVuZCBzaG91
bGQgYmUgMCAob2YgdHlwZSBudW1iZXIpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5l
ZCkuCitGQUlMIHRpbWluZy51bmxvYWRFdmVudEVuZCBzaG91bGQgYmUgPj0gdGltaW5nLm9uZUhv
dXJBZ29VVEMuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgdGltaW5n
LmxvYWRFdmVudFN0YXJ0IHNob3VsZCBiZSA+PSB0aW1pbmcudW5sb2FkRXZlbnRFbmQuIFdhcyB1
bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KK0ZBSUwgdGltaW5nLmxvYWRFdmVudEVuZCBz
aG91bGQgYmUgPj0gdGltaW5nLmxvYWRFdmVudFN0YXJ0ICsgNTAuIFdhcyB1bmRlZmluZWQgKG9m
IHR5cGUgdW5kZWZpbmVkKS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93ZWJ0aW1pbmcu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dlYnRpbWluZy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBk
YjY1YzU3MTYzNDcxZWJkOGUwODE2MDAwMzkxODU5NjNkMDIxNmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93ZWJ0aW1pbmcuaHRtbApAQCAtMCwwICsxLDEzIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3dlYnRp
bWluZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDViNzM1N2U5MWZhNWE5NWI2NGNk
NDI3YjI3N2ExODYwNDU1MTA0OTQuLjk4MmYxNWE5OTZhNTk0YzBhZTU3MjZhNWRhMmQ0YzdlYzY1
MWRkMDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDctMDggIFRvbnkgR2VudGlsY29yZSAgPHRvbnln
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KKworICAg
ICAgICBJbXBsZW1lbnQgdW5sb2FkRXZlbnRFbmQsIGxvYWRFdmVudFN0YXJ0LCBhbmQgbG9hZEV2
ZW50RW5kIGZvciBXZWIgVGltaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MTMzMgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3dlYnRpbWluZy5o
dG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpmcmFtZUxvYWRUaW1lbGluZSk6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZFRpbWVsaW5lOjpGcmFtZUxvYWRUaW1lbGluZSk6CisgICAgICAgICogcGFnZS9E
T01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaExvYWRF
dmVudCk6CisgICAgICAgICogcGFnZS9UaW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlt
aW5nOjpuYXZpZ2F0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6VGltaW5nOjp1bmxvYWRF
dmVudEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1pbmc6OmxvYWRFdmVudFN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlRpbWluZzo6bG9hZEV2ZW50RW5kKToKKyAgICAgICAgKiBwYWdlL1Rp
bWluZy5oOgorICAgICAgICAqIHBhZ2UvVGltaW5nLmlkbDoKKwogMjAxMC0wNy0wOSAgU2ViYXN0
aWFuIERyw7ZnZSAgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCA2Y2ViOTRhZjk2YjNiYWFjNmMyMmJiMDY5ZjhhODE4ZWEzNGExMDA3Li45YzI1MGQ5NGEx
MWZjMTBjOTY4ZGFmZTc1ZTY3NDhjYWRiNWRkOWY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBA
IC00NDksNiArNDQ5LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcExvYWRpbmcoVW5sb2FkRXZl
bnRQb2xpY3kgdW5sb2FkRXZlbnRQb2xpY3ksIERhdGFiYXNlUG9saWMKICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50KFBhZ2VUcmFuc2l0
aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucGFnZWhpZGVFdmVudCwgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSksIG1fZnJhbWUtPmRvY3VtZW50KCkpOwogICAgICAgICAg
ICAgICAgICAgICBpZiAoIW1fZnJhbWUtPmRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS51bmxvYWRFdmVudCwgZmFsc2UsIGZhbHNlKSwgbV9m
cmFtZS0+ZG9tV2luZG93KCktPmRvY3VtZW50KCkpOworICAgICAgICAgICAgICAgICAgICBtX2Zy
YW1lTG9hZFRpbWVsaW5lLnVubG9hZEV2ZW50RW5kID0gY3VycmVudFRpbWUoKTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgbV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3Bh
dGNoZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSkK
QEAgLTE0OTksNiArMTUwMCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRM
b2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgaWYgKG1f
cGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKQogICAgICAgICByZXR1cm47CiAKKyAg
ICBtX2ZyYW1lTG9hZFRpbWVsaW5lID0gRnJhbWVMb2FkVGltZWxpbmUoKTsKKwogICAgIHBvbGlj
eUNoZWNrZXIoKS0+c2V0TG9hZFR5cGUodHlwZSk7CiAgICAgUmVmUHRyPEZvcm1TdGF0ZT4gZm9y
bVN0YXRlID0gcHJwRm9ybVN0YXRlOwogICAgIGJvb2wgaXNGb3JtU3VibWlzc2lvbiA9IGZvcm1T
dGF0ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDg5ODA1MjBhOTVhYzg0OWZkYzM3Zjk2MzAyMjBm
ZmJkOTYzODJkNGYuLjc1NmViYzM0YjFhMWVjMWRhZjM3YmJhNzY0ZTAwOTQ3ZDkxZmE4OTggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuaApAQCAtMTkzLDYgKzE5Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZENoYW5nZUljb25zKERvY3VtZW50TG9hZGVyKik7CiAKICAgICBGcmFtZUxvYWRUeXBlIGxvYWRU
eXBlKCkgY29uc3Q7CisgICAgRnJhbWVMb2FkVGltZWxpbmUqIGZyYW1lTG9hZFRpbWVsaW5lKCkg
eyByZXR1cm4gJm1fZnJhbWVMb2FkVGltZWxpbmU7IH0KKwogICAgIENhY2hlUG9saWN5IHN1YnJl
c291cmNlQ2FjaGVQb2xpY3koKSBjb25zdDsKIAogICAgIHZvaWQgZGlkRmlyc3RMYXlvdXQoKTsK
QEAgLTQ0NCw2ICs0NDYsNyBAQCBwcml2YXRlOgogCiAgICAgRnJhbWVTdGF0ZSBtX3N0YXRlOwog
ICAgIEZyYW1lTG9hZFR5cGUgbV9sb2FkVHlwZTsKKyAgICBGcmFtZUxvYWRUaW1lbGluZSBtX2Zy
YW1lTG9hZFRpbWVsaW5lOwogCiAgICAgLy8gRG9jdW1lbnQgbG9hZGVycyBmb3IgdGhlIHRocmVl
IHBoYXNlcyBvZiBmcmFtZSBsb2FkaW5nLiBOb3RlIHRoYXQgd2hpbGUgCiAgICAgLy8gYSBuZXcg
cmVxdWVzdCBpcyBiZWluZyBsb2FkZWQsIHRoZSBvbGQgZG9jdW1lbnQgbG9hZGVyIG1heSBzdGls
bCBiZSByZWZlcmVuY2VkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJU
eXBlcy5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCmluZGV4IDAxNmRlMTlk
MjQxNWZkZDc3MzBlNjNiYTcxNzRiODE1ZGI0NmIwNDMuLjJlM2NmMTU4YjM0M2RiYTczNWU0OTQ1
YTkyODU0NjU3ZTA2Mzc0YjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
VHlwZXMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKQEAgLTYwLDYg
KzYwLDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRnJhbWVMb2FkVHlwZUJhY2tX
TUxEZWNrTm90QWNjZXNzaWJsZQogICAgIH07CiAKKyAgICBzdHJ1Y3QgRnJhbWVMb2FkVGltZWxp
bmUgeworICAgICAgICBGcmFtZUxvYWRUaW1lbGluZSgpCisgICAgICAgICAgICA6IHVubG9hZEV2
ZW50RW5kKDApCisgICAgICAgICAgICAsIGxvYWRFdmVudFN0YXJ0KDApCisgICAgICAgICAgICAs
IGxvYWRFdmVudEVuZCgwKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUg
dW5sb2FkRXZlbnRFbmQ7CisgICAgICAgIGRvdWJsZSBsb2FkRXZlbnRTdGFydDsKKyAgICAgICAg
ZG91YmxlIGxvYWRFdmVudEVuZDsKKyAgICB9OworCiAgICAgZW51bSBOYXZpZ2F0aW9uVHlwZSB7
CiAgICAgICAgIE5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQsCiAgICAgICAgIE5hdmlnYXRpb25U
eXBlRm9ybVN1Ym1pdHRlZCwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
IGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggMTE3NmVlNzE1ZTJjZjA0YTRhY2Nm
MTNkNmZhNmExODEwZTZmYWRhYy4uZDQ2OTA0OWRhMmFmYTY2YTQxZGQ4NDdhMzM3NDI5MDljMzA3
YTYzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTc4LDggKzc4LDkgQEAKICNpbmNsdWRlICJTdWRkZW5U
ZXJtaW5hdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KIAogdXNpbmcgc3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsKQEAgLTE0Mjgs
NyArMTQyOSwxMSBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogCiB2b2lkIERPTVdpbmRvdzo6
ZGlzcGF0Y2hMb2FkRXZlbnQoKQogeworICAgIGlmIChtX2ZyYW1lKQorICAgICAgICBtX2ZyYW1l
LT5sb2FkZXIoKS0+ZnJhbWVMb2FkVGltZWxpbmUoKS0+bG9hZEV2ZW50U3RhcnQgPSBjdXJyZW50
VGltZSgpOwogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubG9h
ZEV2ZW50LCBmYWxzZSwgZmFsc2UpLCBkb2N1bWVudCgpKTsKKyAgICBpZiAobV9mcmFtZSkKKyAg
ICAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmZyYW1lTG9hZFRpbWVsaW5lKCktPmxvYWRFdmVudEVu
ZCA9IGN1cnJlbnRUaW1lKCk7CiAKICAgICAvLyBGb3IgbG9hZCBldmVudHMsIHNlbmQgYSBzZXBh
cmF0ZSBsb2FkIGV2ZW50IHRvIHRoZSBlbmNsb3NpbmcgZnJhbWUgb25seS4KICAgICAvLyBUaGlz
IGlzIGEgRE9NIGV4dGVuc2lvbiBhbmQgaXMgaW5kZXBlbmRlbnQgb2YgYnViYmxpbmcvY2FwdHVy
aW5nIHJ1bGVzIG9mCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvVGltaW5nLmNwcCBiL1dlYkNv
cmUvcGFnZS9UaW1pbmcuY3BwCmluZGV4IGRjZDBmYjc4NWRhZjVjMGI5YzEzZjk4MmNhODI5NDQ1
Y2JjNGE1NTcuLmMyMWQzOTk1N2NkMmJiZGU4OGVmZjE5MTZlOWQyZThhZGNjNmRjNWEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9UaW1pbmcuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9UaW1pbmcu
Y3BwCkBAIC01Miw3ICs1Miw3IEBAIHZvaWQgVGltaW5nOjpkaXNjb25uZWN0RnJhbWUoKQogICAg
IG1fZnJhbWUgPSAwOwogfQogCi11bnNpZ25lZCBsb25nIFRpbWluZzo6bmF2aWdhdGlvblN0YXJ0
KCkgY29uc3QKK3Vuc2lnbmVkIGxvbmcgbG9uZyBUaW1pbmc6Om5hdmlnYXRpb25TdGFydCgpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKQEAgLTYwLDYgKzYw
LDMwIEBAIHVuc2lnbmVkIGxvbmcgVGltaW5nOjpuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdAogICAg
IHJldHVybiAwOyAvLyBGSVhNRQogfQogCit1bnNpZ25lZCBsb25nIGxvbmcgVGltaW5nOjp1bmxv
YWRFdmVudEVuZCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fZnJhbWUt
PmxvYWRlcigpLT5mcmFtZUxvYWRUaW1lbGluZSgpLT51bmxvYWRFdmVudEVuZCAqIDEwMDApOwor
fQorCit1bnNpZ25lZCBsb25nIGxvbmcgVGltaW5nOjpsb2FkRXZlbnRTdGFydCgpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fZnJhbWUtPmxvYWRlcigpLT5mcmFtZUxvYWRU
aW1lbGluZSgpLT5sb2FkRXZlbnRTdGFydCAqIDEwMDApOworfQorCit1bnNpZ25lZCBsb25nIGxv
bmcgVGltaW5nOjpsb2FkRXZlbnRFbmQoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBs
b25nPihtX2ZyYW1lLT5sb2FkZXIoKS0+ZnJhbWVMb2FkVGltZWxpbmUoKS0+bG9hZEV2ZW50RW5k
ICogMTAwMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShXRUJfVElNSU5HKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1RpbWluZy5oIGIvV2ViQ29y
ZS9wYWdlL1RpbWluZy5oCmluZGV4IDdiNjZkNjY5NmJjOGY2YTNjODRmOGM4NGMwMDE2YTQ2YjI2
Yzc0MDMuLjQ3Y2U0NzhhZTcwNWFhMDE0MDc4ZjgzNmY0NjFkMzZkNzE5ZDMwNGQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9UaW1pbmcuaAorKysgYi9XZWJDb3JlL3BhZ2UvVGltaW5nLmgKQEAg
LTQ3LDcgKzQ3LDEwIEBAIHB1YmxpYzoKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsKICAgICB2
b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOwogCi0gICAgdW5zaWduZWQgbG9uZyBuYXZpZ2F0aW9uU3Rh
cnQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgbmF2aWdhdGlvblN0YXJ0KCkgY29u
c3Q7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHVubG9hZEV2ZW50RW5kKCkgY29uc3Q7CisgICAg
dW5zaWduZWQgbG9uZyBsb25nIGxvYWRFdmVudFN0YXJ0KCkgY29uc3Q7CisgICAgdW5zaWduZWQg
bG9uZyBsb25nIGxvYWRFdmVudEVuZCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIFRpbWluZyhG
cmFtZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1RpbWluZy5pZGwgYi9XZWJDb3JlL3Bh
Z2UvVGltaW5nLmlkbAppbmRleCAwMWI3MmJjYjFmZjUzNTAzNjIzZTJkYmQ2ZjYzYjIyNmJhODkz
YmYyLi5kYmU5OTZlMjMzYzU4NTMwYjY0ZjdmNjFiNGE0ZWJmYTQ1NzQ3YzdmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvVGltaW5nLmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvVGltaW5nLmlkbApA
QCAtMzIsOCArMzIsMjIgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAvLyBTZWU6IGh0dHA6Ly9k
ZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYlRpbWluZy8KICAgICBpbnRlcmZhY2UgW0NvbmRpdGlv
bmFsPVdFQl9USU1JTkcsIE9taXRDb25zdHJ1Y3Rvcl0gVGltaW5nIHsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbmF2aWdhdGlvblN0YXJ0OwogICAgICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHJlbWFpbmRlciBvZiBpbnRlcmZhY2UuCisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgbmF2aWdhdGlvblN0YXJ0OworICAgICAgICAv
LyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIGZldGNoU3RhcnQ7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgdW5sb2FkRXZlbnRFbmQ7
CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgcmVkaXJl
Y3RTdGFydDsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9u
ZyByZWRpcmVjdEVuZDsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbG9uZyBkb21haW5Mb29rdXBTdGFydDsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbG9uZyBkb21haW5Mb29rdXBFbmQ7CisgICAgICAgIC8vIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgY29ubmVjdFN0YXJ0OworICAgICAgICAvLyBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIGNvbm5lY3RFbmQ7CisgICAgICAg
IC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgcmVxdWVzdFN0YXJ0Owor
ICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHJlcXVlc3RF
bmQ7CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgcmVz
cG9uc2VTdGFydDsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bG9uZyByZXNwb25zZUVuZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbG9uZyBsb2FkRXZlbnRTdGFydDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbG9uZyBsb2FkRXZlbnRFbmQ7CiAgICAgfTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>