<?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>78602</bug_id>
          
          <creation_ts>2012-02-14 06:41:55 -0800</creation_ts>
          <short_desc>[Qt] Page doesn&apos;t get repainted while panning is in progress</short_desc>
          <delta_ts>2012-02-23 09:59:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Hugo Parente Lima">hugo.lima</reporter>
          <assigned_to name="Kenneth Rohde Christiansen">kenneth</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jesus</cc>
    
    <cc>kenneth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>556273</commentid>
    <comment_count>0</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2012-02-14 06:41:55 -0800</bug_when>
    <thetext>If you pan a large webpage it will trigger a repaint only when the panning stop and the user will see large blank areas until the panning stop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556276</commentid>
    <comment_count>1</comment_count>
      <attachid>126971</attachid>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2012-02-14 07:00:34 -0800</bug_when>
    <thetext>Created attachment 126971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556277</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 07:03:34 -0800</bug_when>
    <thetext>Attachment 126971 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets
Using index info to reconstruct a base tree...
&lt;stdin&gt;:1578: trailing whitespace.
        
&lt;stdin&gt;:1647: trailing whitespace.
    
&lt;stdin&gt;:1657: trailing whitespace.
    
&lt;stdin&gt;:1672: trailing whitespace.
        return 0;        
&lt;stdin&gt;:1674: trailing whitespace.
    
warning: squelched 7 whitespace errors
warning: 12 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 168776 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556314</commentid>
    <comment_count>3</comment_count>
      <attachid>126980</attachid>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2012-02-14 08:17:10 -0800</bug_when>
    <thetext>Created attachment 126980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556318</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 08:19:56 -0800</bug_when>
    <thetext>Attachment 126980 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
From git://git.webkit.org/WebKit
   1475f6d..6640514  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 107710 = 1475f6d06ac1bdc58f6b7b27ade48d967e113e10
r107712 = 66405148c5f7c19d2179ddbd3d3d5ee458d4b6d6
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Applying: [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets
Using index info to reconstruct a base tree...
&lt;stdin&gt;:1578: trailing whitespace.
        
&lt;stdin&gt;:1647: trailing whitespace.
    
&lt;stdin&gt;:1657: trailing whitespace.
    
&lt;stdin&gt;:1672: trailing whitespace.
        return 0;        
&lt;stdin&gt;:1674: trailing whitespace.
    
warning: squelched 7 whitespace errors
warning: 12 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 168776 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557164</commentid>
    <comment_count>5</comment_count>
      <attachid>126980</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-15 04:48:32 -0800</bug_when>
    <thetext>Comment on attachment 126980
Patch

This is wrong, you do not need the page to be resumed in order to paint. you just need to emit the viewportTrajectoryVectorChanged and that should be it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557210</commentid>
    <comment_count>6</comment_count>
      <attachid>127171</attachid>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2012-02-15 06:08:08 -0800</bug_when>
    <thetext>Created attachment 127171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557212</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 06:11:06 -0800</bug_when>
    <thetext>Attachment 127171 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Last 3072 characters of output:

	M	ChangeLog
	M	LayoutTests/platform/chromium-linux/tables/mozilla/bugs/bug11026-expected.png
	M	LayoutTests/platform/chromium-linux/tables/mozilla/bugs/bug10565-expected.png
	M	LayoutTests/platform/chromium-linux/tables/mozilla/bugs/bug1188-expected.png
	M	LayoutTests/platform/chromium/test_expectations.txt
	A	LayoutTests/platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug11026-expected.png
	A	LayoutTests/platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug10565-expected.png
	M	LayoutTests/platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug1188-expected.png
	D	LayoutTests/platform/chromium-mac/tables/mozilla/bugs/bug11026-expected.png
	D	LayoutTests/platform/chromium-mac/tables/mozilla/bugs/bug10565-expected.png
	M	LayoutTests/platform/chromium-mac-leopard/tables/mozilla/bugs/bug11026-expected.png
	M	LayoutTests/platform/chromium-mac-leopard/tables/mozilla/bugs/bug10565-expected.png
	M	LayoutTests/platform/chromium-mac-leopard/tables/mozilla/bugs/bug1188-expected.png
	M	LayoutTests/platform/chromium-win/tables/mozilla/bugs/bug1188-expected.png
	M	LayoutTests/platform/chromium-win/tables/mozilla/bugs/bug11026-expected.png
	M	LayoutTests/platform/chromium-win/tables/mozilla/bugs/bug10565-expected.png
	A	LayoutTests/inspector/elements/resolve-node-blocked-expected.txt
	A	LayoutTests/inspector/elements/resolve-node-blocked.html
	M	LayoutTests/ChangeLog
	M	Source/cmake/FindCFLite.cmake
	M	Source/WebCore/ChangeLog
	M	Source/WebCore/inspector/InjectedScript.cpp
	M	Source/WebCore/inspector/InjectedScript.h
W: -empty_dir: trunk/LayoutTests/platform/chromium-mac/tables/mozilla/bugs/bug10565-expected.png
W: -empty_dir: trunk/LayoutTests/platform/chromium-mac/tables/mozilla/bugs/bug11026-expected.png
r107809 = 26c3dbf4d929380fdd9660a6218cc2abc86f8070 (refs/remotes/origin/master)
First, rewinding head to replay your work on top of it...
Applying: Web Inspector: crash when inspecting an element on a page with eval disabled by CSP
Using index info to reconstruct a base tree...
&lt;stdin&gt;:35: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebCore/inspector/InjectedScript.cpp
CONFLICT (content): Merge conflict in Source/WebCore/inspector/InjectedScript.cpp
Auto-merging Source/WebCore/inspector/InjectedScript.h
CONFLICT (content): Merge conflict in Source/WebCore/inspector/InjectedScript.h
Failed to merge in the changes.
Patch failed at 0001 Web Inspector: crash when inspecting an element on a page with eval disabled by CSP

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563048</commentid>
    <comment_count>8</comment_count>
      <attachid>127171</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-23 05:44:41 -0800</bug_when>
    <thetext>Comment on attachment 127171
Patch

r- wrong solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563050</commentid>
    <comment_count>9</comment_count>
      <attachid>128465</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-23 05:50:31 -0800</bug_when>
    <thetext>Created attachment 128465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563059</commentid>
    <comment_count>10</comment_count>
      <attachid>128465</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-23 05:59:56 -0800</bug_when>
    <thetext>Comment on attachment 128465
Patch

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

A couple of questions first :)

&gt; Source/WebKit2/UIProcess/DrawingAreaProxy.h:97
&gt; +    virtual void setVisibleContentRectTrajectoryVector(const WebCore::IntRect&amp; visibleContentsRect, const WebCore::FloatPoint&amp;) { }

Hm, if you add the variable name to the first argument, why not the second?

&gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:206
&gt; +    connect(m_flickProvider, SIGNAL(contentXChanged()), SLOT(flickableMovingPositionUpdate()), Qt::DirectConnection);
&gt; +    connect(m_flickProvider, SIGNAL(contentYChanged()), SLOT(flickableMovingPositionUpdate()), Qt::DirectConnection);

IMHO we should leave out the DirectConnection parameters from connect() unless we are knowingly in a threaded-context.

&gt; Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp:-424
&gt; -    if (rect == m_visibleContentsRect &amp;&amp; scale == m_contentsScale)
&gt; -        return;

Hm, why did you remove the check? Is there a reason why schedulerLayerFlush() needs to be called even if the parameters haven&apos;t changed?

&gt; Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp:434
&gt; +void LayerTreeHostQt::setVisibleContentRectTrajectoryVector(const IntRect&amp; rect, const FloatPoint&amp; trajectoryVector)

Just thinking, should it be called setVisibleContentRectAndTrajectoryVector?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563061</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-23 06:02:55 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 128465 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=128465&amp;action=review
&gt; 
&gt; A couple of questions first :)
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/DrawingAreaProxy.h:97
&gt; &gt; +    virtual void setVisibleContentRectTrajectoryVector(const WebCore::IntRect&amp; visibleContentsRect, const WebCore::FloatPoint&amp;) { }
&gt; 
&gt; Hm, if you add the variable name to the first argument, why not the second?

Maybe I was too mechanical :-)

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:206
&gt; &gt; +    connect(m_flickProvider, SIGNAL(contentXChanged()), SLOT(flickableMovingPositionUpdate()), Qt::DirectConnection);
&gt; &gt; +    connect(m_flickProvider, SIGNAL(contentYChanged()), SLOT(flickableMovingPositionUpdate()), Qt::DirectConnection);
&gt; 
&gt; IMHO we should leave out the DirectConnection parameters from connect() unless we are knowingly in a threaded-context.

OK, though andras added them all over

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp:-424
&gt; &gt; -    if (rect == m_visibleContentsRect &amp;&amp; scale == m_contentsScale)
&gt; &gt; -        return;
&gt; 
&gt; Hm, why did you remove the check? Is there a reason why schedulerLayerFlush() needs to be called even if the parameters haven&apos;t changed?

Because two methods are used...so if I want to do this check I will need to store the trajectory vector as well and compare it. Not really worth it.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp:434
&gt; &gt; +void LayerTreeHostQt::setVisibleContentRectTrajectoryVector(const IntRect&amp; rect, const FloatPoint&amp; trajectoryVector)
&gt; 
&gt; Just thinking, should it be called setVisibleContentRectAndTrajectoryVector?

I didn&apos;t want to do the renaming, but I would suggest that we go for

LayerTreeHostQt::setVisibleContentRectForPanning(const FloatPoint&amp; trajectoryVector)
LayerTreeHostQt::setVisibleContentRectForScaling(const IntRect&amp; rect, float scale)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563064</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-23 06:04:50 -0800</bug_when>
    <thetext>LayerTreeHostQt::setVisibleContentRectForPanning(const IntRect&amp; rect, const FloatPoint&amp; trajectoryVector)
LayerTreeHostQt::setVisibleContentRectForScaling(const IntRect&amp; rect, float scale)

I mean :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563065</commentid>
    <comment_count>13</comment_count>
      <attachid>128465</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-23 06:05:22 -0800</bug_when>
    <thetext>Comment on attachment 128465
Patch

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

&gt;&gt;&gt; Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp:434
&gt;&gt;&gt; +void LayerTreeHostQt::setVisibleContentRectTrajectoryVector(const IntRect&amp; rect, const FloatPoint&amp; trajectoryVector)
&gt;&gt; 
&gt;&gt; Just thinking, should it be called setVisibleContentRectAndTrajectoryVector?
&gt; 
&gt; I didn&apos;t want to do the renaming, but I would suggest that we go for
&gt; 
&gt; LayerTreeHostQt::setVisibleContentRectForPanning(const FloatPoint&amp; trajectoryVector)
&gt; LayerTreeHostQt::setVisibleContentRectForScaling(const IntRect&amp; rect, float scale)

_Those_ sounds like nice and descriptive names :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563066</commentid>
    <comment_count>14</comment_count>
      <attachid>128468</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-23 06:05:40 -0800</bug_when>
    <thetext>Created attachment 128468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563095</commentid>
    <comment_count>15</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-23 07:11:53 -0800</bug_when>
    <thetext>Landed in r108625.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563179</commentid>
    <comment_count>16</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2012-02-23 09:52:17 -0800</bug_when>
    <thetext>The Flickable component has movementStarted() and movementEnded() signals, I think they can be used to avoid multiple calls to flickableMovingStateChanged() due to multiple emissions of movingChanged().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563183</commentid>
    <comment_count>17</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-23 09:57:01 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; The Flickable component has movementStarted() and movementEnded() signals, I think they can be used to avoid multiple calls to flickableMovingStateChanged() due to multiple emissions of movingChanged().

Up to doing a patch? :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563186</commentid>
    <comment_count>18</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2012-02-23 09:59:07 -0800</bug_when>
    <thetext>Yes, I can do that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126971</attachid>
            <date>2012-02-14 07:00:34 -0800</date>
            <delta_ts>2012-02-14 08:17:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78602-20120214115935.patch</filename>
            <type>text/plain</type>
            <size>12580</size>
            <attacher name="Hugo Parente Lima">hugo.lima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzMxYzAzMDA1MTQ4OTJh
MDNhNDcxMjE4MzBjNTJjYzYwY2MyYWE3Mi4uMTQ4NTY3ZDI5NTI1ODlhZWEyZGJmNjRmZmRmOWFk
MDBkNDIxMzQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTAyLTE0ICBIdWdv
IFBhcmVudGUgTGltYSAgPGh1Z28ucGxAZ21haWwuY29tPgorCisgICAgICAgIFtRdF0gUGFnZSBk
b2Vzbid0IGdldCByZXBhaW50ZWQgd2hpbGUgcGFubmluZyBpcyBpbiBwcm9ncmVzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MDIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXNwZW5kL3Jlc3VtZSB0
aGUgd2ViIHBhZ2UgZXZlcnkgNTBtcyB3aGlsZSBwYW5uaW5nIHRvIHRyaWdnZXIKKyAgICAgICAg
cmVwYWludHMuIFRoZSA1MG1zIGlzIGEgbWFnaWMgbnVtYmVyIHRoYXQgY2FuIGJlIHJlcGxhY2Vk
IGJ5IHNvbWUKKyAgICAgICAgaGV1cmlzdGljIGluIGFub3RoZXIgcGF0Y2guCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvcXQvUXRGbGlja1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFF0RmxpY2tQcm92
aWRlcjo6UXRGbGlja1Byb3ZpZGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRGbGlja1By
b3ZpZGVyLmg6CisgICAgICAgIChRdEZsaWNrUHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzdXNwZW5kQ29u
dGVudCk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6cmVz
dW1lQ29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2lu
ZTo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3
cG9ydEludGVyYWN0aW9uRW5naW5lOjpzZXRJdGVtUmVjdFZpc2libGUpOgorICAgICAgICAoV2Vi
S2l0OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjcm9sbFN0YXJ0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjcm9sbEVuZGVkKToKKyAg
ICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjp0aW1lckV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzY2FsZUFuaW1h
dGlvblN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZTo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25F
bmdpbmU6OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmU6OnBpbmNoR2VzdHVyZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViS2l0OjpR
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnBpbmNoR2VzdHVyZUVuZGVkKToKKyAgICAgICAg
KFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjppdGVtU2l6ZUNoYW5nZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaDoKKyAg
ICAgICAgKFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZSk6CisKIDIwMTItMDItMTEgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxMDc0MzUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRGbGlja1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdEZsaWNrUHJvdmlkZXIuY3BwCmluZGV4IDM3NjBjMGNmYjJlN2NkYmIzOTk4NzE1NWQ0MDA1
NGY5YTk5OWQyYzMuLjRkMTVmMmExNDgxNzU3MmU0NTRjZmNhZTU0NGM1M2NjNDY3ZDA0NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdEZsaWNrUHJvdmlkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdEZsaWNrUHJvdmlkZXIuY3BwCkBA
IC0xMDcsNiArMTA3LDggQEAgUXRGbGlja1Byb3ZpZGVyOjpRdEZsaWNrUHJvdmlkZXIoUVF1aWNr
V2ViVmlldyogdmlld0l0ZW0sIFFRdWlja1dlYlBhZ2UqIHBhZ2VJdGUKIAogICAgIC8vIFByb3Bh
Z2F0ZSBmbGlja2FibGUgc2lnbmFscy4KICAgICBjb25uZWN0KG1fZmxpY2thYmxlLCBTSUdOQUwo
bW92aW5nQ2hhbmdlZCgpKSwgU0lHTkFMKG1vdmluZ0NoYW5nZWQoKSksIFF0OjpEaXJlY3RDb25u
ZWN0aW9uKTsKKyAgICBjb25uZWN0KG1fZmxpY2thYmxlLCBTSUdOQUwobW92ZW1lbnRTdGFydGVk
KCkpLCBTSUdOQUwobW92aW5nU3RhcnRlZCgpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOworICAg
IGNvbm5lY3QobV9mbGlja2FibGUsIFNJR05BTChtb3ZlbWVudEVuZGVkKCkpLCBTSUdOQUwobW92
aW5nRW5kZWQoKSksIFF0OjpEaXJlY3RDb25uZWN0aW9uKTsKICAgICBjb25uZWN0KG1fZmxpY2th
YmxlLCBTSUdOQUwoZmxpY2tpbmdDaGFuZ2VkKCkpLCBTSUdOQUwoZmxpY2tpbmdDaGFuZ2VkKCkp
LCBRdDo6RGlyZWN0Q29ubmVjdGlvbik7CiAgICAgY29ubmVjdChtX2ZsaWNrYWJsZSwgU0lHTkFM
KGRyYWdnaW5nQ2hhbmdlZCgpKSwgU0lHTkFMKGRyYWdnaW5nQ2hhbmdlZCgpKSwgUXQ6OkRpcmVj
dENvbm5lY3Rpb24pOwogICAgIGNvbm5lY3QobV9mbGlja2FibGUsIFNJR05BTChjb250ZW50V2lk
dGhDaGFuZ2VkKCkpLCBTSUdOQUwoY29udGVudFdpZHRoQ2hhbmdlZCgpKSwgUXQ6OkRpcmVjdENv
bm5lY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Rmxp
Y2tQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RmxpY2tQcm92aWRl
ci5oCmluZGV4IGYzODhhMGI0YjAxYWNkOWUwNzUzYmU3NzkyY2FiY2I4ZjY5MmU3Y2IuLjkwZWE4
ODEzYTNkNDEzYTFjNjczOWQ0Mjc3MTA3ODhmNDU2ZTFlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdEZsaWNrUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRGbGlja1Byb3ZpZGVyLmgKQEAgLTczLDYgKzczLDggQEAgUV9TSUdO
QUxTOgogICAgIHZvaWQgY29udGVudFhDaGFuZ2VkKCk7CiAgICAgdm9pZCBjb250ZW50WUNoYW5n
ZWQoKTsKICAgICB2b2lkIG1vdmluZ0NoYW5nZWQoKTsKKyAgICB2b2lkIG1vdmluZ1N0YXJ0ZWQo
KTsKKyAgICB2b2lkIG1vdmluZ0VuZGVkKCk7CiAgICAgdm9pZCBmbGlja2luZ0NoYW5nZWQoKTsK
ICAgICB2b2lkIGRyYWdnaW5nQ2hhbmdlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCmluZGV4
IDczMTliN2ViMzNiZTEyMTc3NWQ1Yzg2NzUyMzVkOWE2NGZkZmViNzEuLmY0NDAxNDI3YTEwNWRk
NDJjMzI3ZDEwNWY2ZGVmY2I5NDg1MjQyOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCkBAIC0z
NCw2ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IGludCBrU2Nh
bGVBbmltYXRpb25EdXJhdGlvbk1pbGxpcyA9IDI1MDsKK3N0YXRpYyBjb25zdCBpbnQgcGFubmlu
Z1JlcGFpbnRJbnRlcnZhbCA9IDUwOwogCiAvLyBVUERBVEUgREVGRVJSSU5HIChTVVNQRU5EL1JF
U1VNRSkKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtNDcsNyArNDgs
NyBAQCBzdGF0aWMgY29uc3QgaW50IGtTY2FsZUFuaW1hdGlvbkR1cmF0aW9uTWlsbGlzID0gMjUw
OwogLy8gZXhlY3R1dGlvbiwgc3ViIHJlc291cmNlIGxvYWRzIGV0Yy4gV2UgZG8gdGhpcyBieSBl
bWl0dGluZyBzdXNwZW5kIGFuZCByZXN1bWUKIC8vIHNpZ25hbHMsIHdoaWNoIGFyZSB0aGVuIGhh
bmRsZWQgYnkgdGhlIHZpZXdwb3J0IGFuZCBwcm9wYWdhdGVzIHRvIHRoZSByaWdodCBwbGFjZS4K
IC8vCi0vLyBGb3IgdGhpcyByZWFzb24gdGhlIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXIgZ3VhcmQg
bXVzdCBiZSB1c2VkIHdoZW4gd2UgaW50ZXJhY3QKKy8vIEZvciB0aGlzIHJlYXNvbiBzdXNwZW5k
Q29udGVudC9yZXN1bWVDb250ZW50IG1ldGhvZHMgbXVzdCBiZSB1c2VkIHdoZW4gd2UgaW50ZXJh
Y3QKIC8vIG9yIGFuaW1hdGUgdGhlIGNvbnRlbnQuCiAvLwogLy8gSXQgc2hvdWxkIGJlIG5vdGVk
IHRoYXQgd2hlbiB3ZSB1cGRhdGUgY29udGVudCBwcm9wZXJ0aWVzLCB3ZSBtaWdodCByZWNlaXZl
IG5vdGlmeQpAQCAtNTksMzEgKzYwLDI1IEBAIHN0YXRpYyBjb25zdCBpbnQga1NjYWxlQW5pbWF0
aW9uRHVyYXRpb25NaWxsaXMgPSAyNTA7CiAvLyBJZiBzb21ldGhpbmcgc2hvdWxkIG9ubHkgYmUg
ZXhlY3V0ZWQgZHVyaW5nIHVwZGF0ZSBkZWZlcnJpbmcsIGl0IGlzIHBvc3NpYmxlIHRvCiAvLyBj
aGVjayBmb3IgdGhhdCB1c2luZyBBU1NFUlQobV9zdXNwZW5kQ291bnQpLgogCi1jbGFzcyBWaWV3
cG9ydFVwZGF0ZURlZmVycmVyIHsKLXB1YmxpYzoKLSAgICBWaWV3cG9ydFVwZGF0ZURlZmVycmVy
KFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZSogZW5naW5lKQotICAgICAgICA6IGVuZ2luZShl
bmdpbmUpCi0gICAgewotICAgICAgICBpZiAoZW5naW5lLT5tX3N1c3BlbmRDb3VudCsrKQotICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGVtaXQgZW5naW5lLT5jb250ZW50U3VzcGVuZFJl
cXVlc3RlZCgpOwotICAgIH0KK3ZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzdXNw
ZW5kQ29udGVudCgpCit7CisgICAgaWYgKG1fc3VzcGVuZENvdW50KyspCisgICAgICAgIHJldHVy
bjsKIAotICAgIH5WaWV3cG9ydFVwZGF0ZURlZmVycmVyKCkKLSAgICB7Ci0gICAgICAgIGlmICgt
LShlbmdpbmUtPm1fc3VzcGVuZENvdW50KSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICBlbWl0
IGNvbnRlbnRTdXNwZW5kUmVxdWVzdGVkKCk7Cit9CiAKLSAgICAgICAgZW1pdCBlbmdpbmUtPmNv
bnRlbnRSZXN1bWVSZXF1ZXN0ZWQoKTsKK3ZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5l
OjpyZXN1bWVDb250ZW50KCkKK3sKKyAgICBpZiAoLS0obV9zdXNwZW5kQ291bnQpKQorICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGlsZXMgYWxsIGFyb3VuZCB0
aGUgdmlld3BvcnQgd2lsbCBiZSByZXF1ZXN0ZWQuCi0gICAgICAgIGVtaXQgZW5naW5lLT52aWV3
cG9ydFRyYWplY3RvcnlWZWN0b3JDaGFuZ2VkKFFQb2ludEYoKSk7Ci0gICAgfQorICAgIGVtaXQg
Y29udGVudFJlc3VtZVJlcXVlc3RlZCgpOwogCi1wcml2YXRlOgotICAgIFF0Vmlld3BvcnRJbnRl
cmFjdGlvbkVuZ2luZSogY29uc3QgZW5naW5lOwotfTsKKyAgICAvLyBNYWtlIHN1cmUgdGhhdCB0
aWxlcyBhbGwgYXJvdW5kIHRoZSB2aWV3cG9ydCB3aWxsIGJlIHJlcXVlc3RlZC4KKyAgICBlbWl0
IHZpZXdwb3J0VHJhamVjdG9yeVZlY3RvckNoYW5nZWQoUVBvaW50RigpKTsKK30KIAogaW5saW5l
IHFyZWFsIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6Y3NzU2NhbGVGcm9tSXRlbShxcmVh
bCBpdGVtU2NhbGUpCiB7CkBAIC0xMjUsNyArMTIwLDggQEAgUXRWaWV3cG9ydEludGVyYWN0aW9u
RW5naW5lOjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUoUVF1aWNrV2ViVmlldyogdmlld3Bv
cnQKIAogICAgIGNvbm5lY3QobV9jb250ZW50LCBTSUdOQUwod2lkdGhDaGFuZ2VkKCkpLCBTTE9U
KGl0ZW1TaXplQ2hhbmdlZCgpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOwogICAgIGNvbm5lY3Qo
bV9jb250ZW50LCBTSUdOQUwoaGVpZ2h0Q2hhbmdlZCgpKSwgU0xPVChpdGVtU2l6ZUNoYW5nZWQo
KSksIFF0OjpEaXJlY3RDb25uZWN0aW9uKTsKLSAgICBjb25uZWN0KG1fZmxpY2tQcm92aWRlciwg
U0lHTkFMKG1vdmluZ0NoYW5nZWQoKSksIFNMT1Qoc2Nyb2xsU3RhdGVDaGFuZ2VkKCkpLCBRdDo6
RGlyZWN0Q29ubmVjdGlvbik7CisgICAgY29ubmVjdChtX2ZsaWNrUHJvdmlkZXIsIFNJR05BTCht
b3ZpbmdTdGFydGVkKCkpLCBTTE9UKHNjcm9sbFN0YXJ0ZWQoKSksIFF0OjpEaXJlY3RDb25uZWN0
aW9uKTsKKyAgICBjb25uZWN0KG1fZmxpY2tQcm92aWRlciwgU0lHTkFMKG1vdmluZ0VuZGVkKCkp
LCBTTE9UKHNjcm9sbEVuZGVkKCkpLCBRdDo6RGlyZWN0Q29ubmVjdGlvbik7CiAKICAgICBjb25u
ZWN0KG1fc2NhbGVBbmltYXRpb24sIFNJR05BTCh2YWx1ZUNoYW5nZWQoUVZhcmlhbnQpKSwKICAg
ICAgICAgICAgIFNMT1Qoc2NhbGVBbmltYXRpb25WYWx1ZUNoYW5nZWQoUVZhcmlhbnQpKSwgUXQ6
OkRpcmVjdENvbm5lY3Rpb24pOwpAQCAtMTU4LDcgKzE1NCw3IEBAIHZvaWQgUXRWaWV3cG9ydElu
dGVyYWN0aW9uRW5naW5lOjpzZXRJdGVtUmVjdFZpc2libGUoY29uc3QgUVJlY3RGJiBpdGVtUmVj
dCkKICAgICBpZiAoaXRlbVJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBW
aWV3cG9ydFVwZGF0ZURlZmVycmVyIGd1YXJkKHRoaXMpOworICAgIHN1c3BlbmRDb250ZW50KCk7
CiAKICAgICBxcmVhbCBpdGVtU2NhbGUgPSBtX3ZpZXdwb3J0LT53aWR0aCgpIC8gaXRlbVJlY3Qu
d2lkdGgoKTsKIApAQCAtMTY5LDYgKzE2NSw3IEBAIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9u
RW5naW5lOjpzZXRJdGVtUmVjdFZpc2libGUoY29uc3QgUVJlY3RGJiBpdGVtUmVjdCkKICAgICBR
UG9pbnRGIG5ld1Bvc2l0aW9uKG1fY29udGVudC0+cG9zKCkgKyAoaXRlbVJlY3QudG9wTGVmdCgp
ICogaXRlbVNjYWxlKSk7CiAKICAgICBtX2ZsaWNrUHJvdmlkZXItPnNldENvbnRlbnRQb3MobmV3
UG9zaXRpb24pOworICAgIHJlc3VtZUNvbnRlbnQoKTsKIH0KIAogYm9vbCBRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmU6OmFuaW1hdGVJdGVtUmVjdFZpc2libGUoY29uc3QgUVJlY3RGJiBpdGVt
UmVjdCkKQEAgLTE4NywyMyArMTg0LDM0IEBAIGJvb2wgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5n
aW5lOjphbmltYXRlSXRlbVJlY3RWaXNpYmxlKGNvbnN0IFFSZWN0RiYgaXRlbVJlY3QpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzY3Jv
bGxTdGF0ZUNoYW5nZWQoKQordm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjcm9s
bFN0YXJ0ZWQoKQogewotICAgIGlmIChtX2ZsaWNrUHJvdmlkZXItPmlzTW92aW5nKCkgJiYgIW1f
c2Nyb2xsVXBkYXRlRGVmZXJyZXIpCi0gICAgICAgIG1fc2Nyb2xsVXBkYXRlRGVmZXJyZXIgPSBh
ZG9wdFB0cihuZXcgVmlld3BvcnRVcGRhdGVEZWZlcnJlcih0aGlzKSk7Ci0gICAgZWxzZQotICAg
ICAgICBtX3Njcm9sbFVwZGF0ZURlZmVycmVyLmNsZWFyKCk7CisgICAgc3VzcGVuZENvbnRlbnQo
KTsKKyAgICBtX3Njcm9sbFBhaW50ZXJUaW1lci5zdGFydChwYW5uaW5nUmVwYWludEludGVydmFs
LCB0aGlzKTsKK30KKwordm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjcm9sbEVu
ZGVkKCkKK3sKKyAgICBtX3Njcm9sbFBhaW50ZXJUaW1lci5zdG9wKCk7CisgICAgcmVzdW1lQ29u
dGVudCgpOworfQorCit2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6dGltZXJFdmVu
dChRVGltZXJFdmVudCogZXYpCit7CisgICAgaWYgKGV2LT50aW1lcklkKCkgPT0gbV9zY3JvbGxQ
YWludGVyVGltZXIudGltZXJJZCgpKSB7CisgICAgICAgIHJlc3VtZUNvbnRlbnQoKTsKKyAgICAg
ICAgc3VzcGVuZENvbnRlbnQoKTsKKyAgICB9CiB9CiAKIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0
aW9uRW5naW5lOjpzY2FsZUFuaW1hdGlvblN0YXRlQ2hhbmdlZChRQWJzdHJhY3RBbmltYXRpb246
OlN0YXRlIG5ld1N0YXRlLCBRQWJzdHJhY3RBbmltYXRpb246OlN0YXRlIC8qb2xkU3RhdGUqLykK
IHsKICAgICBzd2l0Y2ggKG5ld1N0YXRlKSB7CiAgICAgY2FzZSBRQWJzdHJhY3RBbmltYXRpb246
OlJ1bm5pbmc6Ci0gICAgICAgIGlmICghbV9zY2FsZVVwZGF0ZURlZmVycmVyKQotICAgICAgICAg
ICAgbV9zY2FsZVVwZGF0ZURlZmVycmVyID0gYWRvcHRQdHIobmV3IFZpZXdwb3J0VXBkYXRlRGVm
ZXJyZXIodGhpcykpOworICAgICAgICBzdXNwZW5kQ29udGVudCgpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFFBYnN0cmFjdEFuaW1hdGlvbjo6U3RvcHBlZDoKLSAgICAgICAgbV9zY2FsZVVw
ZGF0ZURlZmVycmVyLmNsZWFyKCk7CisgICAgICAgIHJlc3VtZUNvbnRlbnQoKTsKICAgICAgICAg
YnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0zNzUsOCArMzgzLDcgQEAg
dm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnJlc2V0KCkKIAogICAgIG1fZmxpY2tQ
cm92aWRlci0+Y2FuY2VsRmxpY2soKTsKICAgICBtX3NjYWxlQW5pbWF0aW9uLT5zdG9wKCk7Ci0g
ICAgbV9zY2FsZVVwZGF0ZURlZmVycmVyLmNsZWFyKCk7Ci0gICAgbV9zY3JvbGxVcGRhdGVEZWZl
cnJlci5jbGVhcigpOworICAgIHJlc3VtZUNvbnRlbnQoKTsKIH0KIAogdm9pZCBRdFZpZXdwb3J0
SW50ZXJhY3Rpb25FbmdpbmU6OmFwcGx5Q29uc3RyYWludHMoY29uc3QgQ29uc3RyYWludHMmIGNv
bnN0cmFpbnRzKQpAQCAtMzg0LDcgKzM5MSw3IEBAIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9u
RW5naW5lOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IENvbnN0cmFpbnRzJiBjb25zdHJhaW50CiAg
ICAgLy8gV2UgYWx3YXlzIGhhdmUgdG8gYXBwbHkgdGhlIGNvbnN0cmFpbnMgZXZlbiBpZiB0aGV5
IGRpZG4ndCBjaGFuZ2UsIGFzCiAgICAgLy8gdGhlIGluaXRpYWwgc2NhbGUgbWlnaHQgbmVlZCB0
byBiZSBhcHBsaWVkLgogCi0gICAgVmlld3BvcnRVcGRhdGVEZWZlcnJlciBndWFyZCh0aGlzKTsK
KyAgICBzdXNwZW5kQ29udGVudCgpOwogCiAgICAgbV9jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRz
OwogCkBAIC0zOTYsNiArNDAzLDcgQEAgdm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6
OmFwcGx5Q29uc3RyYWludHMoY29uc3QgQ29uc3RyYWludHMmIGNvbnN0cmFpbnQKICAgICAvLyBJ
ZiB0aGUgd2ViIGFwcCBzdWNjZXNzaXZlbHkgY2hhbmdlcyB0aGUgdmlld3BvcnQgb24gcHVycG9z
ZQogICAgIC8vIGl0IHdhbnRzIHRvIGJlIGluIGNvbnRyb2wgYW5kIHdlIHNob3VsZCBkaXNhYmxl
IGFuaW1hdGlvbnMuCiAgICAgZW5zdXJlQ29udGVudFdpdGhpblZpZXdwb3J0Qm91bmRhcnkoLyog
aW1tZWRpYXRlICovIHRydWUpOworICAgIHJlc3VtZUNvbnRlbnQoKTsKIH0KIAogcXJlYWwgUXRW
aWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpjdXJyZW50Q1NTU2NhbGUoKQpAQCAtNDc5LDcgKzQ4
Nyw3IEBAIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpwaW5jaEdlc3R1cmVTdGFy
dGVkKGNvbnN0IFFQb2ludEYmIHBpbmNoQ2VudGVyCiAKICAgICBtX2hhZFVzZXJJbnRlcmFjdGlv
biA9IHRydWU7CiAKLSAgICBtX3NjYWxlVXBkYXRlRGVmZXJyZXIgPSBhZG9wdFB0cihuZXcgVmll
d3BvcnRVcGRhdGVEZWZlcnJlcih0aGlzKSk7CisgICAgc3VzcGVuZENvbnRlbnQoKTsKIAogICAg
IG1fbGFzdFBpbmNoQ2VudGVySW5WaWV3cG9ydENvb3JkaW5hdGVzID0gcGluY2hDZW50ZXJJblZp
ZXdwb3J0Q29vcmRpbmF0ZXM7CiAgICAgbV9waW5jaFN0YXJ0U2NhbGUgPSBtX2NvbnRlbnQtPmNv
bnRlbnRzU2NhbGUoKTsKQEAgLTUyMCw3ICs1MjgsNyBAQCB2b2lkIFF0Vmlld3BvcnRJbnRlcmFj
dGlvbkVuZ2luZTo6cGluY2hHZXN0dXJlRW5kZWQoKQogICAgIG1fcGluY2hTdGFydFNjYWxlID0g
LTE7CiAgICAgLy8gQ2xlYXIgdGhlIHVwZGF0ZSBkZWZlcnJlciBub3cgaWYgd2UncmUgaW4gb3Vy
IGZpbmFsIHBvc2l0aW9uIGFuZCB0aGVyZSB3b24ndCBiZSBhbnkgYW5pbWF0aW9uIHRvIGNsZWFy
IGl0IGxhdGVyLgogICAgIGlmIChlbnN1cmVDb250ZW50V2l0aGluVmlld3BvcnRCb3VuZGFyeSgp
KQotICAgICAgICBtX3NjYWxlVXBkYXRlRGVmZXJyZXIuY2xlYXIoKTsKKyAgICAgICAgcmVzdW1l
Q29udGVudCgpOwogfQogCiB2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6aXRlbVNp
emVDaGFuZ2VkKCkKQEAgLTUyOSw4ICs1MzcsOSBAQCB2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZTo6aXRlbVNpemVDaGFuZ2VkKCkKICAgICBpZiAobV9zdXNwZW5kQ291bnQpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXIgZ3VhcmQodGhpcyk7Cisg
ICAgc3VzcGVuZENvbnRlbnQoKTsKICAgICBlbnN1cmVDb250ZW50V2l0aGluVmlld3BvcnRCb3Vu
ZGFyeSgpOworICAgIHJlc3VtZUNvbnRlbnQoKTsKIH0KIAogdm9pZCBRdFZpZXdwb3J0SW50ZXJh
Y3Rpb25FbmdpbmU6OnNjYWxlQ29udGVudChjb25zdCBRUG9pbnRGJiBjZW50ZXJJbkNTU0Nvb3Jk
aW5hdGVzLCBxcmVhbCBjc3NTY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaAppbmRleCBmZDlkODRiOTJj
MDllZmEwNTZjNDNjZTgxNzI0MDZjMjJhYTEyZDBkLi5jMGU0ZDBlMjI0YTVhYTc1ZmNjYWVkNDAy
MWM2ODBhMDQ5ODU0NzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oCkBAIC0yNSw2ICsyNSw3IEBACiAj
aW5jbHVkZSAiT3duUHRyLmgiCiAjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgogI2luY2x1ZGUg
PFFUb3VjaEV2ZW50PgorI2luY2x1ZGUgPFF0Q29yZS9RQmFzaWNUaW1lcj4KICNpbmNsdWRlIDxR
dENvcmUvUU9iamVjdD4KICNpbmNsdWRlIDxRdENvcmUvUVJlY3RGPgogI2luY2x1ZGUgPFF0Q29y
ZS9RVmFyaWFudD4KQEAgLTk5LDYgKzEwMCw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBDb25zdHJh
aW50cyYgY29uc3RyYWludHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0cmFpbnRzOyB9CiAgICAg
cXJlYWwgY3VycmVudENTU1NjYWxlKCk7CiAKK3Byb3RlY3RlZDoKKyAgICB2b2lkIHRpbWVyRXZl
bnQoUVRpbWVyRXZlbnQqIGV2KTsKKwogUV9TSUdOQUxTOgogICAgIHZvaWQgY29udGVudFN1c3Bl
bmRSZXF1ZXN0ZWQoKTsKICAgICB2b2lkIGNvbnRlbnRSZXN1bWVSZXF1ZXN0ZWQoKTsKQEAgLTEx
MCwxMiArMTE0LDE0IEBAIHByaXZhdGUgUV9TTE9UUzoKICAgICAvLyBSZXNwb25kIHRvIGNoYW5n
ZXMgb2YgY29udGVudCB0aGF0IGFyZSBub3QgZHJpdmVuIGJ5IHVzLCBsaWtlIHRoZSBwYWdlIHJl
c2l6aW5nIGl0c2VsZi4KICAgICB2b2lkIGl0ZW1TaXplQ2hhbmdlZCgpOwogCi0gICAgdm9pZCBz
Y3JvbGxTdGF0ZUNoYW5nZWQoKTsKKyAgICB2b2lkIHNjcm9sbFN0YXJ0ZWQoKTsKKyAgICB2b2lk
IHNjcm9sbEVuZGVkKCk7CiAgICAgdm9pZCBzY2FsZUFuaW1hdGlvblN0YXRlQ2hhbmdlZChRQWJz
dHJhY3RBbmltYXRpb246OlN0YXRlLCBRQWJzdHJhY3RBbmltYXRpb246OlN0YXRlKTsKICAgICB2
b2lkIHNjYWxlQW5pbWF0aW9uVmFsdWVDaGFuZ2VkKFFWYXJpYW50IHZhbHVlKSB7IHNldEl0ZW1S
ZWN0VmlzaWJsZSh2YWx1ZS50b1JlY3RGKCkpOyB9CiAKIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNs
YXNzIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXI7CisgICAgdm9pZCBzdXNwZW5kQ29udGVudCgpOwor
ICAgIHZvaWQgcmVzdW1lQ29udGVudCgpOwogCiAgICAgcXJlYWwgY3NzU2NhbGVGcm9tSXRlbShx
cmVhbCk7CiAgICAgcXJlYWwgaXRlbVNjYWxlRnJvbUNTUyhxcmVhbCk7CkBAIC0xMzgsOCArMTQ0
LDcgQEAgcHJpdmF0ZToKICAgICBDb25zdHJhaW50cyBtX2NvbnN0cmFpbnRzOwogCiAgICAgaW50
IG1fc3VzcGVuZENvdW50OwotICAgIE93blB0cjxWaWV3cG9ydFVwZGF0ZURlZmVycmVyPiBtX3Nj
YWxlVXBkYXRlRGVmZXJyZXI7Ci0gICAgT3duUHRyPFZpZXdwb3J0VXBkYXRlRGVmZXJyZXI+IG1f
c2Nyb2xsVXBkYXRlRGVmZXJyZXI7CisgICAgUUJhc2ljVGltZXIgbV9zY3JvbGxQYWludGVyVGlt
ZXI7CiAKICAgICBib29sIG1faGFkVXNlckludGVyYWN0aW9uOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126980</attachid>
            <date>2012-02-14 08:17:10 -0800</date>
            <delta_ts>2012-02-15 06:07:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78602-20120214131610.patch</filename>
            <type>text/plain</type>
            <size>12603</size>
            <attacher name="Hugo Parente Lima">hugo.lima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmRhNTZlYTdhYTJhZjdh
OWNiOTk2ZTlkNzUwMjdhNGMxZjk4YmE3MC4uZGUzOWYzODgxOWFmYzVmNDJiNTEyMWUwOGJlZGY2
YTU5NjhjOWVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTAyLTE0ICBIdWdv
IFBhcmVudGUgTGltYSAgPGh1Z28ucGxAZ21haWwuY29tPgorCisgICAgICAgIFtRdF0gUGFnZSBk
b2Vzbid0IGdldCByZXBhaW50ZWQgd2hpbGUgcGFubmluZyBpcyBpbiBwcm9ncmVzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MDIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXNwZW5kL3Jlc3VtZSB0
aGUgd2ViIHBhZ2UgZXZlcnkgNTBtcyB3aGlsZSBwYW5uaW5nIHRvIHRyaWdnZXIKKyAgICAgICAg
cmVwYWludHMuIFRoZSA1MG1zIGlzIGEgbWFnaWMgbnVtYmVyIHRoYXQgY2FuIGJlIHJlcGxhY2Vk
IGJ5IHNvbWUKKyAgICAgICAgaGV1cmlzdGljIGluIGFub3RoZXIgcGF0Y2guCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvcXQvUXRGbGlja1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFF0RmxpY2tQcm92
aWRlcjo6UXRGbGlja1Byb3ZpZGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRGbGlja1By
b3ZpZGVyLmg6CisgICAgICAgIChRdEZsaWNrUHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzdXNwZW5kQ29u
dGVudCk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6cmVz
dW1lQ29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2lu
ZTo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3
cG9ydEludGVyYWN0aW9uRW5naW5lOjpzZXRJdGVtUmVjdFZpc2libGUpOgorICAgICAgICAoV2Vi
S2l0OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjcm9sbFN0YXJ0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjcm9sbEVuZGVkKToKKyAg
ICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjp0aW1lckV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzY2FsZUFuaW1h
dGlvblN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZTo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25F
bmdpbmU6OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmU6OnBpbmNoR2VzdHVyZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViS2l0OjpR
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnBpbmNoR2VzdHVyZUVuZGVkKToKKyAgICAgICAg
KFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjppdGVtU2l6ZUNoYW5nZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaDoKKyAg
ICAgICAgKFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZSk6CisKIDIwMTItMDItMTQgIE5vJ2Ft
IFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdW1Rl
eG1hcF0gUmVmYWN0b3IgYmFja2luZy1zdG9yZSBjb2RlIGluIFRleHR1cmVNYXBwZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdEZsaWNrUHJvdmlkZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RmxpY2tQcm92aWRlci5jcHAKaW5kZXggMzc2
MGMwY2ZiMmU3Y2RiYjM5OTg3MTU1ZDQwMDU0ZjlhOTk5ZDJjMy4uNGQxNWYyYTE0ODE3NTcyZTQ1
NGNmY2FlNTQ0YzUzY2M0NjdkMDQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0RmxpY2tQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0RmxpY2tQcm92aWRlci5jcHAKQEAgLTEwNyw2ICsxMDcsOCBAQCBRdEZsaWNrUHJvdmlk
ZXI6OlF0RmxpY2tQcm92aWRlcihRUXVpY2tXZWJWaWV3KiB2aWV3SXRlbSwgUVF1aWNrV2ViUGFn
ZSogcGFnZUl0ZQogCiAgICAgLy8gUHJvcGFnYXRlIGZsaWNrYWJsZSBzaWduYWxzLgogICAgIGNv
bm5lY3QobV9mbGlja2FibGUsIFNJR05BTChtb3ZpbmdDaGFuZ2VkKCkpLCBTSUdOQUwobW92aW5n
Q2hhbmdlZCgpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOworICAgIGNvbm5lY3QobV9mbGlja2Fi
bGUsIFNJR05BTChtb3ZlbWVudFN0YXJ0ZWQoKSksIFNJR05BTChtb3ZpbmdTdGFydGVkKCkpLCBR
dDo6RGlyZWN0Q29ubmVjdGlvbik7CisgICAgY29ubmVjdChtX2ZsaWNrYWJsZSwgU0lHTkFMKG1v
dmVtZW50RW5kZWQoKSksIFNJR05BTChtb3ZpbmdFbmRlZCgpKSwgUXQ6OkRpcmVjdENvbm5lY3Rp
b24pOwogICAgIGNvbm5lY3QobV9mbGlja2FibGUsIFNJR05BTChmbGlja2luZ0NoYW5nZWQoKSks
IFNJR05BTChmbGlja2luZ0NoYW5nZWQoKSksIFF0OjpEaXJlY3RDb25uZWN0aW9uKTsKICAgICBj
b25uZWN0KG1fZmxpY2thYmxlLCBTSUdOQUwoZHJhZ2dpbmdDaGFuZ2VkKCkpLCBTSUdOQUwoZHJh
Z2dpbmdDaGFuZ2VkKCkpLCBRdDo6RGlyZWN0Q29ubmVjdGlvbik7CiAgICAgY29ubmVjdChtX2Zs
aWNrYWJsZSwgU0lHTkFMKGNvbnRlbnRXaWR0aENoYW5nZWQoKSksIFNJR05BTChjb250ZW50V2lk
dGhDaGFuZ2VkKCkpLCBRdDo6RGlyZWN0Q29ubmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRGbGlja1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRGbGlja1Byb3ZpZGVyLmgKaW5kZXggZjM4OGEwYjRiMDFhY2Q5ZTA3NTNi
ZTc3OTJjYWJjYjhmNjkyZTdjYi4uOTBlYTg4MTNhM2Q0MTNhMWM2NzM5ZDQyNzcxMDc4OGY0NTZl
MWVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RmxpY2tQcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdEZsaWNrUHJvdmlkZXIu
aApAQCAtNzMsNiArNzMsOCBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBjb250ZW50WENoYW5nZWQo
KTsKICAgICB2b2lkIGNvbnRlbnRZQ2hhbmdlZCgpOwogICAgIHZvaWQgbW92aW5nQ2hhbmdlZCgp
OworICAgIHZvaWQgbW92aW5nU3RhcnRlZCgpOworICAgIHZvaWQgbW92aW5nRW5kZWQoKTsKICAg
ICB2b2lkIGZsaWNraW5nQ2hhbmdlZCgpOwogICAgIHZvaWQgZHJhZ2dpbmdDaGFuZ2VkKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJh
Y3Rpb25FbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJ
bnRlcmFjdGlvbkVuZ2luZS5jcHAKaW5kZXggNzMxOWI3ZWIzM2JlMTIxNzc1ZDVjODY3NTIzNWQ5
YTY0ZmRmZWI3MS4uZjQ0MDE0MjdhMTA1ZGQ0MmMzMjdkMTA1ZjZkZWZjYjk0ODUyNDI5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJ
bnRlcmFjdGlvbkVuZ2luZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBzdGF0aWMgY29uc3QgaW50IGtTY2FsZUFuaW1hdGlvbkR1cmF0aW9uTWlsbGlzID0gMjUw
Oworc3RhdGljIGNvbnN0IGludCBwYW5uaW5nUmVwYWludEludGVydmFsID0gNTA7CiAKIC8vIFVQ
REFURSBERUZFUlJJTkcgKFNVU1BFTkQvUkVTVU1FKQogLy8gPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CkBAIC00Nyw3ICs0OCw3IEBAIHN0YXRpYyBjb25zdCBpbnQga1NjYWxlQW5p
bWF0aW9uRHVyYXRpb25NaWxsaXMgPSAyNTA7CiAvLyBleGVjdHV0aW9uLCBzdWIgcmVzb3VyY2Ug
bG9hZHMgZXRjLiBXZSBkbyB0aGlzIGJ5IGVtaXR0aW5nIHN1c3BlbmQgYW5kIHJlc3VtZQogLy8g
c2lnbmFscywgd2hpY2ggYXJlIHRoZW4gaGFuZGxlZCBieSB0aGUgdmlld3BvcnQgYW5kIHByb3Bh
Z2F0ZXMgdG8gdGhlIHJpZ2h0IHBsYWNlLgogLy8KLS8vIEZvciB0aGlzIHJlYXNvbiB0aGUgVmll
d3BvcnRVcGRhdGVEZWZlcnJlciBndWFyZCBtdXN0IGJlIHVzZWQgd2hlbiB3ZSBpbnRlcmFjdAor
Ly8gRm9yIHRoaXMgcmVhc29uIHN1c3BlbmRDb250ZW50L3Jlc3VtZUNvbnRlbnQgbWV0aG9kcyBt
dXN0IGJlIHVzZWQgd2hlbiB3ZSBpbnRlcmFjdAogLy8gb3IgYW5pbWF0ZSB0aGUgY29udGVudC4K
IC8vCiAvLyBJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCB3aGVuIHdlIHVwZGF0ZSBjb250ZW50IHBy
b3BlcnRpZXMsIHdlIG1pZ2h0IHJlY2VpdmUgbm90aWZ5CkBAIC01OSwzMSArNjAsMjUgQEAgc3Rh
dGljIGNvbnN0IGludCBrU2NhbGVBbmltYXRpb25EdXJhdGlvbk1pbGxpcyA9IDI1MDsKIC8vIElm
IHNvbWV0aGluZyBzaG91bGQgb25seSBiZSBleGVjdXRlZCBkdXJpbmcgdXBkYXRlIGRlZmVycmlu
ZywgaXQgaXMgcG9zc2libGUgdG8KIC8vIGNoZWNrIGZvciB0aGF0IHVzaW5nIEFTU0VSVChtX3N1
c3BlbmRDb3VudCkuCiAKLWNsYXNzIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXIgewotcHVibGljOgot
ICAgIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXIoUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKiBl
bmdpbmUpCi0gICAgICAgIDogZW5naW5lKGVuZ2luZSkKLSAgICB7Ci0gICAgICAgIGlmIChlbmdp
bmUtPm1fc3VzcGVuZENvdW50KyspCi0gICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgZW1p
dCBlbmdpbmUtPmNvbnRlbnRTdXNwZW5kUmVxdWVzdGVkKCk7Ci0gICAgfQordm9pZCBRdFZpZXdw
b3J0SW50ZXJhY3Rpb25FbmdpbmU6OnN1c3BlbmRDb250ZW50KCkKK3sKKyAgICBpZiAobV9zdXNw
ZW5kQ291bnQrKykKKyAgICAgICAgcmV0dXJuOwogCi0gICAgflZpZXdwb3J0VXBkYXRlRGVmZXJy
ZXIoKQotICAgIHsKLSAgICAgICAgaWYgKC0tKGVuZ2luZS0+bV9zdXNwZW5kQ291bnQpKQotICAg
ICAgICAgICAgcmV0dXJuOworICAgIGVtaXQgY29udGVudFN1c3BlbmRSZXF1ZXN0ZWQoKTsKK30K
IAotICAgICAgICBlbWl0IGVuZ2luZS0+Y29udGVudFJlc3VtZVJlcXVlc3RlZCgpOwordm9pZCBR
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnJlc3VtZUNvbnRlbnQoKQoreworICAgIGlmICgt
LShtX3N1c3BlbmRDb3VudCkpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBNYWtlIHN1
cmUgdGhhdCB0aWxlcyBhbGwgYXJvdW5kIHRoZSB2aWV3cG9ydCB3aWxsIGJlIHJlcXVlc3RlZC4K
LSAgICAgICAgZW1pdCBlbmdpbmUtPnZpZXdwb3J0VHJhamVjdG9yeVZlY3RvckNoYW5nZWQoUVBv
aW50RigpKTsKLSAgICB9CisgICAgZW1pdCBjb250ZW50UmVzdW1lUmVxdWVzdGVkKCk7CiAKLXBy
aXZhdGU6Ci0gICAgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKiBjb25zdCBlbmdpbmU7Ci19
OworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRpbGVzIGFsbCBhcm91bmQgdGhlIHZpZXdwb3J0IHdp
bGwgYmUgcmVxdWVzdGVkLgorICAgIGVtaXQgdmlld3BvcnRUcmFqZWN0b3J5VmVjdG9yQ2hhbmdl
ZChRUG9pbnRGKCkpOworfQogCiBpbmxpbmUgcXJlYWwgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5n
aW5lOjpjc3NTY2FsZUZyb21JdGVtKHFyZWFsIGl0ZW1TY2FsZSkKIHsKQEAgLTEyNSw3ICsxMjAs
OCBAQCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVu
Z2luZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydAogCiAgICAgY29ubmVjdChtX2NvbnRlbnQsIFNJ
R05BTCh3aWR0aENoYW5nZWQoKSksIFNMT1QoaXRlbVNpemVDaGFuZ2VkKCkpLCBRdDo6RGlyZWN0
Q29ubmVjdGlvbik7CiAgICAgY29ubmVjdChtX2NvbnRlbnQsIFNJR05BTChoZWlnaHRDaGFuZ2Vk
KCkpLCBTTE9UKGl0ZW1TaXplQ2hhbmdlZCgpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOwotICAg
IGNvbm5lY3QobV9mbGlja1Byb3ZpZGVyLCBTSUdOQUwobW92aW5nQ2hhbmdlZCgpKSwgU0xPVChz
Y3JvbGxTdGF0ZUNoYW5nZWQoKSksIFF0OjpEaXJlY3RDb25uZWN0aW9uKTsKKyAgICBjb25uZWN0
KG1fZmxpY2tQcm92aWRlciwgU0lHTkFMKG1vdmluZ1N0YXJ0ZWQoKSksIFNMT1Qoc2Nyb2xsU3Rh
cnRlZCgpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOworICAgIGNvbm5lY3QobV9mbGlja1Byb3Zp
ZGVyLCBTSUdOQUwobW92aW5nRW5kZWQoKSksIFNMT1Qoc2Nyb2xsRW5kZWQoKSksIFF0OjpEaXJl
Y3RDb25uZWN0aW9uKTsKIAogICAgIGNvbm5lY3QobV9zY2FsZUFuaW1hdGlvbiwgU0lHTkFMKHZh
bHVlQ2hhbmdlZChRVmFyaWFudCkpLAogICAgICAgICAgICAgU0xPVChzY2FsZUFuaW1hdGlvblZh
bHVlQ2hhbmdlZChRVmFyaWFudCkpLCBRdDo6RGlyZWN0Q29ubmVjdGlvbik7CkBAIC0xNTgsNyAr
MTU0LDcgQEAgdm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNldEl0ZW1SZWN0Vmlz
aWJsZShjb25zdCBRUmVjdEYmIGl0ZW1SZWN0KQogICAgIGlmIChpdGVtUmVjdC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXIgZ3VhcmQodGhp
cyk7CisgICAgc3VzcGVuZENvbnRlbnQoKTsKIAogICAgIHFyZWFsIGl0ZW1TY2FsZSA9IG1fdmll
d3BvcnQtPndpZHRoKCkgLyBpdGVtUmVjdC53aWR0aCgpOwogCkBAIC0xNjksNiArMTY1LDcgQEAg
dm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNldEl0ZW1SZWN0VmlzaWJsZShjb25z
dCBRUmVjdEYmIGl0ZW1SZWN0KQogICAgIFFQb2ludEYgbmV3UG9zaXRpb24obV9jb250ZW50LT5w
b3MoKSArIChpdGVtUmVjdC50b3BMZWZ0KCkgKiBpdGVtU2NhbGUpKTsKIAogICAgIG1fZmxpY2tQ
cm92aWRlci0+c2V0Q29udGVudFBvcyhuZXdQb3NpdGlvbik7CisgICAgcmVzdW1lQ29udGVudCgp
OwogfQogCiBib29sIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6YW5pbWF0ZUl0ZW1SZWN0
VmlzaWJsZShjb25zdCBRUmVjdEYmIGl0ZW1SZWN0KQpAQCAtMTg3LDIzICsxODQsMzQgQEAgYm9v
bCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OmFuaW1hdGVJdGVtUmVjdFZpc2libGUoY29u
c3QgUVJlY3RGJiBpdGVtUmVjdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBRdFZpZXdw
b3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjcm9sbFN0YXRlQ2hhbmdlZCgpCit2b2lkIFF0Vmlld3Bv
cnRJbnRlcmFjdGlvbkVuZ2luZTo6c2Nyb2xsU3RhcnRlZCgpCiB7Ci0gICAgaWYgKG1fZmxpY2tQ
cm92aWRlci0+aXNNb3ZpbmcoKSAmJiAhbV9zY3JvbGxVcGRhdGVEZWZlcnJlcikKLSAgICAgICAg
bV9zY3JvbGxVcGRhdGVEZWZlcnJlciA9IGFkb3B0UHRyKG5ldyBWaWV3cG9ydFVwZGF0ZURlZmVy
cmVyKHRoaXMpKTsKLSAgICBlbHNlCi0gICAgICAgIG1fc2Nyb2xsVXBkYXRlRGVmZXJyZXIuY2xl
YXIoKTsKKyAgICBzdXNwZW5kQ29udGVudCgpOworICAgIG1fc2Nyb2xsUGFpbnRlclRpbWVyLnN0
YXJ0KHBhbm5pbmdSZXBhaW50SW50ZXJ2YWwsIHRoaXMpOworfQorCit2b2lkIFF0Vmlld3BvcnRJ
bnRlcmFjdGlvbkVuZ2luZTo6c2Nyb2xsRW5kZWQoKQoreworICAgIG1fc2Nyb2xsUGFpbnRlclRp
bWVyLnN0b3AoKTsKKyAgICByZXN1bWVDb250ZW50KCk7Cit9CisKK3ZvaWQgUXRWaWV3cG9ydElu
dGVyYWN0aW9uRW5naW5lOjp0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBldikKK3sKKyAgICBpZiAo
ZXYtPnRpbWVySWQoKSA9PSBtX3Njcm9sbFBhaW50ZXJUaW1lci50aW1lcklkKCkpIHsKKyAgICAg
ICAgcmVzdW1lQ29udGVudCgpOworICAgICAgICBzdXNwZW5kQ29udGVudCgpOworICAgIH0KIH0K
IAogdm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjYWxlQW5pbWF0aW9uU3RhdGVD
aGFuZ2VkKFFBYnN0cmFjdEFuaW1hdGlvbjo6U3RhdGUgbmV3U3RhdGUsIFFBYnN0cmFjdEFuaW1h
dGlvbjo6U3RhdGUgLypvbGRTdGF0ZSovKQogewogICAgIHN3aXRjaCAobmV3U3RhdGUpIHsKICAg
ICBjYXNlIFFBYnN0cmFjdEFuaW1hdGlvbjo6UnVubmluZzoKLSAgICAgICAgaWYgKCFtX3NjYWxl
VXBkYXRlRGVmZXJyZXIpCi0gICAgICAgICAgICBtX3NjYWxlVXBkYXRlRGVmZXJyZXIgPSBhZG9w
dFB0cihuZXcgVmlld3BvcnRVcGRhdGVEZWZlcnJlcih0aGlzKSk7CisgICAgICAgIHN1c3BlbmRD
b250ZW50KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUUFic3RyYWN0QW5pbWF0aW9uOjpT
dG9wcGVkOgotICAgICAgICBtX3NjYWxlVXBkYXRlRGVmZXJyZXIuY2xlYXIoKTsKKyAgICAgICAg
cmVzdW1lQ29udGVudCgpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKQEAgLTM3NSw4ICszODMsNyBAQCB2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2lu
ZTo6cmVzZXQoKQogCiAgICAgbV9mbGlja1Byb3ZpZGVyLT5jYW5jZWxGbGljaygpOwogICAgIG1f
c2NhbGVBbmltYXRpb24tPnN0b3AoKTsKLSAgICBtX3NjYWxlVXBkYXRlRGVmZXJyZXIuY2xlYXIo
KTsKLSAgICBtX3Njcm9sbFVwZGF0ZURlZmVycmVyLmNsZWFyKCk7CisgICAgcmVzdW1lQ29udGVu
dCgpOwogfQogCiB2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6YXBwbHlDb25zdHJh
aW50cyhjb25zdCBDb25zdHJhaW50cyYgY29uc3RyYWludHMpCkBAIC0zODQsNyArMzkxLDcgQEAg
dm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OmFwcGx5Q29uc3RyYWludHMoY29uc3Qg
Q29uc3RyYWludHMmIGNvbnN0cmFpbnQKICAgICAvLyBXZSBhbHdheXMgaGF2ZSB0byBhcHBseSB0
aGUgY29uc3RyYWlucyBldmVuIGlmIHRoZXkgZGlkbid0IGNoYW5nZSwgYXMKICAgICAvLyB0aGUg
aW5pdGlhbCBzY2FsZSBtaWdodCBuZWVkIHRvIGJlIGFwcGxpZWQuCiAKLSAgICBWaWV3cG9ydFVw
ZGF0ZURlZmVycmVyIGd1YXJkKHRoaXMpOworICAgIHN1c3BlbmRDb250ZW50KCk7CiAKICAgICBt
X2NvbnN0cmFpbnRzID0gY29uc3RyYWludHM7CiAKQEAgLTM5Niw2ICs0MDMsNyBAQCB2b2lkIFF0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBDb25zdHJh
aW50cyYgY29uc3RyYWludAogICAgIC8vIElmIHRoZSB3ZWIgYXBwIHN1Y2Nlc3NpdmVseSBjaGFu
Z2VzIHRoZSB2aWV3cG9ydCBvbiBwdXJwb3NlCiAgICAgLy8gaXQgd2FudHMgdG8gYmUgaW4gY29u
dHJvbCBhbmQgd2Ugc2hvdWxkIGRpc2FibGUgYW5pbWF0aW9ucy4KICAgICBlbnN1cmVDb250ZW50
V2l0aGluVmlld3BvcnRCb3VuZGFyeSgvKiBpbW1lZGlhdGUgKi8gdHJ1ZSk7CisgICAgcmVzdW1l
Q29udGVudCgpOwogfQogCiBxcmVhbCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OmN1cnJl
bnRDU1NTY2FsZSgpCkBAIC00NzksNyArNDg3LDcgQEAgdm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rp
b25FbmdpbmU6OnBpbmNoR2VzdHVyZVN0YXJ0ZWQoY29uc3QgUVBvaW50RiYgcGluY2hDZW50ZXIK
IAogICAgIG1faGFkVXNlckludGVyYWN0aW9uID0gdHJ1ZTsKIAotICAgIG1fc2NhbGVVcGRhdGVE
ZWZlcnJlciA9IGFkb3B0UHRyKG5ldyBWaWV3cG9ydFVwZGF0ZURlZmVycmVyKHRoaXMpKTsKKyAg
ICBzdXNwZW5kQ29udGVudCgpOwogCiAgICAgbV9sYXN0UGluY2hDZW50ZXJJblZpZXdwb3J0Q29v
cmRpbmF0ZXMgPSBwaW5jaENlbnRlckluVmlld3BvcnRDb29yZGluYXRlczsKICAgICBtX3BpbmNo
U3RhcnRTY2FsZSA9IG1fY29udGVudC0+Y29udGVudHNTY2FsZSgpOwpAQCAtNTIwLDcgKzUyOCw3
IEBAIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpwaW5jaEdlc3R1cmVFbmRlZCgp
CiAgICAgbV9waW5jaFN0YXJ0U2NhbGUgPSAtMTsKICAgICAvLyBDbGVhciB0aGUgdXBkYXRlIGRl
ZmVycmVyIG5vdyBpZiB3ZSdyZSBpbiBvdXIgZmluYWwgcG9zaXRpb24gYW5kIHRoZXJlIHdvbid0
IGJlIGFueSBhbmltYXRpb24gdG8gY2xlYXIgaXQgbGF0ZXIuCiAgICAgaWYgKGVuc3VyZUNvbnRl
bnRXaXRoaW5WaWV3cG9ydEJvdW5kYXJ5KCkpCi0gICAgICAgIG1fc2NhbGVVcGRhdGVEZWZlcnJl
ci5jbGVhcigpOworICAgICAgICByZXN1bWVDb250ZW50KCk7CiB9CiAKIHZvaWQgUXRWaWV3cG9y
dEludGVyYWN0aW9uRW5naW5lOjppdGVtU2l6ZUNoYW5nZWQoKQpAQCAtNTI5LDggKzUzNyw5IEBA
IHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjppdGVtU2l6ZUNoYW5nZWQoKQogICAg
IGlmIChtX3N1c3BlbmRDb3VudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVmlld3BvcnRVcGRh
dGVEZWZlcnJlciBndWFyZCh0aGlzKTsKKyAgICBzdXNwZW5kQ29udGVudCgpOwogICAgIGVuc3Vy
ZUNvbnRlbnRXaXRoaW5WaWV3cG9ydEJvdW5kYXJ5KCk7CisgICAgcmVzdW1lQ29udGVudCgpOwog
fQogCiB2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6c2NhbGVDb250ZW50KGNvbnN0
IFFQb2ludEYmIGNlbnRlckluQ1NTQ29vcmRpbmF0ZXMsIHFyZWFsIGNzc1NjYWxlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVu
Z2luZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZS5oCmluZGV4IGZkOWQ4NGI5MmMwOWVmYTA1NmM0M2NlODE3MjQwNmMyMmFhMTJkMGQu
LjRjZmY2ZjRjZTRhNzczNzJhMTMyNDEzZmU4Y2VhM2JiYWI4ZmI1NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5n
aW5lLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJPd25QdHIuaCIKICNpbmNsdWRlICJx
d2Via2l0Z2xvYmFsLmgiCiAjaW5jbHVkZSA8UVRvdWNoRXZlbnQ+CisjaW5jbHVkZSA8UXRDb3Jl
L1FCYXNpY1RpbWVyPgogI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgogI2luY2x1ZGUgPFF0Q29y
ZS9RUmVjdEY+CiAjaW5jbHVkZSA8UXRDb3JlL1FWYXJpYW50PgpAQCAtOTksNiArMTAwLDkgQEAg
cHVibGljOgogICAgIGNvbnN0IENvbnN0cmFpbnRzJiBjb25zdHJhaW50cygpIGNvbnN0IHsgcmV0
dXJuIG1fY29uc3RyYWludHM7IH0KICAgICBxcmVhbCBjdXJyZW50Q1NTU2NhbGUoKTsKIAorcHJv
dGVjdGVkOgorICAgIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCopOworCiBRX1NJR05BTFM6
CiAgICAgdm9pZCBjb250ZW50U3VzcGVuZFJlcXVlc3RlZCgpOwogICAgIHZvaWQgY29udGVudFJl
c3VtZVJlcXVlc3RlZCgpOwpAQCAtMTEwLDEyICsxMTQsMTQgQEAgcHJpdmF0ZSBRX1NMT1RTOgog
ICAgIC8vIFJlc3BvbmQgdG8gY2hhbmdlcyBvZiBjb250ZW50IHRoYXQgYXJlIG5vdCBkcml2ZW4g
YnkgdXMsIGxpa2UgdGhlIHBhZ2UgcmVzaXppbmcgaXRzZWxmLgogICAgIHZvaWQgaXRlbVNpemVD
aGFuZ2VkKCk7CiAKLSAgICB2b2lkIHNjcm9sbFN0YXRlQ2hhbmdlZCgpOworICAgIHZvaWQgc2Ny
b2xsU3RhcnRlZCgpOworICAgIHZvaWQgc2Nyb2xsRW5kZWQoKTsKICAgICB2b2lkIHNjYWxlQW5p
bWF0aW9uU3RhdGVDaGFuZ2VkKFFBYnN0cmFjdEFuaW1hdGlvbjo6U3RhdGUsIFFBYnN0cmFjdEFu
aW1hdGlvbjo6U3RhdGUpOwogICAgIHZvaWQgc2NhbGVBbmltYXRpb25WYWx1ZUNoYW5nZWQoUVZh
cmlhbnQgdmFsdWUpIHsgc2V0SXRlbVJlY3RWaXNpYmxlKHZhbHVlLnRvUmVjdEYoKSk7IH0KIAog
cHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgVmlld3BvcnRVcGRhdGVEZWZlcnJlcjsKKyAgICB2
b2lkIHN1c3BlbmRDb250ZW50KCk7CisgICAgdm9pZCByZXN1bWVDb250ZW50KCk7CiAKICAgICBx
cmVhbCBjc3NTY2FsZUZyb21JdGVtKHFyZWFsKTsKICAgICBxcmVhbCBpdGVtU2NhbGVGcm9tQ1NT
KHFyZWFsKTsKQEAgLTEzOCw4ICsxNDQsNyBAQCBwcml2YXRlOgogICAgIENvbnN0cmFpbnRzIG1f
Y29uc3RyYWludHM7CiAKICAgICBpbnQgbV9zdXNwZW5kQ291bnQ7Ci0gICAgT3duUHRyPFZpZXdw
b3J0VXBkYXRlRGVmZXJyZXI+IG1fc2NhbGVVcGRhdGVEZWZlcnJlcjsKLSAgICBPd25QdHI8Vmll
d3BvcnRVcGRhdGVEZWZlcnJlcj4gbV9zY3JvbGxVcGRhdGVEZWZlcnJlcjsKKyAgICBRQmFzaWNU
aW1lciBtX3Njcm9sbFBhaW50ZXJUaW1lcjsKIAogICAgIGJvb2wgbV9oYWRVc2VySW50ZXJhY3Rp
b247CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127171</attachid>
            <date>2012-02-15 06:08:08 -0800</date>
            <delta_ts>2012-02-23 05:50:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78602-20120215110708.patch</filename>
            <type>text/plain</type>
            <size>12552</size>
            <attacher name="Hugo Parente Lima">hugo.lima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3ODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjJlN2VhN2UxNGZjMWQ1
ZmE1NDNmMTAzMGVlM2RiMzU4ODE3YWZkYi4uZTM5NTc1ZTE1MGFhYzA1YThhZDllYmQ1MzFlYzM1
N2Y2NTIyNzVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTE0ICBIdWdv
IFBhcmVudGUgTGltYSAgPGh1Z28ucGxAZ21haWwuY29tPgorCisgICAgICAgIFtRdF0gUGFnZSBk
b2Vzbid0IGdldCByZXBhaW50ZWQgd2hpbGUgcGFubmluZyBpcyBpbiBwcm9ncmVzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MDIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXF1ZXN0IGEgcmVwYWlu
dCBldmVyeSA1MG1zIHdoaWxlIHRoZSBwYW5uaW5nIGlzIGluIHByb2dyZXNzIHRvIGF2b2lkCisg
ICAgICAgIHZpc2libGUgYmxhbmsgYXJlYXMgd2hpbGUgcGFubmluZy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9xdC9RdEZsaWNrUHJvdmlkZXIuY3BwOgorICAgICAgICAoUXRGbGlja1Byb3ZpZGVy
OjpRdEZsaWNrUHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdEZsaWNrUHJvdmlk
ZXIuaDoKKyAgICAgICAgKFF0RmxpY2tQcm92aWRlcik6CisgICAgICAgICogVUlQcm9jZXNzL3F0
L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnN1c3BlbmRDb250ZW50
KToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpyZXN1bWVD
b250ZW50KToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpR
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUpOgorICAgICAgICAoV2ViS2l0OjpRdFZpZXdwb3J0
SW50ZXJhY3Rpb25FbmdpbmU6OnNldEl0ZW1SZWN0VmlzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6
OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6c2Nyb2xsU3RhcnRlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6c2Nyb2xsRW5kZWQpOgorICAgICAg
ICAoV2ViS2l0OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnRpbWVyRXZlbnQpOgorICAg
ICAgICAoV2ViS2l0OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjYWxlQW5pbWF0aW9u
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5n
aW5lOjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2lu
ZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFj
dGlvbkVuZ2luZTo6cGluY2hHZXN0dXJlU3RhcnRlZCk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmll
d3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6cGluY2hHZXN0dXJlRW5kZWQpOgorICAgICAgICAoV2Vi
S2l0OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6Oml0ZW1TaXplQ2hhbmdlZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oOgorICAgICAg
ICAoUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKToKKwogMjAxMi0wMi0xNSAgUm9sYW5kIFN0
ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICA8c3R5bGUgc2Nv
cGVkPjogQWxsb3cgPHN0eWxlIHNjb3BlZD4gYXMgYSBkaXJlY3QgY2hpbGQgb2YgYSBTaGFkb3dS
b290CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRGbGlja1Byb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdEZsaWNrUHJvdmlkZXIuY3Bw
CmluZGV4IDM3NjBjMGNmYjJlN2NkYmIzOTk4NzE1NWQ0MDA1NGY5YTk5OWQyYzMuLjRkMTVmMmEx
NDgxNzU3MmU0NTRjZmNhZTU0NGM1M2NjNDY3ZDA0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdEZsaWNrUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdEZsaWNrUHJvdmlkZXIuY3BwCkBAIC0xMDcsNiArMTA3LDggQEAgUXRG
bGlja1Byb3ZpZGVyOjpRdEZsaWNrUHJvdmlkZXIoUVF1aWNrV2ViVmlldyogdmlld0l0ZW0sIFFR
dWlja1dlYlBhZ2UqIHBhZ2VJdGUKIAogICAgIC8vIFByb3BhZ2F0ZSBmbGlja2FibGUgc2lnbmFs
cy4KICAgICBjb25uZWN0KG1fZmxpY2thYmxlLCBTSUdOQUwobW92aW5nQ2hhbmdlZCgpKSwgU0lH
TkFMKG1vdmluZ0NoYW5nZWQoKSksIFF0OjpEaXJlY3RDb25uZWN0aW9uKTsKKyAgICBjb25uZWN0
KG1fZmxpY2thYmxlLCBTSUdOQUwobW92ZW1lbnRTdGFydGVkKCkpLCBTSUdOQUwobW92aW5nU3Rh
cnRlZCgpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOworICAgIGNvbm5lY3QobV9mbGlja2FibGUs
IFNJR05BTChtb3ZlbWVudEVuZGVkKCkpLCBTSUdOQUwobW92aW5nRW5kZWQoKSksIFF0OjpEaXJl
Y3RDb25uZWN0aW9uKTsKICAgICBjb25uZWN0KG1fZmxpY2thYmxlLCBTSUdOQUwoZmxpY2tpbmdD
aGFuZ2VkKCkpLCBTSUdOQUwoZmxpY2tpbmdDaGFuZ2VkKCkpLCBRdDo6RGlyZWN0Q29ubmVjdGlv
bik7CiAgICAgY29ubmVjdChtX2ZsaWNrYWJsZSwgU0lHTkFMKGRyYWdnaW5nQ2hhbmdlZCgpKSwg
U0lHTkFMKGRyYWdnaW5nQ2hhbmdlZCgpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOwogICAgIGNv
bm5lY3QobV9mbGlja2FibGUsIFNJR05BTChjb250ZW50V2lkdGhDaGFuZ2VkKCkpLCBTSUdOQUwo
Y29udGVudFdpZHRoQ2hhbmdlZCgpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RmxpY2tQcm92aWRlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RmxpY2tQcm92aWRlci5oCmluZGV4IGYzODhhMGI0YjAx
YWNkOWUwNzUzYmU3NzkyY2FiY2I4ZjY5MmU3Y2IuLjkwZWE4ODEzYTNkNDEzYTFjNjczOWQ0Mjc3
MTA3ODhmNDU2ZTFlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dEZsaWNrUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRGbGlj
a1Byb3ZpZGVyLmgKQEAgLTczLDYgKzczLDggQEAgUV9TSUdOQUxTOgogICAgIHZvaWQgY29udGVu
dFhDaGFuZ2VkKCk7CiAgICAgdm9pZCBjb250ZW50WUNoYW5nZWQoKTsKICAgICB2b2lkIG1vdmlu
Z0NoYW5nZWQoKTsKKyAgICB2b2lkIG1vdmluZ1N0YXJ0ZWQoKTsKKyAgICB2b2lkIG1vdmluZ0Vu
ZGVkKCk7CiAgICAgdm9pZCBmbGlja2luZ0NoYW5nZWQoKTsKICAgICB2b2lkIGRyYWdnaW5nQ2hh
bmdlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3
cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCmluZGV4IDczMTliN2ViMzNiZTEyMTc3NWQ1
Yzg2NzUyMzVkOWE2NGZkZmViNzEuLmVkZmQ5NzAzMGRiMTBkM2QxMTI4MGE1OTQzZTk1ODNmNzJj
MDg3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0
SW50ZXJhY3Rpb25FbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCkBAIC0zNCw2ICszNCw3IEBACiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IGludCBrU2NhbGVBbmltYXRpb25EdXJhdGlvbk1p
bGxpcyA9IDI1MDsKK3N0YXRpYyBjb25zdCBpbnQgcGFubmluZ1JlcGFpbnRJbnRlcnZhbCA9IDUw
OwogCiAvLyBVUERBVEUgREVGRVJSSU5HIChTVVNQRU5EL1JFU1VNRSkKIC8vID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpAQCAtNDcsNyArNDgsNyBAQCBzdGF0aWMgY29uc3QgaW50
IGtTY2FsZUFuaW1hdGlvbkR1cmF0aW9uTWlsbGlzID0gMjUwOwogLy8gZXhlY3R1dGlvbiwgc3Vi
IHJlc291cmNlIGxvYWRzIGV0Yy4gV2UgZG8gdGhpcyBieSBlbWl0dGluZyBzdXNwZW5kIGFuZCBy
ZXN1bWUKIC8vIHNpZ25hbHMsIHdoaWNoIGFyZSB0aGVuIGhhbmRsZWQgYnkgdGhlIHZpZXdwb3J0
IGFuZCBwcm9wYWdhdGVzIHRvIHRoZSByaWdodCBwbGFjZS4KIC8vCi0vLyBGb3IgdGhpcyByZWFz
b24gdGhlIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXIgZ3VhcmQgbXVzdCBiZSB1c2VkIHdoZW4gd2Ug
aW50ZXJhY3QKKy8vIEZvciB0aGlzIHJlYXNvbiBzdXNwZW5kQ29udGVudC9yZXN1bWVDb250ZW50
IG1ldGhvZHMgbXVzdCBiZSB1c2VkIHdoZW4gd2UgaW50ZXJhY3QKIC8vIG9yIGFuaW1hdGUgdGhl
IGNvbnRlbnQuCiAvLwogLy8gSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgd2hlbiB3ZSB1cGRhdGUg
Y29udGVudCBwcm9wZXJ0aWVzLCB3ZSBtaWdodCByZWNlaXZlIG5vdGlmeQpAQCAtNTksMzEgKzYw
LDI1IEBAIHN0YXRpYyBjb25zdCBpbnQga1NjYWxlQW5pbWF0aW9uRHVyYXRpb25NaWxsaXMgPSAy
NTA7CiAvLyBJZiBzb21ldGhpbmcgc2hvdWxkIG9ubHkgYmUgZXhlY3V0ZWQgZHVyaW5nIHVwZGF0
ZSBkZWZlcnJpbmcsIGl0IGlzIHBvc3NpYmxlIHRvCiAvLyBjaGVjayBmb3IgdGhhdCB1c2luZyBB
U1NFUlQobV9zdXNwZW5kQ291bnQpLgogCi1jbGFzcyBWaWV3cG9ydFVwZGF0ZURlZmVycmVyIHsK
LXB1YmxpYzoKLSAgICBWaWV3cG9ydFVwZGF0ZURlZmVycmVyKFF0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZSogZW5naW5lKQotICAgICAgICA6IGVuZ2luZShlbmdpbmUpCi0gICAgewotICAgICAg
ICBpZiAoZW5naW5lLT5tX3N1c3BlbmRDb3VudCsrKQotICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIGVtaXQgZW5naW5lLT5jb250ZW50U3VzcGVuZFJlcXVlc3RlZCgpOwotICAgIH0KK3Zv
aWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzdXNwZW5kQ29udGVudCgpCit7CisgICAg
aWYgKG1fc3VzcGVuZENvdW50KyspCisgICAgICAgIHJldHVybjsKIAotICAgIH5WaWV3cG9ydFVw
ZGF0ZURlZmVycmVyKCkKLSAgICB7Ci0gICAgICAgIGlmICgtLShlbmdpbmUtPm1fc3VzcGVuZENv
dW50KSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICBlbWl0IGNvbnRlbnRTdXNwZW5kUmVxdWVz
dGVkKCk7Cit9CiAKLSAgICAgICAgZW1pdCBlbmdpbmUtPmNvbnRlbnRSZXN1bWVSZXF1ZXN0ZWQo
KTsKK3ZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpyZXN1bWVDb250ZW50KCkKK3sK
KyAgICBpZiAoLS0obV9zdXNwZW5kQ291bnQpKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
Ly8gTWFrZSBzdXJlIHRoYXQgdGlsZXMgYWxsIGFyb3VuZCB0aGUgdmlld3BvcnQgd2lsbCBiZSBy
ZXF1ZXN0ZWQuCi0gICAgICAgIGVtaXQgZW5naW5lLT52aWV3cG9ydFRyYWplY3RvcnlWZWN0b3JD
aGFuZ2VkKFFQb2ludEYoKSk7Ci0gICAgfQorICAgIGVtaXQgY29udGVudFJlc3VtZVJlcXVlc3Rl
ZCgpOwogCi1wcml2YXRlOgotICAgIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZSogY29uc3Qg
ZW5naW5lOwotfTsKKyAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aWxlcyBhbGwgYXJvdW5kIHRoZSB2
aWV3cG9ydCB3aWxsIGJlIHJlcXVlc3RlZC4KKyAgICBlbWl0IHZpZXdwb3J0VHJhamVjdG9yeVZl
Y3RvckNoYW5nZWQoUVBvaW50RigpKTsKK30KIAogaW5saW5lIHFyZWFsIFF0Vmlld3BvcnRJbnRl
cmFjdGlvbkVuZ2luZTo6Y3NzU2NhbGVGcm9tSXRlbShxcmVhbCBpdGVtU2NhbGUpCiB7CkBAIC0x
MjUsNyArMTIwLDggQEAgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmUoUVF1aWNrV2ViVmlldyogdmlld3BvcnQKIAogICAgIGNvbm5lY3QobV9j
b250ZW50LCBTSUdOQUwod2lkdGhDaGFuZ2VkKCkpLCBTTE9UKGl0ZW1TaXplQ2hhbmdlZCgpKSwg
UXQ6OkRpcmVjdENvbm5lY3Rpb24pOwogICAgIGNvbm5lY3QobV9jb250ZW50LCBTSUdOQUwoaGVp
Z2h0Q2hhbmdlZCgpKSwgU0xPVChpdGVtU2l6ZUNoYW5nZWQoKSksIFF0OjpEaXJlY3RDb25uZWN0
aW9uKTsKLSAgICBjb25uZWN0KG1fZmxpY2tQcm92aWRlciwgU0lHTkFMKG1vdmluZ0NoYW5nZWQo
KSksIFNMT1Qoc2Nyb2xsU3RhdGVDaGFuZ2VkKCkpLCBRdDo6RGlyZWN0Q29ubmVjdGlvbik7Cisg
ICAgY29ubmVjdChtX2ZsaWNrUHJvdmlkZXIsIFNJR05BTChtb3ZpbmdTdGFydGVkKCkpLCBTTE9U
KHNjcm9sbFN0YXJ0ZWQoKSksIFF0OjpEaXJlY3RDb25uZWN0aW9uKTsKKyAgICBjb25uZWN0KG1f
ZmxpY2tQcm92aWRlciwgU0lHTkFMKG1vdmluZ0VuZGVkKCkpLCBTTE9UKHNjcm9sbEVuZGVkKCkp
LCBRdDo6RGlyZWN0Q29ubmVjdGlvbik7CiAKICAgICBjb25uZWN0KG1fc2NhbGVBbmltYXRpb24s
IFNJR05BTCh2YWx1ZUNoYW5nZWQoUVZhcmlhbnQpKSwKICAgICAgICAgICAgIFNMT1Qoc2NhbGVB
bmltYXRpb25WYWx1ZUNoYW5nZWQoUVZhcmlhbnQpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOwpA
QCAtMTU4LDcgKzE1NCw3IEBAIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzZXRJ
dGVtUmVjdFZpc2libGUoY29uc3QgUVJlY3RGJiBpdGVtUmVjdCkKICAgICBpZiAoaXRlbVJlY3Qu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBWaWV3cG9ydFVwZGF0ZURlZmVycmVy
IGd1YXJkKHRoaXMpOworICAgIHN1c3BlbmRDb250ZW50KCk7CiAKICAgICBxcmVhbCBpdGVtU2Nh
bGUgPSBtX3ZpZXdwb3J0LT53aWR0aCgpIC8gaXRlbVJlY3Qud2lkdGgoKTsKIApAQCAtMTY5LDYg
KzE2NSw3IEBAIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzZXRJdGVtUmVjdFZp
c2libGUoY29uc3QgUVJlY3RGJiBpdGVtUmVjdCkKICAgICBRUG9pbnRGIG5ld1Bvc2l0aW9uKG1f
Y29udGVudC0+cG9zKCkgKyAoaXRlbVJlY3QudG9wTGVmdCgpICogaXRlbVNjYWxlKSk7CiAKICAg
ICBtX2ZsaWNrUHJvdmlkZXItPnNldENvbnRlbnRQb3MobmV3UG9zaXRpb24pOworICAgIHJlc3Vt
ZUNvbnRlbnQoKTsKIH0KIAogYm9vbCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OmFuaW1h
dGVJdGVtUmVjdFZpc2libGUoY29uc3QgUVJlY3RGJiBpdGVtUmVjdCkKQEAgLTE4NywyMyArMTg0
LDMyIEBAIGJvb2wgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjphbmltYXRlSXRlbVJlY3RW
aXNpYmxlKGNvbnN0IFFSZWN0RiYgaXRlbVJlY3QpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzY3JvbGxTdGF0ZUNoYW5nZWQoKQordm9p
ZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjcm9sbFN0YXJ0ZWQoKQogewotICAgIGlm
IChtX2ZsaWNrUHJvdmlkZXItPmlzTW92aW5nKCkgJiYgIW1fc2Nyb2xsVXBkYXRlRGVmZXJyZXIp
Ci0gICAgICAgIG1fc2Nyb2xsVXBkYXRlRGVmZXJyZXIgPSBhZG9wdFB0cihuZXcgVmlld3BvcnRV
cGRhdGVEZWZlcnJlcih0aGlzKSk7Ci0gICAgZWxzZQotICAgICAgICBtX3Njcm9sbFVwZGF0ZURl
ZmVycmVyLmNsZWFyKCk7CisgICAgc3VzcGVuZENvbnRlbnQoKTsKKyAgICBtX3Njcm9sbFBhaW50
ZXJUaW1lci5zdGFydChwYW5uaW5nUmVwYWludEludGVydmFsLCB0aGlzKTsKK30KKwordm9pZCBR
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjcm9sbEVuZGVkKCkKK3sKKyAgICBtX3Njcm9s
bFBhaW50ZXJUaW1lci5zdG9wKCk7CisgICAgcmVzdW1lQ29udGVudCgpOworfQorCit2b2lkIFF0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6dGltZXJFdmVudChRVGltZXJFdmVudCogZXYpCit7
CisgICAgaWYgKGV2LT50aW1lcklkKCkgPT0gbV9zY3JvbGxQYWludGVyVGltZXIudGltZXJJZCgp
KQorICAgICAgICBlbWl0IHZpZXdwb3J0VHJhamVjdG9yeVZlY3RvckNoYW5nZWQoUVBvaW50Rigp
KTsKIH0KIAogdm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnNjYWxlQW5pbWF0aW9u
U3RhdGVDaGFuZ2VkKFFBYnN0cmFjdEFuaW1hdGlvbjo6U3RhdGUgbmV3U3RhdGUsIFFBYnN0cmFj
dEFuaW1hdGlvbjo6U3RhdGUgLypvbGRTdGF0ZSovKQogewogICAgIHN3aXRjaCAobmV3U3RhdGUp
IHsKICAgICBjYXNlIFFBYnN0cmFjdEFuaW1hdGlvbjo6UnVubmluZzoKLSAgICAgICAgaWYgKCFt
X3NjYWxlVXBkYXRlRGVmZXJyZXIpCi0gICAgICAgICAgICBtX3NjYWxlVXBkYXRlRGVmZXJyZXIg
PSBhZG9wdFB0cihuZXcgVmlld3BvcnRVcGRhdGVEZWZlcnJlcih0aGlzKSk7CisgICAgICAgIHN1
c3BlbmRDb250ZW50KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUUFic3RyYWN0QW5pbWF0
aW9uOjpTdG9wcGVkOgotICAgICAgICBtX3NjYWxlVXBkYXRlRGVmZXJyZXIuY2xlYXIoKTsKKyAg
ICAgICAgcmVzdW1lQ29udGVudCgpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAg
ICAgICBicmVhazsKQEAgLTM3NSw4ICszODEsNyBAQCB2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZTo6cmVzZXQoKQogCiAgICAgbV9mbGlja1Byb3ZpZGVyLT5jYW5jZWxGbGljaygpOwog
ICAgIG1fc2NhbGVBbmltYXRpb24tPnN0b3AoKTsKLSAgICBtX3NjYWxlVXBkYXRlRGVmZXJyZXIu
Y2xlYXIoKTsKLSAgICBtX3Njcm9sbFVwZGF0ZURlZmVycmVyLmNsZWFyKCk7CisgICAgcmVzdW1l
Q29udGVudCgpOwogfQogCiB2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6YXBwbHlD
b25zdHJhaW50cyhjb25zdCBDb25zdHJhaW50cyYgY29uc3RyYWludHMpCkBAIC0zODQsNyArMzg5
LDcgQEAgdm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OmFwcGx5Q29uc3RyYWludHMo
Y29uc3QgQ29uc3RyYWludHMmIGNvbnN0cmFpbnQKICAgICAvLyBXZSBhbHdheXMgaGF2ZSB0byBh
cHBseSB0aGUgY29uc3RyYWlucyBldmVuIGlmIHRoZXkgZGlkbid0IGNoYW5nZSwgYXMKICAgICAv
LyB0aGUgaW5pdGlhbCBzY2FsZSBtaWdodCBuZWVkIHRvIGJlIGFwcGxpZWQuCiAKLSAgICBWaWV3
cG9ydFVwZGF0ZURlZmVycmVyIGd1YXJkKHRoaXMpOworICAgIHN1c3BlbmRDb250ZW50KCk7CiAK
ICAgICBtX2NvbnN0cmFpbnRzID0gY29uc3RyYWludHM7CiAKQEAgLTM5Niw2ICs0MDEsNyBAQCB2
b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBD
b25zdHJhaW50cyYgY29uc3RyYWludAogICAgIC8vIElmIHRoZSB3ZWIgYXBwIHN1Y2Nlc3NpdmVs
eSBjaGFuZ2VzIHRoZSB2aWV3cG9ydCBvbiBwdXJwb3NlCiAgICAgLy8gaXQgd2FudHMgdG8gYmUg
aW4gY29udHJvbCBhbmQgd2Ugc2hvdWxkIGRpc2FibGUgYW5pbWF0aW9ucy4KICAgICBlbnN1cmVD
b250ZW50V2l0aGluVmlld3BvcnRCb3VuZGFyeSgvKiBpbW1lZGlhdGUgKi8gdHJ1ZSk7CisgICAg
cmVzdW1lQ29udGVudCgpOwogfQogCiBxcmVhbCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6
OmN1cnJlbnRDU1NTY2FsZSgpCkBAIC00NzksNyArNDg1LDcgQEAgdm9pZCBRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmU6OnBpbmNoR2VzdHVyZVN0YXJ0ZWQoY29uc3QgUVBvaW50RiYgcGluY2hD
ZW50ZXIKIAogICAgIG1faGFkVXNlckludGVyYWN0aW9uID0gdHJ1ZTsKIAotICAgIG1fc2NhbGVV
cGRhdGVEZWZlcnJlciA9IGFkb3B0UHRyKG5ldyBWaWV3cG9ydFVwZGF0ZURlZmVycmVyKHRoaXMp
KTsKKyAgICBzdXNwZW5kQ29udGVudCgpOwogCiAgICAgbV9sYXN0UGluY2hDZW50ZXJJblZpZXdw
b3J0Q29vcmRpbmF0ZXMgPSBwaW5jaENlbnRlckluVmlld3BvcnRDb29yZGluYXRlczsKICAgICBt
X3BpbmNoU3RhcnRTY2FsZSA9IG1fY29udGVudC0+Y29udGVudHNTY2FsZSgpOwpAQCAtNTIwLDcg
KzUyNiw3IEBAIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpwaW5jaEdlc3R1cmVF
bmRlZCgpCiAgICAgbV9waW5jaFN0YXJ0U2NhbGUgPSAtMTsKICAgICAvLyBDbGVhciB0aGUgdXBk
YXRlIGRlZmVycmVyIG5vdyBpZiB3ZSdyZSBpbiBvdXIgZmluYWwgcG9zaXRpb24gYW5kIHRoZXJl
IHdvbid0IGJlIGFueSBhbmltYXRpb24gdG8gY2xlYXIgaXQgbGF0ZXIuCiAgICAgaWYgKGVuc3Vy
ZUNvbnRlbnRXaXRoaW5WaWV3cG9ydEJvdW5kYXJ5KCkpCi0gICAgICAgIG1fc2NhbGVVcGRhdGVE
ZWZlcnJlci5jbGVhcigpOworICAgICAgICByZXN1bWVDb250ZW50KCk7CiB9CiAKIHZvaWQgUXRW
aWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjppdGVtU2l6ZUNoYW5nZWQoKQpAQCAtNTI5LDggKzUz
NSw5IEBAIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjppdGVtU2l6ZUNoYW5nZWQo
KQogICAgIGlmIChtX3N1c3BlbmRDb3VudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVmlld3Bv
cnRVcGRhdGVEZWZlcnJlciBndWFyZCh0aGlzKTsKKyAgICBzdXNwZW5kQ29udGVudCgpOwogICAg
IGVuc3VyZUNvbnRlbnRXaXRoaW5WaWV3cG9ydEJvdW5kYXJ5KCk7CisgICAgcmVzdW1lQ29udGVu
dCgpOwogfQogCiB2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6c2NhbGVDb250ZW50
KGNvbnN0IFFQb2ludEYmIGNlbnRlckluQ1NTQ29vcmRpbmF0ZXMsIHFyZWFsIGNzc1NjYWxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFj
dGlvbkVuZ2luZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRl
cmFjdGlvbkVuZ2luZS5oCmluZGV4IGZkOWQ4NGI5MmMwOWVmYTA1NmM0M2NlODE3MjQwNmMyMmFh
MTJkMGQuLjRjZmY2ZjRjZTRhNzczNzJhMTMyNDEzZmU4Y2VhM2JiYWI4ZmI1NmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25Fbmdp
bmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0
aW9uRW5naW5lLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJPd25QdHIuaCIKICNpbmNs
dWRlICJxd2Via2l0Z2xvYmFsLmgiCiAjaW5jbHVkZSA8UVRvdWNoRXZlbnQ+CisjaW5jbHVkZSA8
UXRDb3JlL1FCYXNpY1RpbWVyPgogI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgogI2luY2x1ZGUg
PFF0Q29yZS9RUmVjdEY+CiAjaW5jbHVkZSA8UXRDb3JlL1FWYXJpYW50PgpAQCAtOTksNiArMTAw
LDkgQEAgcHVibGljOgogICAgIGNvbnN0IENvbnN0cmFpbnRzJiBjb25zdHJhaW50cygpIGNvbnN0
IHsgcmV0dXJuIG1fY29uc3RyYWludHM7IH0KICAgICBxcmVhbCBjdXJyZW50Q1NTU2NhbGUoKTsK
IAorcHJvdGVjdGVkOgorICAgIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCopOworCiBRX1NJ
R05BTFM6CiAgICAgdm9pZCBjb250ZW50U3VzcGVuZFJlcXVlc3RlZCgpOwogICAgIHZvaWQgY29u
dGVudFJlc3VtZVJlcXVlc3RlZCgpOwpAQCAtMTEwLDEyICsxMTQsMTQgQEAgcHJpdmF0ZSBRX1NM
T1RTOgogICAgIC8vIFJlc3BvbmQgdG8gY2hhbmdlcyBvZiBjb250ZW50IHRoYXQgYXJlIG5vdCBk
cml2ZW4gYnkgdXMsIGxpa2UgdGhlIHBhZ2UgcmVzaXppbmcgaXRzZWxmLgogICAgIHZvaWQgaXRl
bVNpemVDaGFuZ2VkKCk7CiAKLSAgICB2b2lkIHNjcm9sbFN0YXRlQ2hhbmdlZCgpOworICAgIHZv
aWQgc2Nyb2xsU3RhcnRlZCgpOworICAgIHZvaWQgc2Nyb2xsRW5kZWQoKTsKICAgICB2b2lkIHNj
YWxlQW5pbWF0aW9uU3RhdGVDaGFuZ2VkKFFBYnN0cmFjdEFuaW1hdGlvbjo6U3RhdGUsIFFBYnN0
cmFjdEFuaW1hdGlvbjo6U3RhdGUpOwogICAgIHZvaWQgc2NhbGVBbmltYXRpb25WYWx1ZUNoYW5n
ZWQoUVZhcmlhbnQgdmFsdWUpIHsgc2V0SXRlbVJlY3RWaXNpYmxlKHZhbHVlLnRvUmVjdEYoKSk7
IH0KIAogcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgVmlld3BvcnRVcGRhdGVEZWZlcnJlcjsK
KyAgICB2b2lkIHN1c3BlbmRDb250ZW50KCk7CisgICAgdm9pZCByZXN1bWVDb250ZW50KCk7CiAK
ICAgICBxcmVhbCBjc3NTY2FsZUZyb21JdGVtKHFyZWFsKTsKICAgICBxcmVhbCBpdGVtU2NhbGVG
cm9tQ1NTKHFyZWFsKTsKQEAgLTEzOCw4ICsxNDQsNyBAQCBwcml2YXRlOgogICAgIENvbnN0cmFp
bnRzIG1fY29uc3RyYWludHM7CiAKICAgICBpbnQgbV9zdXNwZW5kQ291bnQ7Ci0gICAgT3duUHRy
PFZpZXdwb3J0VXBkYXRlRGVmZXJyZXI+IG1fc2NhbGVVcGRhdGVEZWZlcnJlcjsKLSAgICBPd25Q
dHI8Vmlld3BvcnRVcGRhdGVEZWZlcnJlcj4gbV9zY3JvbGxVcGRhdGVEZWZlcnJlcjsKKyAgICBR
QmFzaWNUaW1lciBtX3Njcm9sbFBhaW50ZXJUaW1lcjsKIAogICAgIGJvb2wgbV9oYWRVc2VySW50
ZXJhY3Rpb247CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128465</attachid>
            <date>2012-02-23 05:50:31 -0800</date>
            <delta_ts>2012-02-23 06:05:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78602-20120223144425.patch</filename>
            <type>text/plain</type>
            <size>18910</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGNjMGJhNjJmNzFiZTVm
MGZlODIxNDFiMTVmOWVlNjI4MTJlNGJjNi4uNWY0NzQ3MjgxOWY5OGY0ZTg1ZWUzMjZmMzhiMmRm
NTZjMGMzM2M5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAyLTIzICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBb
UXRdIFBhZ2UgZG9lc24ndCBnZXQgcmVwYWludGVkIHdoaWxlIHBhbm5pbmcgaXMgaW4gcHJvZ3Jl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRp
bGluZyBjb2RlIG5lZWRlZCB0aGUgY3VycmVudCB2aXNpYmxlQ29udGVudHNSZWN0IGluIG9yZGVy
IHRvIGJlCisgICAgICAgIGFibGUgdG8gY3JlYXRlIHRpbGVzLCBzbyB3ZSBub3cgbWFrZSBzdXJl
IGl0IGdldHMgaXQuIFdlIGFsc28gbmVlZGVkCisgICAgICAgIHRvIG1ha2Ugc3VyZSB0byBzZXQg
dGhlIHRyYWplY3RvcnkgdmVjdG9yIHdoaWxlIHBhbm5pbmcgYW5kIHdoaWxlIHRoZQorICAgICAg
ICBmbGlja2luZyBlbmdpbmUgd2FzIGFuaW1hdGluZyBraW5ldGljIHNjcm9sbGluZy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVp
Y2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6X3FfdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0QW5k
U2NhbGUpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6Ol9xX3ZpZXdwb3J0VHJhamVj
dG9yeVZlY3RvckNoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5
Lmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OnNldFZpc2libGVDb250ZW50
UmVjdFRyYWplY3RvcnlWZWN0b3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjpzZXRW
aXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuaDoKKyAgICAgICAgKERyYXdpbmdBcmVhUHJveHlJbXBsKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lmg6CisgICAgICAgIChMYXll
clRyZWVIb3N0UHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJv
eHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6c2V0VmlzaWJs
ZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcik6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3Bv
cnRJbnRlcmFjdGlvbkVuZ2luZTo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKToKKyAgICAg
ICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpmbGlja2FibGVNb3ZpbmdT
dGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3
cG9ydEludGVyYWN0aW9uRW5naW5lOjpwYW5Nb3ZlU3RhcnRlZCk6CisgICAgICAgIChXZWJLaXQ6
OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6cGFuTW92ZUVuZGVkKToKKyAgICAgICAgKFdl
YktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpmbGlja2FibGVNb3ZpbmdQb3NpdGlv
blVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6
cGFuR2VzdHVyZVJlcXVlc3RVcGRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFZpZXdw
b3J0SW50ZXJhY3Rpb25FbmdpbmUuaDoKKyAgICAgICAgKFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVu
Z2luZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaDoKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVj
dG9yeVZlY3Rvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3Qu
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhv
c3RRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RRdDo6c2V0VmlzaWJsZUNv
bnRlbnRSZWN0QW5kU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UXQ6OnNl
dFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaDoKKyAgICAgICAgKExheWVyVHJlZUhvc3RR
dCk6CisKIDIwMTItMDItMjIgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gRGlzcmVnYXJkIHByZXZpb3VzIGJhY2tpbmcgc3Rv
cmUgYXMgc29vbiBhcyBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggMzljOTE2ZDE3YTcxYTEyMGNmYTBhMzU5NjE5
OTA0ZGMyOGZkOWY1OS4uNDJlMWI0OGZmODg0OTQxMjk3ZDE1MTVmYzA5ZTAyNjE5Njg2NTliYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcu
Y3BwCkBAIC0yMTIsMTQgKzIxMiw2IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRs
ZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKICAgICBjb250ZXh0LT5k
b3dubG9hZE1hbmFnZXIoKS0+YWRkRG93bmxvYWQoZG93bmxvYWQsIGRvd25sb2FkSXRlbSk7CiB9
CiAKLXZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6Ol9xX3ZpZXdwb3J0VHJhamVjdG9yeVZlY3Rv
ckNoYW5nZWQoY29uc3QgUVBvaW50RiYgdHJhamVjdG9yeVZlY3RvcikKLXsKLSAgICBEcmF3aW5n
QXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IHdlYlBhZ2VQcm94eS0+ZHJhd2luZ0FyZWEoKTsKLSAg
ICBpZiAoIWRyYXdpbmdBcmVhKQotICAgICAgICByZXR1cm47Ci0gICAgZHJhd2luZ0FyZWEtPnNl
dFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IodHJhamVjdG9yeVZlY3Rvcik7Ci19
Ci0KIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6Ol9xX29uVmlzaWJsZUNoYW5nZWQoKQogewog
ICAgIHdlYlBhZ2VQcm94eS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lz
VmlzaWJsZSk7CkBAIC02MjAsMTIgKzYxMiwyNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdGbGlja2Fi
bGVQcml2YXRlOjpfcV91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZSgpCiAgICAgY29u
c3QgUVJlY3RGIHZpc2libGVSZWN0SW5DU1NDb29yZGluYXRlcyA9IHEtPm1hcFJlY3RUb1dlYkNv
bnRlbnQocS0+Ym91bmRpbmdSZWN0KCkpLmludGVyc2VjdGVkKHBhZ2VWaWV3LT5ib3VuZGluZ1Jl
Y3QoKSk7CiAgICAgZmxvYXQgc2NhbGUgPSBwYWdlVmlldy0+Y29udGVudHNTY2FsZSgpOwogCisg
ICAgLy8gVGhpcyBpcyBvbmx5IGZvciBvdXIgUU1MIFZpZXdwb3J0SW5mbyBkZWJ1Z2dpbmcgQVBJ
LgorICAgIHEtPmV4cGVyaW1lbnRhbCgpLT52aWV3cG9ydEluZm8oKS0+ZGlkVXBkYXRlQ3VycmVu
dFNjYWxlKCk7CisKICAgICBRUmVjdCBhbGlnbmVkVmlzaWJsZUNvbnRlbnRSZWN0ID0gdmlzaWJs
ZVJlY3RJbkNTU0Nvb3JkaW5hdGVzLnRvQWxpZ25lZFJlY3QoKTsKICAgICBkcmF3aW5nQXJlYS0+
c2V0VmlzaWJsZUNvbnRlbnRzUmVjdEFuZFNjYWxlKGFsaWduZWRWaXNpYmxlQ29udGVudFJlY3Qs
IHNjYWxlKTsKIAogICAgIC8vIEZJWE1FOiBPbmNlIHdlIHN1cHBvcnQgc3VzcGVuZCBhbmQgcmVz
dW1lLCB0aGlzIHNob3VsZCBiZSBkZWxheWVkIHVudGlsIHRoZSBwYWdlIGlzIGFjdGl2ZSBpZiB0
aGUgcGFnZSBpcyBzdXNwZW5kZWQuCiAgICAgd2ViUGFnZVByb3h5LT5zZXRGaXhlZFZpc2libGVD
b250ZW50UmVjdChhbGlnbmVkVmlzaWJsZUNvbnRlbnRSZWN0KTsKLSAgICBxLT5leHBlcmltZW50
YWwoKS0+dmlld3BvcnRJbmZvKCktPmRpZFVwZGF0ZUN1cnJlbnRTY2FsZSgpOworfQorCit2b2lk
IFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV92aWV3cG9ydFRyYWplY3RvcnlWZWN0b3JDaGFuZ2Vk
KGNvbnN0IFFQb2ludEYmIHRyYWplY3RvcnlWZWN0b3IpCit7CisgICAgRHJhd2luZ0FyZWFQcm94
eSogZHJhd2luZ0FyZWEgPSB3ZWJQYWdlUHJveHktPmRyYXdpbmdBcmVhKCk7CisgICAgaWYgKCFk
cmF3aW5nQXJlYSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUV9RKFFRdWlja1dlYlZpZXcpOwor
ICAgIGNvbnN0IFFSZWN0RiB2aXNpYmxlUmVjdEluQ1NTQ29vcmRpbmF0ZXMgPSBxLT5tYXBSZWN0
VG9XZWJDb250ZW50KHEtPmJvdW5kaW5nUmVjdCgpKS5pbnRlcnNlY3RlZChwYWdlVmlldy0+Ym91
bmRpbmdSZWN0KCkpOworCisgICAgUVJlY3QgYWxpZ25lZFZpc2libGVDb250ZW50UmVjdCA9IHZp
c2libGVSZWN0SW5DU1NDb29yZGluYXRlcy50b0FsaWduZWRSZWN0KCk7CisgICAgZHJhd2luZ0Fy
ZWEtPnNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoYWxpZ25lZFZpc2libGVD
b250ZW50UmVjdCwgdHJhamVjdG9yeVZlY3Rvcik7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlld0Zs
aWNrYWJsZVByaXZhdGU6Ol9xX3N1c3BlbmQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5LmgKaW5kZXggYzViNzEzYzM5YjExNDViMDM1MmFkY2E3M2Y3ODExMmJm
OTkzOWJjMi4uMTM3ODBhMWRmMDFlNjBiOWIxYzU1MjBkNjY3MGFmMTUxYzBmNjRmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC05NCw3ICs5NCw3
IEBAIHB1YmxpYzoKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0QW5kU2NhbGUoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgdmlzaWJsZUNvbnRlbnRzUmVjdCwgZmxvYXQgc2NhbGUpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJh
amVjdG9yeVZlY3Rvcihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aXNpYmxlQ29udGVudHNSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0
ZVRpbGVGb3JMYXllcihpbnQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgV2ViS2l0OjpVcGRh
dGVJbmZvJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGVGb3JMYXllcihpbnQgbGF5
ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgV2ViS2l0OjpVcGRhdGVJbmZvJikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVRpbGVGb3JMYXllcihpbnQgbGF5ZXJJRCwgaW50IHRpbGVJRCkgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUlt
cGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNw
cAppbmRleCAyNGE1YWVkMThjMWQyYjBlYWFkYmI4NDdjMWExODFhYjBiOTRmYjVlLi5iZWRkOGM2
ZTQ1MDk1Y2FkMDI3YzAwY2RmMzU2YmFiZDM1ZGY0MDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKQEAgLTM1NCwxMCArMzU0LDEw
IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OnNldFZpc2libGVDb250ZW50c1JlY3RBbmRT
Y2FsZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdFByb3h5
LT5zZXRWaXNpYmxlQ29udGVudHNSZWN0QW5kU2NhbGUodmlzaWJsZUNvbnRlbnRzUmVjdCwgc2Nh
bGUpOwogfQogCi12b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpzZXRWaXNpYmxlQ29udGVudFJl
Y3RUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHRyYWplY3RvcnlW
ZWN0b3IpCit2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpzZXRWaXNpYmxlQ29udGVudFJlY3RU
cmFqZWN0b3J5VmVjdG9yKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpc2libGVDb250ZW50c1Jl
Y3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7CiAgICAg
aWYgKG1fbGF5ZXJUcmVlSG9zdFByb3h5KQotICAgICAgICBtX2xheWVyVHJlZUhvc3RQcm94eS0+
c2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcih0cmFqZWN0b3J5VmVjdG9yKTsK
KyAgICAgICAgbV9sYXllclRyZWVIb3N0UHJveHktPnNldFZpc2libGVDb250ZW50UmVjdFRyYWpl
Y3RvcnlWZWN0b3IodmlzaWJsZUNvbnRlbnRzUmVjdCwgdHJhamVjdG9yeVZlY3Rvcik7CiB9CiAK
IHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OnBhaW50TGF5ZXJUcmVlKEJhY2tpbmdTdG9yZTo6
UGxhdGZvcm1HcmFwaGljc0NvbnRleHQgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKaW5kZXggNWZjZjI0YzUwODIxNWQwYzE5OGVj
MzkxNjg5OWMwNzVlZmUzNjhkNy4uMzM1YWJkMTExZDIxZTA0ODk1Zjg3NWEzOWJhMGI5MjRkZmU5
MTBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHlJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJ
bXBsLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0QW5kU2NhbGUo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlzaWJsZUNvbnRlbnRzUmVjdCwgZmxvYXQgc2NhbGUp
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9y
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJs
ZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aXNp
YmxlQ29udGVudHNSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiAgICAgdmlydHVh
bCB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0eSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50TGF5ZXJUcmVlKEJhY2tpbmdTdG9yZTo6UGxhdGZvcm1HcmFw
aGljc0NvbnRleHQpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUhvc3RQcm94eU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5
ZXJUcmVlSG9zdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9z
dFByb3h5LmgKaW5kZXggODA4ZjgwZjcyYmFiZGU1YWM4NDI5MjllZTEwYTI0ZGNjMGJhNjUzNi4u
MmQxNzBkYmVmZGVhNzhjMzQ5OGRjMzMyZTlkZDVmMGM5NDUxNDdmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaApAQCAtNTgsNyArNTgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwYWludFRvR3JhcGhpY3NDb250ZXh0KEJhY2tpbmdTdG9yZTo6UGxh
dGZvcm1HcmFwaGljc0NvbnRleHQpOwogICAgIHZvaWQgcHVyZ2VHTFJlc291cmNlcygpOwogICAg
IHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBmbG9hdCk7Ci0gICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVj
dG9yKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKKyAgICB2b2lkIHNldFZpc2libGVDb250
ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmKTsKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2
b2lkIHN5bmNSZW1vdGVDb250ZW50KCk7CiAgICAgdm9pZCBzd2FwQ29udGVudEJ1ZmZlcnMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJv
eHlRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5
UXQuY3BwCmluZGV4IDVmZDYyYTQ3M2QwNmU4MjIzMTA1N2Q4ZjRmYjY2ZWQ5NDdjMDE5ZTYuLmVj
YjQ2YTYwNTc5OWU1ZjBhNDFmNTFmY2JkYTQ0N2UyYzRlZGQxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcApAQCAtNTYz
LDkgKzU2Myw5IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpkZXN0cm95RGlyZWN0bHlDb21w
b3NpdGVkSW1hZ2UoaW50NjRfdCBrZXkpCiAgICAgcHVzaFVwZGF0ZVRvUXVldWUoRGVzdHJveUlt
YWdlTWVzc2FnZTo6Y3JlYXRlKGRhdGEpKTsKIH0KIAotdm9pZCBMYXllclRyZWVIb3N0UHJveHk6
OnNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgRmxvYXRQb2ludCYg
dHJhamVjdG9yeVZlY3RvcikKK3ZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpzZXRWaXNpYmxlQ29u
dGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0
UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7Ci0gICAgbV9kcmF3aW5nQXJlYVByb3h5LT5wYWdl
KCktPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlSG9zdDo6U2V0VmlzaWJsZUNv
bnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcih0cmFqZWN0b3J5VmVjdG9yKSwgbV9kcmF3aW5nQXJl
YVByb3h5LT5wYWdlKCktPnBhZ2VJRCgpKTsKKyAgICBtX2RyYXdpbmdBcmVhUHJveHktPnBhZ2Uo
KS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVIb3N0OjpTZXRWaXNpYmxlQ29u
dGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKHJlY3QsIHRyYWplY3RvcnlWZWN0b3IpLCBtX2RyYXdp
bmdBcmVhUHJveHktPnBhZ2UoKS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIExheWVyVHJlZUhvc3RQ
cm94eTo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdEFuZFNjYWxlKGNvbnN0IEludFJlY3QmIHJlY3Qs
IGZsb2F0IHNjYWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcAppbmRleCA3MzE5YjdlYjMzYmUxMjE3
NzVkNWM4Njc1MjM1ZDlhNjRmZGZlYjcxLi45MDA5ZGZiMWE1YTBjNTViNzA3OTM2ZmE2NmYxZWZk
MTVkMTEyY2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3
cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIFF0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKFFR
dWlja1dlYlZpZXcqIHZpZXdwb3J0CiAKICAgICBjb25uZWN0KG1fY29udGVudCwgU0lHTkFMKHdp
ZHRoQ2hhbmdlZCgpKSwgU0xPVChpdGVtU2l6ZUNoYW5nZWQoKSksIFF0OjpEaXJlY3RDb25uZWN0
aW9uKTsKICAgICBjb25uZWN0KG1fY29udGVudCwgU0lHTkFMKGhlaWdodENoYW5nZWQoKSksIFNM
T1QoaXRlbVNpemVDaGFuZ2VkKCkpLCBRdDo6RGlyZWN0Q29ubmVjdGlvbik7Ci0gICAgY29ubmVj
dChtX2ZsaWNrUHJvdmlkZXIsIFNJR05BTChtb3ZpbmdDaGFuZ2VkKCkpLCBTTE9UKHNjcm9sbFN0
YXRlQ2hhbmdlZCgpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOworICAgIGNvbm5lY3QobV9mbGlj
a1Byb3ZpZGVyLCBTSUdOQUwobW92aW5nQ2hhbmdlZCgpKSwgU0xPVChmbGlja2FibGVNb3ZpbmdT
dGF0ZUNoYW5nZWQoKSksIFF0OjpEaXJlY3RDb25uZWN0aW9uKTsKIAogICAgIGNvbm5lY3QobV9z
Y2FsZUFuaW1hdGlvbiwgU0lHTkFMKHZhbHVlQ2hhbmdlZChRVmFyaWFudCkpLAogICAgICAgICAg
ICAgU0xPVChzY2FsZUFuaW1hdGlvblZhbHVlQ2hhbmdlZChRVmFyaWFudCkpLCBRdDo6RGlyZWN0
Q29ubmVjdGlvbik7CkBAIC0xODcsMTIgKzE4Nyw0MiBAQCBib29sIFF0Vmlld3BvcnRJbnRlcmFj
dGlvbkVuZ2luZTo6YW5pbWF0ZUl0ZW1SZWN0VmlzaWJsZShjb25zdCBRUmVjdEYmIGl0ZW1SZWN0
KQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2lu
ZTo6c2Nyb2xsU3RhdGVDaGFuZ2VkKCkKK3ZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5l
OjpmbGlja2FibGVNb3ZpbmdTdGF0ZUNoYW5nZWQoKQogewotICAgIGlmIChtX2ZsaWNrUHJvdmlk
ZXItPmlzTW92aW5nKCkgJiYgIW1fc2Nyb2xsVXBkYXRlRGVmZXJyZXIpCi0gICAgICAgIG1fc2Ny
b2xsVXBkYXRlRGVmZXJyZXIgPSBhZG9wdFB0cihuZXcgVmlld3BvcnRVcGRhdGVEZWZlcnJlcih0
aGlzKSk7Ci0gICAgZWxzZQotICAgICAgICBtX3Njcm9sbFVwZGF0ZURlZmVycmVyLmNsZWFyKCk7
CisgICAgaWYgKG1fZmxpY2tQcm92aWRlci0+aXNNb3ZpbmcoKSkgeworICAgICAgICBpZiAobV9z
Y3JvbGxVcGRhdGVEZWZlcnJlcikKKyAgICAgICAgICAgIHJldHVybjsgLy8gV2UgZ2V0IHRoZSBp
c01vdmluZygpIHNpZ25hbCBtdWx0aXBsZSB0aW1lcy4KKyAgICAgICAgcGFuTW92ZVN0YXJ0ZWQo
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgcGFuTW92ZUVuZGVkKCk7Cit9CisKK3ZvaWQgUXRWaWV3
cG9ydEludGVyYWN0aW9uRW5naW5lOjpwYW5Nb3ZlU3RhcnRlZCgpCit7CisgICAgbV9zY3JvbGxV
cGRhdGVEZWZlcnJlciA9IGFkb3B0UHRyKG5ldyBWaWV3cG9ydFVwZGF0ZURlZmVycmVyKHRoaXMp
KTsKKworICAgIG1fbGFzdFNjcm9sbFBvc2l0aW9uID0gbV9mbGlja1Byb3ZpZGVyLT5jb250ZW50
UG9zKCk7CisgICAgY29ubmVjdChtX2ZsaWNrUHJvdmlkZXIsIFNJR05BTChjb250ZW50WENoYW5n
ZWQoKSksIFNMT1QoZmxpY2thYmxlTW92aW5nUG9zaXRpb25VcGRhdGUoKSksIFF0OjpEaXJlY3RD
b25uZWN0aW9uKTsKKyAgICBjb25uZWN0KG1fZmxpY2tQcm92aWRlciwgU0lHTkFMKGNvbnRlbnRZ
Q2hhbmdlZCgpKSwgU0xPVChmbGlja2FibGVNb3ZpbmdQb3NpdGlvblVwZGF0ZSgpKSwgUXQ6OkRp
cmVjdENvbm5lY3Rpb24pOworfQorCit2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6
cGFuTW92ZUVuZGVkKCkKK3sKKyAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGVu
ZCBvZiB0aGUgcGFuIG9yIHBhbiBraW5ldGljIGFuaW1hdGlvbi4KKyAgICBtX3Njcm9sbFVwZGF0
ZURlZmVycmVyLmNsZWFyKCk7CisKKyAgICBtX2xhc3RTY3JvbGxQb3NpdGlvbiA9IFFQb2ludEYo
KTsKKyAgICBkaXNjb25uZWN0KG1fZmxpY2tQcm92aWRlciwgU0lHTkFMKGNvbnRlbnRYQ2hhbmdl
ZCgpKSwgdGhpcywgU0xPVChmbGlja2FibGVNb3ZpbmdQb3NpdGlvblVwZGF0ZSgpKSk7CisgICAg
ZGlzY29ubmVjdChtX2ZsaWNrUHJvdmlkZXIsIFNJR05BTChjb250ZW50WUNoYW5nZWQoKSksIHRo
aXMsIFNMT1QoZmxpY2thYmxlTW92aW5nUG9zaXRpb25VcGRhdGUoKSkpOworfQorCit2b2lkIFF0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6ZmxpY2thYmxlTW92aW5nUG9zaXRpb25VcGRhdGUo
KQoreworICAgIFFQb2ludEYgbmV3UG9zaXRpb24gPSBtX2ZsaWNrUHJvdmlkZXItPmNvbnRlbnRQ
b3MoKTsKKworICAgIGVtaXQgdmlld3BvcnRUcmFqZWN0b3J5VmVjdG9yQ2hhbmdlZChtX2xhc3RT
Y3JvbGxQb3NpdGlvbiAtIG5ld1Bvc2l0aW9uKTsKKworICAgIG1fbGFzdFNjcm9sbFBvc2l0aW9u
ID0gbmV3UG9zaXRpb247CiB9CiAKIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpz
Y2FsZUFuaW1hdGlvblN0YXRlQ2hhbmdlZChRQWJzdHJhY3RBbmltYXRpb246OlN0YXRlIG5ld1N0
YXRlLCBRQWJzdHJhY3RBbmltYXRpb246OlN0YXRlIC8qb2xkU3RhdGUqLykKQEAgLTQyNywxMiAr
NDU3LDggQEAgdm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnBhbkdlc3R1cmVSZXF1
ZXN0VXBkYXRlKGNvbnN0IFFUb3VjaEV2ZW50KiBldmUKIHsKICAgICBBU1NFUlQoZXZlbnQtPnR5
cGUoKSA9PSBRRXZlbnQ6OlRvdWNoVXBkYXRlKTsKIAotICAgIFFQb2ludEYgdmlld3BvcnRQb3Np
dGlvbiA9IGV2ZW50LT50b3VjaFBvaW50cygpLmZpcnN0KCkucG9zKCk7Ci0KLSAgICBlbWl0IHZp
ZXdwb3J0VHJhamVjdG9yeVZlY3RvckNoYW5nZWQobV9sYXN0UGluY2hDZW50ZXJJblZpZXdwb3J0
Q29vcmRpbmF0ZXMgLSB2aWV3cG9ydFBvc2l0aW9uKTsKLQogICAgIG1fZmxpY2tQcm92aWRlci0+
aGFuZGxlVG91Y2hGbGlja0V2ZW50KGNvbnN0X2Nhc3Q8UVRvdWNoRXZlbnQqPihldmVudCkpOwot
ICAgIG1fbGFzdFBpbmNoQ2VudGVySW5WaWV3cG9ydENvb3JkaW5hdGVzID0gdmlld3BvcnRQb3Np
dGlvbjsKKyAgICBtX2xhc3RQaW5jaENlbnRlckluVmlld3BvcnRDb29yZGluYXRlcyA9IGV2ZW50
LT50b3VjaFBvaW50cygpLmZpcnN0KCkucG9zKCk7CiB9CiAKIHZvaWQgUXRWaWV3cG9ydEludGVy
YWN0aW9uRW5naW5lOjpwYW5HZXN0dXJlQ2FuY2VsbGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaAppbmRl
eCBmZDlkODRiOTJjMDllZmEwNTZjNDNjZTgxNzI0MDZjMjJhYTEyZDBkLi5jMGJhYTYwZmIzNjBh
NzFlNWUyZmNiOTI4NDFkMmEwOGIyZDg3MmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oCkBAIC0xMTAs
NyArMTEwLDkgQEAgcHJpdmF0ZSBRX1NMT1RTOgogICAgIC8vIFJlc3BvbmQgdG8gY2hhbmdlcyBv
ZiBjb250ZW50IHRoYXQgYXJlIG5vdCBkcml2ZW4gYnkgdXMsIGxpa2UgdGhlIHBhZ2UgcmVzaXpp
bmcgaXRzZWxmLgogICAgIHZvaWQgaXRlbVNpemVDaGFuZ2VkKCk7CiAKLSAgICB2b2lkIHNjcm9s
bFN0YXRlQ2hhbmdlZCgpOworICAgIHZvaWQgZmxpY2thYmxlTW92aW5nU3RhdGVDaGFuZ2VkKCk7
CisgICAgdm9pZCBmbGlja2FibGVNb3ZpbmdQb3NpdGlvblVwZGF0ZSgpOworCiAgICAgdm9pZCBz
Y2FsZUFuaW1hdGlvblN0YXRlQ2hhbmdlZChRQWJzdHJhY3RBbmltYXRpb246OlN0YXRlLCBRQWJz
dHJhY3RBbmltYXRpb246OlN0YXRlKTsKICAgICB2b2lkIHNjYWxlQW5pbWF0aW9uVmFsdWVDaGFu
Z2VkKFFWYXJpYW50IHZhbHVlKSB7IHNldEl0ZW1SZWN0VmlzaWJsZSh2YWx1ZS50b1JlY3RGKCkp
OyB9CiAKQEAgLTEyNSw2ICsxMjcsOSBAQCBwcml2YXRlOgogICAgIHFyZWFsIGlubmVyQm91bmRl
ZENTU1NjYWxlKHFyZWFsKTsKICAgICBxcmVhbCBvdXRlckJvdW5kZWRDU1NTY2FsZShxcmVhbCk7
CiAKKyAgICB2b2lkIHBhbk1vdmVTdGFydGVkKCk7IC8vIENhbGxlZCB3aGVuIHBhbm5pbmcgc3Rh
cnRzLgorICAgIHZvaWQgcGFuTW92ZUVuZGVkKCk7IC8vICAgQ2FsbGVkIHdoZW4gcGFubmluZyAo
KyBraW5ldGljIGFuaW1hdGlvbikgZW5kcy4KKwogICAgIFFSZWN0RiBjb21wdXRlUG9zUmFuZ2VG
b3JJdGVtQXRTY2FsZShxcmVhbCBpdGVtU2NhbGUpIGNvbnN0OwogICAgIGJvb2wgZW5zdXJlQ29u
dGVudFdpdGhpblZpZXdwb3J0Qm91bmRhcnkoYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSk7CiAKQEAg
LTE1NCw2ICsxNTksNyBAQCBwcml2YXRlOgogCiAgICAgU2NhbGVBbmltYXRpb24qIG1fc2NhbGVB
bmltYXRpb247CiAgICAgUVBvaW50RiBtX2xhc3RQaW5jaENlbnRlckluVmlld3BvcnRDb29yZGlu
YXRlczsKKyAgICBRUG9pbnRGIG1fbGFzdFNjcm9sbFBvc2l0aW9uOwogICAgIHFyZWFsIG1fcGlu
Y2hTdGFydFNjYWxlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllclRyZWVIb3N0LmgKaW5kZXggNjFmYmUyZmMzNDc1Y2RhNDkxNDViZDIxZTgyYzhi
YWY0NDczNWQyZC4uNGY4MTc1NjI3NjNlOTJhYTNjMjM2YzI2NDdmOWFhNmQ0YjllNzNhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5o
CkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZShjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgZmxvYXQgc2NhbGUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRW
aXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9y
eVZlY3Rvcihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RGb3JMYXllcihp
bnQgbGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCByZW5kZXJOZXh0RnJhbWUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5nU3Rv
cmVzKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
TGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllclRyZWVIb3N0Lm1lc3NhZ2VzLmluCmluZGV4IDRlZTFjYzNiNDg3YzRkYzFhYzk0
NWFmMTcwYTk5MjhkZjEwNzMyZjguLjQyNDdlZWU4NDZiMDVmMTg3ZDRkNGFlY2RjODdkMjBjN2E2
MDAyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXll
clRyZWVIb3N0Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllclRyZWVIb3N0Lm1lc3NhZ2VzLmluCkBAIC0yMCw4ICsyMCw4IEBACiAKICNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKIG1lc3NhZ2VzIC0+IExheWVyVHJlZUhvc3QgewotICAg
IFNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoV2ViQ29yZTo6RmxvYXRQb2lu
dCB0cmFqZWN0b3J5VmVjdG9yeSkKLSAgICBTZXRWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZShX
ZWJDb3JlOjpJbnRSZWN0IGNvbnRlbnRSZWN0LCBmbG9hdCBzY2FsZSkKKyAgICBTZXRWaXNpYmxl
Q29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKFdlYkNvcmU6OkludFJlY3QgdmlzaWJsZUNvbnRl
bnRzUmVjdCwgV2ViQ29yZTo6RmxvYXRQb2ludCB0cmFqZWN0b3J5VmVjdG9yeSkKKyAgICBTZXRW
aXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZShXZWJDb3JlOjpJbnRSZWN0IHZpc2libGVDb250ZW50
c1JlY3QsIGZsb2F0IHNjYWxlKQogICAgIFJlbmRlck5leHRGcmFtZSgpCiAgICAgUHVyZ2VCYWNr
aW5nU3RvcmVzKCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKaW5kZXggNDhmMGIxMWI0ZDkxMWY5NWE0N2Q3
YmU0ODlhNzYzNWIwOWI2MDQ5Ny4uNTAzNDY1M2E3MGIzNzQxOGFlZDgzZDMzNWI5ZDM0OTZjNTQy
YTYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xh
eWVyVHJlZUhvc3RRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKQEAgLTQyMCw4ICs0MjAsNiBAQCBXZWJDb3JlOjpJbnRS
ZWN0IExheWVyVHJlZUhvc3RRdDo6dmlzaWJsZUNvbnRlbnRzUmVjdCgpIGNvbnN0CiAKIHZvaWQg
TGF5ZXJUcmVlSG9zdFF0OjpzZXRWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZShjb25zdCBJbnRS
ZWN0JiByZWN0LCBmbG9hdCBzY2FsZSkKIHsKLSAgICBpZiAocmVjdCA9PSBtX3Zpc2libGVDb250
ZW50c1JlY3QgJiYgc2NhbGUgPT0gbV9jb250ZW50c1NjYWxlKQotICAgICAgICByZXR1cm47CiAg
ICAgbV92aXNpYmxlQ29udGVudHNSZWN0ID0gcmVjdDsKICAgICBtX2NvbnRlbnRzU2NhbGUgPSBz
Y2FsZTsKIApAQCAtNDMzLDkgKzQzMSwxMyBAQCB2b2lkIExheWVyVHJlZUhvc3RRdDo6c2V0Vmlz
aWJsZUNvbnRlbnRSZWN0QW5kU2NhbGUoY29uc3QgSW50UmVjdCYgcmVjdCwgZmxvYXQgcwogICAg
IHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQogCi12b2lkIExheWVyVHJlZUhvc3RRdDo6c2V0Vmlz
aWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBGbG9hdFBvaW50JiB0cmFqZWN0
b3J5VmVjdG9yKQordm9pZCBMYXllclRyZWVIb3N0UXQ6OnNldFZpc2libGVDb250ZW50UmVjdFRy
YWplY3RvcnlWZWN0b3IoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRQb2ludCYgdHJh
amVjdG9yeVZlY3RvcikKIHsKKyAgICBtX3Zpc2libGVDb250ZW50c1JlY3QgPSByZWN0OworCiAg
ICAgdG9XZWJHcmFwaGljc0xheWVyKG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci5nZXQoKSkt
PnNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IodHJhamVjdG9yeVZlY3Rvcik7
CisKKyAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKIH0KIAogdm9pZCBMYXllclRyZWVIb3N0UXQ6
OnJlbmRlck5leHRGcmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmgKaW5kZXggNTkwYTQ0MWI0YzdhYzU5OGIzMzQ4
OWZiNzlmNTg5Zjk4NWJjMjgwMC4uYTg2MjdiNTg3MWI1NmI0ZThkYTM3ZDEzNzg2NWZmYzRjNGYx
YjVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xh
eWVyVHJlZUhvc3RRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9x
dC9MYXllclRyZWVIb3N0UXQuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpOwogICAgIHZpcnR1YWwgYm9vbCBsYXllclRyZWVU
aWxlVXBkYXRlc0FsbG93ZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNv
bnRlbnRSZWN0QW5kU2NhbGUoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGZsb2F0IHNjYWxlKTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CisgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVD
b250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3luY0NvbXBvc2l0
aW5nU3RhdGVGb3JMYXllcihjb25zdCBXZWJMYXllckluZm8mKTsKICAgICB2aXJ0dWFsIHZvaWQg
YXR0YWNoTGF5ZXIoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9p
ZCBkZXRhY2hMYXllcihXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128468</attachid>
            <date>2012-02-23 06:05:40 -0800</date>
            <delta_ts>2012-02-23 06:10:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78602-20120223145934.patch</filename>
            <type>text/plain</type>
            <size>18883</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGNjMGJhNjJmNzFiZTVm
MGZlODIxNDFiMTVmOWVlNjI4MTJlNGJjNi4uNWY0NzQ3MjgxOWY5OGY0ZTg1ZWUzMjZmMzhiMmRm
NTZjMGMzM2M5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAyLTIzICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBb
UXRdIFBhZ2UgZG9lc24ndCBnZXQgcmVwYWludGVkIHdoaWxlIHBhbm5pbmcgaXMgaW4gcHJvZ3Jl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRp
bGluZyBjb2RlIG5lZWRlZCB0aGUgY3VycmVudCB2aXNpYmxlQ29udGVudHNSZWN0IGluIG9yZGVy
IHRvIGJlCisgICAgICAgIGFibGUgdG8gY3JlYXRlIHRpbGVzLCBzbyB3ZSBub3cgbWFrZSBzdXJl
IGl0IGdldHMgaXQuIFdlIGFsc28gbmVlZGVkCisgICAgICAgIHRvIG1ha2Ugc3VyZSB0byBzZXQg
dGhlIHRyYWplY3RvcnkgdmVjdG9yIHdoaWxlIHBhbm5pbmcgYW5kIHdoaWxlIHRoZQorICAgICAg
ICBmbGlja2luZyBlbmdpbmUgd2FzIGFuaW1hdGluZyBraW5ldGljIHNjcm9sbGluZy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVp
Y2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6X3FfdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0QW5k
U2NhbGUpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6Ol9xX3ZpZXdwb3J0VHJhamVj
dG9yeVZlY3RvckNoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5
Lmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OnNldFZpc2libGVDb250ZW50
UmVjdFRyYWplY3RvcnlWZWN0b3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjpzZXRW
aXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuaDoKKyAgICAgICAgKERyYXdpbmdBcmVhUHJveHlJbXBsKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lmg6CisgICAgICAgIChMYXll
clRyZWVIb3N0UHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJv
eHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6c2V0VmlzaWJs
ZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcik6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3Bv
cnRJbnRlcmFjdGlvbkVuZ2luZTo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKToKKyAgICAg
ICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpmbGlja2FibGVNb3ZpbmdT
dGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3
cG9ydEludGVyYWN0aW9uRW5naW5lOjpwYW5Nb3ZlU3RhcnRlZCk6CisgICAgICAgIChXZWJLaXQ6
OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6cGFuTW92ZUVuZGVkKToKKyAgICAgICAgKFdl
YktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpmbGlja2FibGVNb3ZpbmdQb3NpdGlv
blVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6
cGFuR2VzdHVyZVJlcXVlc3RVcGRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFZpZXdw
b3J0SW50ZXJhY3Rpb25FbmdpbmUuaDoKKyAgICAgICAgKFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVu
Z2luZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaDoKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVj
dG9yeVZlY3Rvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3Qu
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhv
c3RRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RRdDo6c2V0VmlzaWJsZUNv
bnRlbnRSZWN0QW5kU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UXQ6OnNl
dFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaDoKKyAgICAgICAgKExheWVyVHJlZUhvc3RR
dCk6CisKIDIwMTItMDItMjIgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gRGlzcmVnYXJkIHByZXZpb3VzIGJhY2tpbmcgc3Rv
cmUgYXMgc29vbiBhcyBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggMzljOTE2ZDE3YTcxYTEyMGNmYTBhMzU5NjE5
OTA0ZGMyOGZkOWY1OS4uNDJlMWI0OGZmODg0OTQxMjk3ZDE1MTVmYzA5ZTAyNjE5Njg2NTliYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcu
Y3BwCkBAIC0yMTIsMTQgKzIxMiw2IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRs
ZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKICAgICBjb250ZXh0LT5k
b3dubG9hZE1hbmFnZXIoKS0+YWRkRG93bmxvYWQoZG93bmxvYWQsIGRvd25sb2FkSXRlbSk7CiB9
CiAKLXZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6Ol9xX3ZpZXdwb3J0VHJhamVjdG9yeVZlY3Rv
ckNoYW5nZWQoY29uc3QgUVBvaW50RiYgdHJhamVjdG9yeVZlY3RvcikKLXsKLSAgICBEcmF3aW5n
QXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IHdlYlBhZ2VQcm94eS0+ZHJhd2luZ0FyZWEoKTsKLSAg
ICBpZiAoIWRyYXdpbmdBcmVhKQotICAgICAgICByZXR1cm47Ci0gICAgZHJhd2luZ0FyZWEtPnNl
dFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IodHJhamVjdG9yeVZlY3Rvcik7Ci19
Ci0KIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6Ol9xX29uVmlzaWJsZUNoYW5nZWQoKQogewog
ICAgIHdlYlBhZ2VQcm94eS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lz
VmlzaWJsZSk7CkBAIC02MjAsMTIgKzYxMiwyNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdGbGlja2Fi
bGVQcml2YXRlOjpfcV91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZSgpCiAgICAgY29u
c3QgUVJlY3RGIHZpc2libGVSZWN0SW5DU1NDb29yZGluYXRlcyA9IHEtPm1hcFJlY3RUb1dlYkNv
bnRlbnQocS0+Ym91bmRpbmdSZWN0KCkpLmludGVyc2VjdGVkKHBhZ2VWaWV3LT5ib3VuZGluZ1Jl
Y3QoKSk7CiAgICAgZmxvYXQgc2NhbGUgPSBwYWdlVmlldy0+Y29udGVudHNTY2FsZSgpOwogCisg
ICAgLy8gVGhpcyBpcyBvbmx5IGZvciBvdXIgUU1MIFZpZXdwb3J0SW5mbyBkZWJ1Z2dpbmcgQVBJ
LgorICAgIHEtPmV4cGVyaW1lbnRhbCgpLT52aWV3cG9ydEluZm8oKS0+ZGlkVXBkYXRlQ3VycmVu
dFNjYWxlKCk7CisKICAgICBRUmVjdCBhbGlnbmVkVmlzaWJsZUNvbnRlbnRSZWN0ID0gdmlzaWJs
ZVJlY3RJbkNTU0Nvb3JkaW5hdGVzLnRvQWxpZ25lZFJlY3QoKTsKICAgICBkcmF3aW5nQXJlYS0+
c2V0VmlzaWJsZUNvbnRlbnRzUmVjdEFuZFNjYWxlKGFsaWduZWRWaXNpYmxlQ29udGVudFJlY3Qs
IHNjYWxlKTsKIAogICAgIC8vIEZJWE1FOiBPbmNlIHdlIHN1cHBvcnQgc3VzcGVuZCBhbmQgcmVz
dW1lLCB0aGlzIHNob3VsZCBiZSBkZWxheWVkIHVudGlsIHRoZSBwYWdlIGlzIGFjdGl2ZSBpZiB0
aGUgcGFnZSBpcyBzdXNwZW5kZWQuCiAgICAgd2ViUGFnZVByb3h5LT5zZXRGaXhlZFZpc2libGVD
b250ZW50UmVjdChhbGlnbmVkVmlzaWJsZUNvbnRlbnRSZWN0KTsKLSAgICBxLT5leHBlcmltZW50
YWwoKS0+dmlld3BvcnRJbmZvKCktPmRpZFVwZGF0ZUN1cnJlbnRTY2FsZSgpOworfQorCit2b2lk
IFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV92aWV3cG9ydFRyYWplY3RvcnlWZWN0b3JDaGFuZ2Vk
KGNvbnN0IFFQb2ludEYmIHRyYWplY3RvcnlWZWN0b3IpCit7CisgICAgRHJhd2luZ0FyZWFQcm94
eSogZHJhd2luZ0FyZWEgPSB3ZWJQYWdlUHJveHktPmRyYXdpbmdBcmVhKCk7CisgICAgaWYgKCFk
cmF3aW5nQXJlYSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUV9RKFFRdWlja1dlYlZpZXcpOwor
ICAgIGNvbnN0IFFSZWN0RiB2aXNpYmxlUmVjdEluQ1NTQ29vcmRpbmF0ZXMgPSBxLT5tYXBSZWN0
VG9XZWJDb250ZW50KHEtPmJvdW5kaW5nUmVjdCgpKS5pbnRlcnNlY3RlZChwYWdlVmlldy0+Ym91
bmRpbmdSZWN0KCkpOworCisgICAgUVJlY3QgYWxpZ25lZFZpc2libGVDb250ZW50UmVjdCA9IHZp
c2libGVSZWN0SW5DU1NDb29yZGluYXRlcy50b0FsaWduZWRSZWN0KCk7CisgICAgZHJhd2luZ0Fy
ZWEtPnNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoYWxpZ25lZFZpc2libGVD
b250ZW50UmVjdCwgdHJhamVjdG9yeVZlY3Rvcik7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlld0Zs
aWNrYWJsZVByaXZhdGU6Ol9xX3N1c3BlbmQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5LmgKaW5kZXggYzViNzEzYzM5YjExNDViMDM1MmFkY2E3M2Y3ODExMmJm
OTkzOWJjMi4uNzcyOTVhOWQwYTI2YzlkNGVhMDgxM2Q3MDRjYTIyYTlhNTBkYjYxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC05NCw3ICs5NCw3
IEBAIHB1YmxpYzoKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0QW5kU2NhbGUoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgdmlzaWJsZUNvbnRlbnRzUmVjdCwgZmxvYXQgc2NhbGUpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJh
amVjdG9yeVZlY3Rvcihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aXNpYmxlQ29udGVudHNSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlELCBj
b25zdCBXZWJLaXQ6OlVwZGF0ZUluZm8mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGls
ZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBXZWJLaXQ6OlVwZGF0ZUlu
Zm8mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZUZvckxheWVyKGludCBsYXllcklE
LCBpbnQgdGlsZUlEKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eUltcGwuY3BwCmluZGV4IDI0YTVhZWQxOGMxZDJiMGVhYWRiYjg0N2MxYTE4MWFi
MGI5NGZiNWUuLmJlZGQ4YzZlNDUwOTVjYWQwMjdjMDBjZGYzNTZiYWJkMzVkZjQwNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcApA
QCAtMzU0LDEwICszNTQsMTAgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6c2V0VmlzaWJs
ZUNvbnRlbnRzUmVjdEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QKICAgICAgICAgbV9s
YXllclRyZWVIb3N0UHJveHktPnNldFZpc2libGVDb250ZW50c1JlY3RBbmRTY2FsZSh2aXNpYmxl
Q29udGVudHNSZWN0LCBzY2FsZSk7CiB9CiAKLXZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OnNl
dFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgdHJhamVjdG9yeVZlY3RvcikKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OnNldFZp
c2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
dmlzaWJsZUNvbnRlbnRzUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgdHJhamVjdG9y
eVZlY3RvcikKIHsKICAgICBpZiAobV9sYXllclRyZWVIb3N0UHJveHkpCi0gICAgICAgIG1fbGF5
ZXJUcmVlSG9zdFByb3h5LT5zZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKHRy
YWplY3RvcnlWZWN0b3IpOworICAgICAgICBtX2xheWVyVHJlZUhvc3RQcm94eS0+c2V0VmlzaWJs
ZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcih2aXNpYmxlQ29udGVudHNSZWN0LCB0cmFqZWN0
b3J5VmVjdG9yKTsKIH0KIAogdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6cGFpbnRMYXllclRy
ZWUoQmFja2luZ1N0b3JlOjpQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCBjb250ZXh0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAppbmRleCA1ZmNm
MjRjNTA4MjE1ZDBjMTk4ZWMzOTE2ODk5YzA3NWVmZTM2OGQ3Li4zMzVhYmQxMTFkMjFlMDQ4OTVm
ODc1YTM5YmEwYjkyNGRmZTkxMGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuaApAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogCiAjaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250
ZW50c1JlY3RBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aXNpYmxlQ29udGVudHNS
ZWN0LCBmbG9hdCBzY2FsZSk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250ZW50UmVj
dFRyYWplY3RvcnlWZWN0b3IoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOworICAgIHZpcnR1
YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb0N1cnJlbnRHTENvbnRleHQoY29uc3QgV2Vi
Q29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBvcGFjaXR5LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRMYXllclRyZWUoQmFja2luZ1N0
b3JlOjpQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTGF5ZXJU
cmVlSG9zdFByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaAppbmRleCA4MDhmODBmNzJiYWJkZTVhYzg0MjkyOWVl
MTBhMjRkY2MwYmE2NTM2Li4yZDE3MGRiZWZkZWE3OGMzNDk4ZGMzMzJlOWRkNWYwYzk0NTE0N2Zh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCkBA
IC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50VG9HcmFwaGljc0NvbnRleHQo
QmFja2luZ1N0b3JlOjpQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCk7CiAgICAgdm9pZCBwdXJnZUdM
UmVzb3VyY2VzKCk7CiAgICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0QW5kU2NhbGUoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYsIGZsb2F0KTsKLSAgICB2b2lkIHNldFZpc2libGVDb250ZW50
UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOworICAgIHZv
aWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogICAgIHZvaWQgc3luY1JlbW90ZUNvbnRlbnQoKTsKICAgICB2b2lkIHN3YXBD
b250ZW50QnVmZmVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9M
YXllclRyZWVIb3N0UHJveHlRdC5jcHAKaW5kZXggNWZkNjJhNDczZDA2ZTgyMjMxMDU3ZDhmNGZi
NjZlZDk0N2MwMTllNi4uZWNiNDZhNjA1Nzk5ZTVmMGE0MWY1MWZjYmRhNDQ3ZTJjNGVkZDEyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94
eVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFBy
b3h5UXQuY3BwCkBAIC01NjMsOSArNTYzLDkgQEAgdm9pZCBMYXllclRyZWVIb3N0UHJveHk6OmRl
c3Ryb3lEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShpbnQ2NF90IGtleSkKICAgICBwdXNoVXBkYXRl
VG9RdWV1ZShEZXN0cm95SW1hZ2VNZXNzYWdlOjpjcmVhdGUoZGF0YSkpOwogfQogCi12b2lkIExh
eWVyVHJlZUhvc3RQcm94eTo6c2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihj
b25zdCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQordm9pZCBMYXllclRyZWVIb3N0UHJv
eHk6OnNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgSW50UmVjdCYg
cmVjdCwgY29uc3QgRmxvYXRQb2ludCYgdHJhamVjdG9yeVZlY3RvcikKIHsKLSAgICBtX2RyYXdp
bmdBcmVhUHJveHktPnBhZ2UoKS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVI
b3N0OjpTZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKHRyYWplY3RvcnlWZWN0
b3IpLCBtX2RyYXdpbmdBcmVhUHJveHktPnBhZ2UoKS0+cGFnZUlEKCkpOworICAgIG1fZHJhd2lu
Z0FyZWFQcm94eS0+cGFnZSgpLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUhv
c3Q6OlNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IocmVjdCwgdHJhamVjdG9y
eVZlY3RvciksIG1fZHJhd2luZ0FyZWFQcm94eS0+cGFnZSgpLT5wYWdlSUQoKSk7CiB9CiAKIHZv
aWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpzZXRWaXNpYmxlQ29udGVudHNSZWN0QW5kU2NhbGUoY29u
c3QgSW50UmVjdCYgcmVjdCwgZmxvYXQgc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCmluZGV4
IDczMTliN2ViMzNiZTEyMTc3NWQ1Yzg2NzUyMzVkOWE2NGZkZmViNzEuLmI4ODZmM2NhNjY2MGY0
N2QzMTk5OWE3NjAwY2FiN2U1NGMwYzkzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCkBAIC0x
MjUsNyArMTI1LDcgQEAgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmUoUVF1aWNrV2ViVmlldyogdmlld3BvcnQKIAogICAgIGNvbm5lY3QobV9j
b250ZW50LCBTSUdOQUwod2lkdGhDaGFuZ2VkKCkpLCBTTE9UKGl0ZW1TaXplQ2hhbmdlZCgpKSwg
UXQ6OkRpcmVjdENvbm5lY3Rpb24pOwogICAgIGNvbm5lY3QobV9jb250ZW50LCBTSUdOQUwoaGVp
Z2h0Q2hhbmdlZCgpKSwgU0xPVChpdGVtU2l6ZUNoYW5nZWQoKSksIFF0OjpEaXJlY3RDb25uZWN0
aW9uKTsKLSAgICBjb25uZWN0KG1fZmxpY2tQcm92aWRlciwgU0lHTkFMKG1vdmluZ0NoYW5nZWQo
KSksIFNMT1Qoc2Nyb2xsU3RhdGVDaGFuZ2VkKCkpLCBRdDo6RGlyZWN0Q29ubmVjdGlvbik7Cisg
ICAgY29ubmVjdChtX2ZsaWNrUHJvdmlkZXIsIFNJR05BTChtb3ZpbmdDaGFuZ2VkKCkpLCBTTE9U
KGZsaWNrYWJsZU1vdmluZ1N0YXRlQ2hhbmdlZCgpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOwog
CiAgICAgY29ubmVjdChtX3NjYWxlQW5pbWF0aW9uLCBTSUdOQUwodmFsdWVDaGFuZ2VkKFFWYXJp
YW50KSksCiAgICAgICAgICAgICBTTE9UKHNjYWxlQW5pbWF0aW9uVmFsdWVDaGFuZ2VkKFFWYXJp
YW50KSksIFF0OjpEaXJlY3RDb25uZWN0aW9uKTsKQEAgLTE4NywxMiArMTg3LDQyIEBAIGJvb2wg
UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjphbmltYXRlSXRlbVJlY3RWaXNpYmxlKGNvbnN0
IFFSZWN0RiYgaXRlbVJlY3QpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUXRWaWV3cG9y
dEludGVyYWN0aW9uRW5naW5lOjpzY3JvbGxTdGF0ZUNoYW5nZWQoKQordm9pZCBRdFZpZXdwb3J0
SW50ZXJhY3Rpb25FbmdpbmU6OmZsaWNrYWJsZU1vdmluZ1N0YXRlQ2hhbmdlZCgpCiB7Ci0gICAg
aWYgKG1fZmxpY2tQcm92aWRlci0+aXNNb3ZpbmcoKSAmJiAhbV9zY3JvbGxVcGRhdGVEZWZlcnJl
cikKLSAgICAgICAgbV9zY3JvbGxVcGRhdGVEZWZlcnJlciA9IGFkb3B0UHRyKG5ldyBWaWV3cG9y
dFVwZGF0ZURlZmVycmVyKHRoaXMpKTsKLSAgICBlbHNlCi0gICAgICAgIG1fc2Nyb2xsVXBkYXRl
RGVmZXJyZXIuY2xlYXIoKTsKKyAgICBpZiAobV9mbGlja1Byb3ZpZGVyLT5pc01vdmluZygpKSB7
CisgICAgICAgIGlmIChtX3Njcm9sbFVwZGF0ZURlZmVycmVyKQorICAgICAgICAgICAgcmV0dXJu
OyAvLyBXZSBnZXQgdGhlIGlzTW92aW5nKCkgc2lnbmFsIG11bHRpcGxlIHRpbWVzLgorICAgICAg
ICBwYW5Nb3ZlU3RhcnRlZCgpOworICAgIH0gZWxzZQorICAgICAgICBwYW5Nb3ZlRW5kZWQoKTsK
K30KKwordm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OnBhbk1vdmVTdGFydGVkKCkK
K3sKKyAgICBtX3Njcm9sbFVwZGF0ZURlZmVycmVyID0gYWRvcHRQdHIobmV3IFZpZXdwb3J0VXBk
YXRlRGVmZXJyZXIodGhpcykpOworCisgICAgbV9sYXN0U2Nyb2xsUG9zaXRpb24gPSBtX2ZsaWNr
UHJvdmlkZXItPmNvbnRlbnRQb3MoKTsKKyAgICBjb25uZWN0KG1fZmxpY2tQcm92aWRlciwgU0lH
TkFMKGNvbnRlbnRYQ2hhbmdlZCgpKSwgU0xPVChmbGlja2FibGVNb3ZpbmdQb3NpdGlvblVwZGF0
ZSgpKSk7CisgICAgY29ubmVjdChtX2ZsaWNrUHJvdmlkZXIsIFNJR05BTChjb250ZW50WUNoYW5n
ZWQoKSksIFNMT1QoZmxpY2thYmxlTW92aW5nUG9zaXRpb25VcGRhdGUoKSkpOworfQorCit2b2lk
IFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6cGFuTW92ZUVuZGVkKCkKK3sKKyAgICAvLyBU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGVuZCBvZiB0aGUgcGFuIG9yIHBhbiBraW5ldGlj
IGFuaW1hdGlvbi4KKyAgICBtX3Njcm9sbFVwZGF0ZURlZmVycmVyLmNsZWFyKCk7CisKKyAgICBt
X2xhc3RTY3JvbGxQb3NpdGlvbiA9IFFQb2ludEYoKTsKKyAgICBkaXNjb25uZWN0KG1fZmxpY2tQ
cm92aWRlciwgU0lHTkFMKGNvbnRlbnRYQ2hhbmdlZCgpKSwgdGhpcywgU0xPVChmbGlja2FibGVN
b3ZpbmdQb3NpdGlvblVwZGF0ZSgpKSk7CisgICAgZGlzY29ubmVjdChtX2ZsaWNrUHJvdmlkZXIs
IFNJR05BTChjb250ZW50WUNoYW5nZWQoKSksIHRoaXMsIFNMT1QoZmxpY2thYmxlTW92aW5nUG9z
aXRpb25VcGRhdGUoKSkpOworfQorCit2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6
ZmxpY2thYmxlTW92aW5nUG9zaXRpb25VcGRhdGUoKQoreworICAgIFFQb2ludEYgbmV3UG9zaXRp
b24gPSBtX2ZsaWNrUHJvdmlkZXItPmNvbnRlbnRQb3MoKTsKKworICAgIGVtaXQgdmlld3BvcnRU
cmFqZWN0b3J5VmVjdG9yQ2hhbmdlZChtX2xhc3RTY3JvbGxQb3NpdGlvbiAtIG5ld1Bvc2l0aW9u
KTsKKworICAgIG1fbGFzdFNjcm9sbFBvc2l0aW9uID0gbmV3UG9zaXRpb247CiB9CiAKIHZvaWQg
UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzY2FsZUFuaW1hdGlvblN0YXRlQ2hhbmdlZChR
QWJzdHJhY3RBbmltYXRpb246OlN0YXRlIG5ld1N0YXRlLCBRQWJzdHJhY3RBbmltYXRpb246OlN0
YXRlIC8qb2xkU3RhdGUqLykKQEAgLTQyNywxMiArNDU3LDggQEAgdm9pZCBRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmU6OnBhbkdlc3R1cmVSZXF1ZXN0VXBkYXRlKGNvbnN0IFFUb3VjaEV2ZW50
KiBldmUKIHsKICAgICBBU1NFUlQoZXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6OlRvdWNoVXBkYXRl
KTsKIAotICAgIFFQb2ludEYgdmlld3BvcnRQb3NpdGlvbiA9IGV2ZW50LT50b3VjaFBvaW50cygp
LmZpcnN0KCkucG9zKCk7Ci0KLSAgICBlbWl0IHZpZXdwb3J0VHJhamVjdG9yeVZlY3RvckNoYW5n
ZWQobV9sYXN0UGluY2hDZW50ZXJJblZpZXdwb3J0Q29vcmRpbmF0ZXMgLSB2aWV3cG9ydFBvc2l0
aW9uKTsKLQogICAgIG1fZmxpY2tQcm92aWRlci0+aGFuZGxlVG91Y2hGbGlja0V2ZW50KGNvbnN0
X2Nhc3Q8UVRvdWNoRXZlbnQqPihldmVudCkpOwotICAgIG1fbGFzdFBpbmNoQ2VudGVySW5WaWV3
cG9ydENvb3JkaW5hdGVzID0gdmlld3BvcnRQb3NpdGlvbjsKKyAgICBtX2xhc3RQaW5jaENlbnRl
ckluVmlld3BvcnRDb29yZGluYXRlcyA9IGV2ZW50LT50b3VjaFBvaW50cygpLmZpcnN0KCkucG9z
KCk7CiB9CiAKIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpwYW5HZXN0dXJlQ2Fu
Y2VsbGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdw
b3J0SW50ZXJhY3Rpb25FbmdpbmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZp
ZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaAppbmRleCBmZDlkODRiOTJjMDllZmEwNTZjNDNjZTgx
NzI0MDZjMjJhYTEyZDBkLi5jMGJhYTYwZmIzNjBhNzFlNWUyZmNiOTI4NDFkMmEwOGIyZDg3MmM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVy
YWN0aW9uRW5naW5lLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3Bv
cnRJbnRlcmFjdGlvbkVuZ2luZS5oCkBAIC0xMTAsNyArMTEwLDkgQEAgcHJpdmF0ZSBRX1NMT1RT
OgogICAgIC8vIFJlc3BvbmQgdG8gY2hhbmdlcyBvZiBjb250ZW50IHRoYXQgYXJlIG5vdCBkcml2
ZW4gYnkgdXMsIGxpa2UgdGhlIHBhZ2UgcmVzaXppbmcgaXRzZWxmLgogICAgIHZvaWQgaXRlbVNp
emVDaGFuZ2VkKCk7CiAKLSAgICB2b2lkIHNjcm9sbFN0YXRlQ2hhbmdlZCgpOworICAgIHZvaWQg
ZmxpY2thYmxlTW92aW5nU3RhdGVDaGFuZ2VkKCk7CisgICAgdm9pZCBmbGlja2FibGVNb3ZpbmdQ
b3NpdGlvblVwZGF0ZSgpOworCiAgICAgdm9pZCBzY2FsZUFuaW1hdGlvblN0YXRlQ2hhbmdlZChR
QWJzdHJhY3RBbmltYXRpb246OlN0YXRlLCBRQWJzdHJhY3RBbmltYXRpb246OlN0YXRlKTsKICAg
ICB2b2lkIHNjYWxlQW5pbWF0aW9uVmFsdWVDaGFuZ2VkKFFWYXJpYW50IHZhbHVlKSB7IHNldEl0
ZW1SZWN0VmlzaWJsZSh2YWx1ZS50b1JlY3RGKCkpOyB9CiAKQEAgLTEyNSw2ICsxMjcsOSBAQCBw
cml2YXRlOgogICAgIHFyZWFsIGlubmVyQm91bmRlZENTU1NjYWxlKHFyZWFsKTsKICAgICBxcmVh
bCBvdXRlckJvdW5kZWRDU1NTY2FsZShxcmVhbCk7CiAKKyAgICB2b2lkIHBhbk1vdmVTdGFydGVk
KCk7IC8vIENhbGxlZCB3aGVuIHBhbm5pbmcgc3RhcnRzLgorICAgIHZvaWQgcGFuTW92ZUVuZGVk
KCk7IC8vICAgQ2FsbGVkIHdoZW4gcGFubmluZyAoKyBraW5ldGljIGFuaW1hdGlvbikgZW5kcy4K
KwogICAgIFFSZWN0RiBjb21wdXRlUG9zUmFuZ2VGb3JJdGVtQXRTY2FsZShxcmVhbCBpdGVtU2Nh
bGUpIGNvbnN0OwogICAgIGJvb2wgZW5zdXJlQ29udGVudFdpdGhpblZpZXdwb3J0Qm91bmRhcnko
Ym9vbCBpbW1lZGlhdGUgPSBmYWxzZSk7CiAKQEAgLTE1NCw2ICsxNTksNyBAQCBwcml2YXRlOgog
CiAgICAgU2NhbGVBbmltYXRpb24qIG1fc2NhbGVBbmltYXRpb247CiAgICAgUVBvaW50RiBtX2xh
c3RQaW5jaENlbnRlckluVmlld3BvcnRDb29yZGluYXRlczsKKyAgICBRUG9pbnRGIG1fbGFzdFNj
cm9sbFBvc2l0aW9uOwogICAgIHFyZWFsIG1fcGluY2hTdGFydFNjYWxlOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKaW5kZXgg
NjFmYmUyZmMzNDc1Y2RhNDkxNDViZDIxZTgyYzhiYWY0NDczNWQyZC4uNGY4MTc1NjI3NjNlOTJh
YTNjMjM2YzI2NDdmOWFhNmQ0YjllNzNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoK
IAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNp
YmxlQ29udGVudFJlY3RBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgZmxvYXQgc2Nh
bGUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5
VmVjdG9yKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBz
ZXRWaXNpYmxlQ29udGVudFJlY3RGb3JMYXllcihpbnQgbGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZW5kZXJOZXh0RnJhbWUoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5nU3RvcmVzKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lm1lc3NhZ2Vz
LmluCmluZGV4IDRlZTFjYzNiNDg3YzRkYzFhYzk0NWFmMTcwYTk5MjhkZjEwNzMyZjguLjQyNDdl
ZWU4NDZiMDVmMTg3ZDRkNGFlY2RjODdkMjBjN2E2MDAyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lm1lc3NhZ2Vz
LmluCkBAIC0yMCw4ICsyMCw4IEBACiAKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKIG1l
c3NhZ2VzIC0+IExheWVyVHJlZUhvc3QgewotICAgIFNldFZpc2libGVDb250ZW50UmVjdFRyYWpl
Y3RvcnlWZWN0b3IoV2ViQ29yZTo6RmxvYXRQb2ludCB0cmFqZWN0b3J5VmVjdG9yeSkKLSAgICBT
ZXRWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZShXZWJDb3JlOjpJbnRSZWN0IGNvbnRlbnRSZWN0
LCBmbG9hdCBzY2FsZSkKKyAgICBTZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9y
KFdlYkNvcmU6OkludFJlY3QgdmlzaWJsZUNvbnRlbnRzUmVjdCwgV2ViQ29yZTo6RmxvYXRQb2lu
dCB0cmFqZWN0b3J5VmVjdG9yeSkKKyAgICBTZXRWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZShX
ZWJDb3JlOjpJbnRSZWN0IHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0IHNjYWxlKQogICAgIFJl
bmRlck5leHRGcmFtZSgpCiAgICAgUHVyZ2VCYWNraW5nU3RvcmVzKCkKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5j
cHAKaW5kZXggNDhmMGIxMWI0ZDkxMWY5NWE0N2Q3YmU0ODlhNzYzNWIwOWI2MDQ5Ny4uNTAzNDY1
M2E3MGIzNzQxOGFlZDgzZDMzNWI5ZDM0OTZjNTQyYTYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKQEAg
LTQyMCw4ICs0MjAsNiBAQCBXZWJDb3JlOjpJbnRSZWN0IExheWVyVHJlZUhvc3RRdDo6dmlzaWJs
ZUNvbnRlbnRzUmVjdCgpIGNvbnN0CiAKIHZvaWQgTGF5ZXJUcmVlSG9zdFF0OjpzZXRWaXNpYmxl
Q29udGVudFJlY3RBbmRTY2FsZShjb25zdCBJbnRSZWN0JiByZWN0LCBmbG9hdCBzY2FsZSkKIHsK
LSAgICBpZiAocmVjdCA9PSBtX3Zpc2libGVDb250ZW50c1JlY3QgJiYgc2NhbGUgPT0gbV9jb250
ZW50c1NjYWxlKQotICAgICAgICByZXR1cm47CiAgICAgbV92aXNpYmxlQ29udGVudHNSZWN0ID0g
cmVjdDsKICAgICBtX2NvbnRlbnRzU2NhbGUgPSBzY2FsZTsKIApAQCAtNDMzLDkgKzQzMSwxMyBA
QCB2b2lkIExheWVyVHJlZUhvc3RRdDo6c2V0VmlzaWJsZUNvbnRlbnRSZWN0QW5kU2NhbGUoY29u
c3QgSW50UmVjdCYgcmVjdCwgZmxvYXQgcwogICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQog
Ci12b2lkIExheWVyVHJlZUhvc3RRdDo6c2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZl
Y3Rvcihjb25zdCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQordm9pZCBMYXllclRyZWVI
b3N0UXQ6OnNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgSW50UmVj
dCYgcmVjdCwgY29uc3QgRmxvYXRQb2ludCYgdHJhamVjdG9yeVZlY3RvcikKIHsKKyAgICBtX3Zp
c2libGVDb250ZW50c1JlY3QgPSByZWN0OworCiAgICAgdG9XZWJHcmFwaGljc0xheWVyKG1fbm9u
Q29tcG9zaXRlZENvbnRlbnRMYXllci5nZXQoKSktPnNldFZpc2libGVDb250ZW50UmVjdFRyYWpl
Y3RvcnlWZWN0b3IodHJhamVjdG9yeVZlY3Rvcik7CisKKyAgICBzY2hlZHVsZUxheWVyRmx1c2go
KTsKIH0KIAogdm9pZCBMYXllclRyZWVIb3N0UXQ6OnJlbmRlck5leHRGcmFtZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0
LmgKaW5kZXggNTkwYTQ0MWI0YzdhYzU5OGIzMzQ4OWZiNzlmNTg5Zjk4NWJjMjgwMC4uYTg2Mjdi
NTg3MWI1NmI0ZThkYTM3ZDEzNzg2NWZmYzRjNGYxYjVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaApAQCAtNzQs
NyArNzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHB1cmdlQmFja2luZ1N0b3Jlcygp
OwogICAgIHZpcnR1YWwgYm9vbCBsYXllclRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0QW5kU2NhbGUoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGZsb2F0IHNjYWxlKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJs
ZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7
CisgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3Io
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3luY0NvbXBvc2l0aW5nU3RhdGVGb3JMYXllcihjb25zdCBXZWJM
YXllckluZm8mKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoTGF5ZXIoV2ViQ29yZTo6V2ViR3Jh
cGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihXZWJDb3JlOjpXZWJH
cmFwaGljc0xheWVyKik7Cg==
</data>
<flag name="review"
          id="130861"
          type_id="1"
          status="+"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="130862"
          type_id="3"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>