<?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>59071</bug_id>
          
          <creation_ts>2011-04-20 21:11:38 -0700</creation_ts>
          <short_desc>&lt;input type=&quot;number&quot;&gt; dispatches two blurs when tabbing from an invalid number</short_desc>
          <delta_ts>2011-10-04 20:34:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>69395</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>389815</commentid>
    <comment_count>0</comment_count>
      <attachid>90485</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-04-20 21:11:38 -0700</bug_when>
    <thetext>Created attachment 90485
[TEST] Reduced Test Case

With the following test case: (attached)

    &lt;p&gt;Type &quot;0123&quot; or &quot;a123&quot; into the input and then blur with TAB.&lt;/p&gt;
    &lt;input id=&quot;x&quot; type=&quot;number&quot; onblur=&quot;alert(&apos;blurred&apos;);&quot;&gt;

* STEPS TO REPRODUCE
1. Focus the input
2. Input an invalid number (&quot;a123&quot;)
3. Tab to blur the input

* EXPECTED RESULTS
1 alert saying &quot;blurred&quot;

* ACTUAL RESULTS
2 alerts saying &quot;blurred&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396223</commentid>
    <comment_count>1</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-01 22:09:41 -0700</bug_when>
    <thetext>I found an extra focus event was also fired during NumberInputType::handleBlurEvent().

In the following stack trace, the deeper updateFromElement() is not needed.  We need to avoid it....

1   WebCore::HTMLTextFormControlElement::dispatchFocusEvent()
2   WebCore::Document::setFocusedNode(WTF::PassRefPtr&lt;WebCore::Node&gt;)
3   WebCore::FocusController::setFocusedNode(WebCore::Node*, WTF::PassRefPtr&lt;WebCore::Frame&gt;)
4   WebCore::SelectionController::setFocusedNodeIfNeeded()
5   WebCore::SelectionController::setSelection(WebCore::VisibleSelection const&amp;, unsigned int, WebCore::SelectionController::CursorAlignOnScroll, WebCore::TextGranularity, WebCore::DirectionalityPolicy)
6   WebCore::SelectionController::textWillBeReplaced(WebCore::CharacterData*, unsigned int, unsigned int, unsigned int)
7   WebCore::CharacterData::setDataAndUpdate(WTF::PassRefPtr&lt;WTF::StringImpl&gt;, unsigned int, unsigned int, unsigned int)
8   WebCore::CharacterData::setData(WTF::String const&amp;, int&amp;)
9   WebCore::replaceChildrenWithText(WebCore::HTMLElement*, WTF::String const&amp;, int&amp;)
10  WebCore::HTMLElement::setInnerText(WTF::String const&amp;, int&amp;)
11  WebCore::RenderTextControl::setInnerTextValue(WTF::String const&amp;)
12  WebCore::RenderTextControlSingleLine::updateFromElement()
13  WebCore::updateFromElementCallback(WebCore::Node*)
14  WebCore::ContainerNode::dispatchPostAttachCallbacks()
15  WebCore::ContainerNode::resumePostAttachCallbacks()
16  WebCore::Document::recalcStyle(WebCore::Node::StyleChange)
17  WebCore::Document::updateStyleIfNeeded()
18  WebCore::Document::updateLayout()
19  WebCore::SelectionController::textWillBeReplaced(WebCore::CharacterData*, unsigned int, unsigned int, unsigned int)
20  WebCore::CharacterData::setDataAndUpdate(WTF::PassRefPtr&lt;WTF::StringImpl&gt;, unsigned int, unsigned int, unsigned int)
21  WebCore::CharacterData::setData(WTF::String const&amp;, int&amp;)
22  WebCore::replaceChildrenWithText(WebCore::HTMLElement*, WTF::String const&amp;, int&amp;)
23  WebCore::HTMLElement::setInnerText(WTF::String const&amp;, int&amp;)
24  WebCore::RenderTextControl::setInnerTextValue(WTF::String const&amp;)
25  WebCore::RenderTextControlSingleLine::updateFromElement()
26  WebCore::NumberInputType::handleBlurEvent()
27  WebCore::HTMLInputElement::handleBlurEvent()
28  WebCore::HTMLTextFormControlElement::dispatchBlurEvent()
29  WebCore::Document::setFocusedNode(WTF::PassRefPtr&lt;WebCore::Node&gt;)
30  WebCore::FocusController::advanceFocusInDocumentOrder(WebCore::FocusDirection, WebCore::KeyboardEvent*, bool)
31  WebCore::FocusController::advanceFocus(WebCore::FocusDirection, WebCore::KeyboardEvent*, bool)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396262</commentid>
    <comment_count>2</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-01 23:58:45 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I found an extra focus event was also fired during NumberInputType::handleBlurEvent().
&gt; 
&gt; In the following stack trace, the deeper updateFromElement() is not needed.  We need to avoid it....

It&apos;s not a problem.  The root problem is SelectionController::textWillBeReplaced() sets focus on the input element.  We&apos;d like to change the inner text without focusing.

It seems difficult to avoid focus in textWillBeReplaced().  I&apos;m going to introduce Node::beforeBlurEvent(), which is called before setting 0 to Document::m_focusedNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396409</commentid>
    <comment_count>3</comment_count>
      <attachid>91927</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-02 09:26:50 -0700</bug_when>
    <thetext>Created attachment 91927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396414</commentid>
    <comment_count>4</comment_count>
      <attachid>91927</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-05-02 09:41:44 -0700</bug_when>
    <thetext>Comment on attachment 91927
Patch

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

We really should take a deeper look at the whole blur/focus event firing lifecycle. I noticed that dispatchBlurEvent is actually performing some of the &quot;do stuff before blur event is dispatched&quot; things.

&gt; Source/WebCore/dom/Node.h:553
&gt; +    virtual void beforeBlurEvent();

I think a more common convention is to use the &quot;will&quot; prefix, as in &quot;willBlur&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396813</commentid>
    <comment_count>5</comment_count>
      <attachid>92011</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-02 17:11:30 -0700</bug_when>
    <thetext>Created attachment 92011
Patch 2

Renamed to willBlur().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408828</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-24 07:17:21 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; We really should take a deeper look at the whole blur/focus event firing lifecycle. I noticed that dispatchBlurEvent is actually performing some of the &quot;do stuff before blur event is dispatched&quot; things.

dispatchBlurEvent() doesn&apos;t do anything other than calling ChromeClient::elementDidFocus().  So it is not helpful in this case.
Document::setFocusedNode() do a lot of things.  It calls setActive() and setFocus() and we can override them.  However we need a hook point before clearing m_focusedNode.  So I think introducing willBlur() is reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409978</commentid>
    <comment_count>7</comment_count>
      <attachid>92011</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-05-25 15:40:38 -0700</bug_when>
    <thetext>Comment on attachment 92011
Patch 2

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

&gt; Source/WebCore/html/InputType.h:177
&gt; +    virtual void willBlur();
&gt;      virtual void handleBlurEvent();

It doesn&apos;t look like InputType::handleBlurEvent is needed anymore. NumberInputType had the
only virtual implementation of it, and InputType&apos;s impl is blank. Should that be removed or
do you envision it being needed in the future?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410061</commentid>
    <comment_count>8</comment_count>
      <attachid>92011</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-25 17:40:14 -0700</bug_when>
    <thetext>Comment on attachment 92011
Patch 2

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

&gt;&gt; Source/WebCore/html/InputType.h:177
&gt;&gt;      virtual void handleBlurEvent();
&gt; 
&gt; It doesn&apos;t look like InputType::handleBlurEvent is needed anymore. NumberInputType had the
&gt; only virtual implementation of it, and InputType&apos;s impl is blank. Should that be removed or
&gt; do you envision it being needed in the future?

Good catch!

I&apos;ll remove InputType::handleBlurEvent().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410063</commentid>
    <comment_count>9</comment_count>
      <attachid>94889</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-25 17:41:04 -0700</bug_when>
    <thetext>Created attachment 94889
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410301</commentid>
    <comment_count>10</comment_count>
      <attachid>94889</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-26 02:11:05 -0700</bug_when>
    <thetext>Comment on attachment 94889
Patch for landing

Clearing flags on attachment: 94889

Committed r87371: &lt;http://trac.webkit.org/changeset/87371&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410302</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-26 02:11:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>90485</attachid>
            <date>2011-04-20 21:11:38 -0700</date>
            <delta_ts>2011-04-20 21:11:38 -0700</delta_ts>
            <desc>[TEST] Reduced Test Case</desc>
            <filename>double-blur-when-invalid-number.html</filename>
            <type>text/html</type>
            <size>124</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PHA+VHlwZSAiMDEyMyIgb3IgImExMjMiIGludG8gdGhlIGlucHV0IGFuZCB0aGVuIGJsdXIgd2l0
aCBUQUIuPC9wPgo8aW5wdXQgaWQ9IngiIHR5cGU9Im51bWJlciIgb25ibHVyPSJhbGVydCgnYmx1
cnJlZCcpOyI+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91927</attachid>
            <date>2011-05-02 09:26:50 -0700</date>
            <delta_ts>2011-05-02 17:11:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59071-20110503012648.patch</filename>
            <type>text/plain</type>
            <size>11152</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU0NzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwZmY3OTAwMWRkZjRlMDJhMDI4MGZl
MTgyOTkyZWViY2Q2ZWRmNzg3Li44MzI1NWQyZDZlMTk3ZjY4M2E5YmJmOTQ1YjEyMDkxNjcxYTE5
NDdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMDIgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpeCBhIGJ1ZyB0aGF0IDxpbnB1dCB0eXBlPSJudW1iZXIiPiBkaXNwYXRjaGVz
IHR3byBibHVycyB3aGVuIHRhYmJpbmcKKyAgICAgICAgZnJvbSBhbiBpbnZhbGlkIG51bWJlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkwNzEKKwor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWJsdXItdHdpY2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LW51bWJlci1ibHVyLXR3aWNlLmh0
bWw6IEFkZGVkLgorCiAyMDExLTA1LTAyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZS1lbmFibGUgd2Vic29ja2V0IHRlc3Rz
IG9uIEdUSy4gdGhleSBtb3ZlZCBvdmVyIHRvIGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtbnVtYmVyLWJsdXItdHdpY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItYmx1ci10d2ljZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWI3N2IxMGZlMTdjYTEwZjUyMTlhOTU3NjllZGJhZTM3NjRiNWY2MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWJsdXItdHdpY2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGhlcmUgd2FzIGEgYnVnIHRoYXQgbW92aW5n
IGZvY3VzIHdpdGggVEFCIGZyb20gYSBudW1iZXIgaW5wdXQgd2l0aCBhbiBpbnZhbGlkIHN0cmlu
ZyBkaXNwYXRjaGVkIGFuIGV4dHJhIGZvY3VzIGV2ZW50IGFuZCBhbiBleHRyYSBibHVyIGV2ZW50
LgorCitQQVNTIG51bU9mRm9jdXMgaXMgMQorUEFTUyBudW1PZkJsdXIgaXMgMQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1ibHVyLXR3aWNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1ibHVyLXR3aWNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTk0ODI1ZWE5M2U1MDAyZjE3YmM4ZjU3MzQwMWJkNzQ1OTZhMzkyOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWJsdXItdHdpY2UuaHRt
bApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
VGhlcmUgd2FzIGEgYnVnIHRoYXQgbW92aW5nIGZvY3VzIHdpdGggVEFCIGZyb20gYSBudW1iZXIg
aW5wdXQgd2l0aCBhbiBpbnZhbGlkIHN0cmluZyBkaXNwYXRjaGVkIGFuIGV4dHJhIGZvY3VzIGV2
ZW50IGFuZCBhbiBleHRyYSBibHVyIGV2ZW50LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorCis8aW5wdXQgdHlwZT1udW1iZXIgaWQ9bnVtYmVyPgorPGlucHV0IHR5cGU9dGV4dD4KKwor
PHNjcmlwdD4KK2Z1bmN0aW9uIGhhbmRsZUZvY3VzKCkgeworICAgIG51bU9mRm9jdXMrKzsKK30K
KworZnVuY3Rpb24gaGFuZGxlQmx1cigpIHsKKyAgICBudW1PZkJsdXIrKzsKK30KKwordmFyIG51
bU9mRm9jdXMgPSAwOwordmFyIG51bU9mQmx1ciA9IDA7Cit2YXIgbnVtID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ251bWJlcicpOworbnVtLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgaGFu
ZGxlRm9jdXMpOworbnVtLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBoYW5kbGVCbHVyKTsKK251
bS5mb2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFRleHQnLCBmYWxzZSwgJzEy
MycpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFRleHQnLCBmYWxzZSwgJ2EnKTsKK3Zh
ciB0YWJFdmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50Jyk7Cit0YWJF
dmVudC5pbml0S2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRvY3VtZW50LmRl
ZmF1bHRWaWV3LCAnVSswMDA5Jyk7CitudW0uZGlzcGF0Y2hFdmVudCh0YWJFdmVudCk7CisKK3No
b3VsZEJlKCdudW1PZkZvY3VzJywgJzEnKTsKK3Nob3VsZEJlKCdudW1PZkJsdXInLCAnMScpOwor
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTA1Njc3MGFlZWRkMTgxN2VmZTI1ZTgwN2JhZTY3
YTE1MzQ0N2RlZC4uZmI4OTYzMmFlYWNkODU5NDJjNDkxODYzMGIxNmU4N2Q4N2NiNWU4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDExLTA1LTAyICBLZW50IFRhbXVyYSAgPHRrZW50
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXggYSBidWcgdGhhdCA8aW5wdXQgdHlwZT0ibnVtYmVyIj4gZGlzcGF0Y2hlcyB0
d28gYmx1cnMgd2hlbiB0YWJiaW5nCisgICAgICAgIGZyb20gYW4gaW52YWxpZCBudW1iZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MDcxCisKKyAg
ICAgICAgTnVtYmVySW5wdXRUeXBlOjpoYW5kbGVCbHVyRXZlbnQoKSBkaXNwYXRjaGVkIGFuIGV4
dHJhIGZvY3VzIGV2ZW50CisgICAgICAgIGFuZCBhbiBleHRyYSBibHVyIGV2ZW50IGJlY2F1c2UK
KyAgICAgICAgU2VsZWN0aW9uQ29udHJvbGxlcjo6dGV4dFdpbGxCZVJlcGxhY2VkKCkgY2FsbGVk
IGJ5CisgICAgICAgIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1l
bnQoKSBmb2N1c2VzIGEgbm9kZQorICAgICAgICB3aXRoIHRoZSBzZWxlY3Rpb24uCisKKyAgICAg
ICAgSW4gb3JkZXIgdG8gYXZvaWQgdGhpcyBwcm9ibGVtLAorICAgICAgICAgLSBJbnRyb2R1Y2Ug
Tm9kZTo6YmVmb3JlQmx1ckV2ZW50KCkKKyAgICAgICAgICAgSXQgaXMgY2FsbGVkIGJlZm9yZSBh
bnkgc3RhdGUgY2hhbmdlcyBieSBhIGJsdXIgZXZlbnQuCisgICAgICAgICAtIENhbGwgUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lOjp1cGRhdGVGcm9tRWxlbWVudCgpIGluIGJlZm9yZUJsdXJF
dmVudCgpCisgICAgICAgICAgIEl0IGF2b2lkcyBleHRyYSBmb2N1cy9ibHVyIGV2ZW50cyBiZWNh
dXNlIERvY3VtZW50OjptX2ZvY3VzZWROb2RlIGlzCisgICAgICAgICAgIHN0aWxsIHRoZSBudW1i
ZXIgaW5wdXQgZHVyaW5nIGJlZm9yZUJsdXJFdmVudCgpLgorCisgICAgICAgIFRlc3Q6IGZhc3Qv
Zm9ybXMvaW5wdXQtbnVtYmVyLWJsdXItdHdpY2UuaHRtbAorCisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkTm9kZSk6IENh
bGxzIE5vZGU6OmJlZm9yZUJsdWVFdmVudCgpLgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGU6OmJlZm9yZUJsdXJFdmVudCk6CisgICAgICAgICAgRGVmYXVs
dCBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiBiZWZvcmVCbHVyRXZlbnQoKS4KKyAgICAgICAgKiBk
b20vTm9kZS5oOiBEZWNsYXJlIGJlZm9yZUJsdXJFdmVudCgpLgorICAgICAgICAqIGh0bWwvSFRN
TElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpi
ZWZvcmVCbHVyRXZlbnQpOgorICAgICAgICAgIEFkZGVkLiAgSXQganVzdCBjYWxscyBJbnB1dFR5
cGU6OmJlZm9yZUJsdXJFdmVudCgpLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5o
OiBEZWNsYXJlIGJlZm9yZUJsdXJFdmVudCgpLgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6YmVmb3JlQmx1ckV2ZW50KTogRGVmYXVs
dCBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOiBEZWNs
YXJlIGJlZm9yZUJsdXJFdmVudCgpLgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlwZTo6YmVmb3JlQmx1ckV2ZW50KToK
KyAgICAgICAgICBNb3ZlIHRoZSBjb2RlIGluIGhhbmRsZUJsdXJFdmVudCgpIGhlcmUuCisgICAg
ICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuaDogRGVjbGFyZSBiZWZvcmVCbHVyRXZlbnQoKS4K
KwogMjAxMS0wNS0wMSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IGY3MGQ2MzBmOTkxNGExNDA0NGE0NjNhNTZhZmRlYWU3YTc3ODJjZDkuLmZkMzJiNDcyZmQy
MzU5YzYzM2MyY2UxNmE1MTgwYWYyYjNjZDgyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMzE0NiwxMCArMzE0NiwxMiBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNz
UmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKQogCiAgICAgYm9vbCBmb2N1c0NoYW5nZUJsb2Nr
ZWQgPSBmYWxzZTsKICAgICBSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUgPSBtX2ZvY3VzZWRO
b2RlOwotICAgIG1fZm9jdXNlZE5vZGUgPSAwOwogCiAgICAgLy8gUmVtb3ZlIGZvY3VzIGZyb20g
dGhlIGV4aXN0aW5nIGZvY3VzIG5vZGUgKGlmIGFueSkKLSAgICBpZiAob2xkRm9jdXNlZE5vZGUg
JiYgIW9sZEZvY3VzZWROb2RlLT5pbkRldGFjaCgpKSB7IAorICAgIGlmIChvbGRGb2N1c2VkTm9k
ZSAmJiAhb2xkRm9jdXNlZE5vZGUtPmluRGV0YWNoKCkpIHsKKyAgICAgICAgLy8gYmVmb3JlQmx1
ckV2ZW50KCkgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgYW55IHN0YXR1cyBjaGFuZ2VzLgorICAg
ICAgICBvbGRGb2N1c2VkTm9kZS0+YmVmb3JlQmx1ckV2ZW50KCk7CisgICAgICAgIG1fZm9jdXNl
ZE5vZGUgPSAwOwogICAgICAgICBpZiAob2xkRm9jdXNlZE5vZGUtPmFjdGl2ZSgpKQogICAgICAg
ICAgICAgb2xkRm9jdXNlZE5vZGUtPnNldEFjdGl2ZShmYWxzZSk7CiAKQEAgLTMxOTQsNyArMzE5
Niw4IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3
Rm9jdXNlZE5vZGUpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdmlldygpLT5z
ZXRGb2N1cyhmYWxzZSk7CiAgICAgICAgIH0KLSAgICB9CisgICAgfSBlbHNlCisgICAgICAgIG1f
Zm9jdXNlZE5vZGUgPSAwOwogCiAgICAgaWYgKG5ld0ZvY3VzZWROb2RlKSB7CiAgICAgICAgIGlm
IChuZXdGb2N1c2VkTm9kZSA9PSBuZXdGb2N1c2VkTm9kZS0+cm9vdEVkaXRhYmxlRWxlbWVudCgp
ICYmICFhY2NlcHRzRWRpdGluZ0ZvY3VzKG5ld0ZvY3VzZWROb2RlLmdldCgpKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IDE0MDdkN2VlNmVkODhhMTIzMTM2Zjk5NTBlYmZmYWUxYWFiMGI2ZjUuLjA0
YWNiNjEyODc4NjQwOGE3ZWEwYTc4MmFiYzQ1ZWVkZTAzZTY1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTI4NDksNiArMjg0OSwxMCBAQCB2b2lkIE5vZGU6OmRpc3BhdGNoRm9jdXNFdmVudCgpCiAg
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBm
YWxzZSwgZmFsc2UpKTsKIH0KIAordm9pZCBOb2RlOjpiZWZvcmVCbHVyRXZlbnQoKQoreworfQor
CiB2b2lkIE5vZGU6OmRpc3BhdGNoQmx1ckV2ZW50KCkKIHsKICAgICBkaXNwYXRjaEV2ZW50KEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmJsdXJFdmVudCwgZmFsc2UsIGZhbHNlKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAppbmRleCA5ZmY2MzJiNGY0ZDllNmRhYmRmNDQ2ZmU3ZTJhYmEyYmViZWUzNTljLi5lNWYy
YjUzMDg3M2E0MjE1NTZkZGEyMzUxOTRiZGZkYzEyZTZiZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTU1
MCw2ICs1NTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKFBh
c3NSZWZQdHI8RXZlbnQ+IHVuZGVybHlpbmdFdmVudCwgYm9vbCBzZW5kTW91c2VFdmVudHMgPSBm
YWxzZSwgYm9vbCBzaG93UHJlc3NlZExvb2sgPSB0cnVlKTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaEZvY3VzRXZlbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYmVmb3JlQmx1ckV2ZW50KCk7
CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJbnB1dEV2
ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBiZTNl
OGU3OTg3YzE4YjY2ZTMwYThjNDNlOTcwZGUzOWM0NDRmOGM4Li5kYTcyODMxZjdhOGI3Mzc3YWM1
YjBlMTUyMjY3NGVhNTM0NGQ2YzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKQEAgLTQxNCw2ICs0MTQsMTIgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpoYW5k
bGVGb2N1c0V2ZW50KCkKICAgICBJbnB1dEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudCh0aGlz
LCB0aGlzKTsKIH0KIAordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpiZWZvcmVCbHVyRXZlbnQoKQor
eworICAgIG1faW5wdXRUeXBlLT5iZWZvcmVCbHVyRXZlbnQoKTsKKyAgICBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6YmVmb3JlQmx1ckV2ZW50KCk7Cit9CisKIHZvaWQgSFRNTElucHV0RWxl
bWVudDo6aGFuZGxlQmx1ckV2ZW50KCkKIHsKICAgICBtX2lucHV0VHlwZS0+aGFuZGxlQmx1ckV2
ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDViZTczNjY4
Nzk2MGZjOWRkYmIzYjlhNjllNWM3YjM5MDdkNDA5NzAuLjdiYWRhNTU5MDcxODY2YTQ5M2Y4Njgw
MjdhYWFmNDNhZjRjYzdjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
CkBAIC0yODcsNiArMjg3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eVZh
bHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWUoKS5pc0VtcHR5KCk7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNFbXB0eVN1Z2dlc3RlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gc3VnZ2VzdGVkVmFsdWUo
KS5pc0VtcHR5KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRm9jdXNFdmVudCgpOworICAg
IHZpcnR1YWwgdm9pZCBiZWZvcmVCbHVyRXZlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
Qmx1ckV2ZW50KCk7CiAgICAgdmlydHVhbCBpbnQgY2FjaGVkU2VsZWN0aW9uU3RhcnQoKSBjb25z
dCB7IHJldHVybiBtX2RhdGEuY2FjaGVkU2VsZWN0aW9uU3RhcnQoKTsgfQogICAgIHZpcnR1YWwg
aW50IGNhY2hlZFNlbGVjdGlvbkVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5jYWNoZWRTZWxl
Y3Rpb25FbmQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDkwMzJiMWM4ZTgy
NTU2NmNlNjczZGVmNTA1NGM1M2E4ODIyNTc4MDEuLjM5MDk4Zjk1MjljNTA3MTU3ZTlmYzU0YzI0
MDU0ZjMxNDZmYjhmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTQwOSw2ICs0
MDksMTAgQEAgYm9vbCBJbnB1dFR5cGU6OnNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW5wdXRUeXBlOjpiZWZvcmVCbHVyRXZlbnQoKQor
eworfQorCiB2b2lkIElucHV0VHlwZTo6aGFuZGxlQmx1ckV2ZW50KCkKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5oCmluZGV4IDQ3MTQwNWRkODM3MDU4ZDBjMDdhYzE3YWZmNmJlNDBlZDIwNzI2
ZTMuLjBiY2JhZmJhY2ZkODk2MzBkNzc4Njc5OTBlYzc2NDI4NTg1ODlmOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuaApAQCAtMTczLDYgKzE3Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBmb3JtRm9yU3VibWlzc2lvbigpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGJlZm9y
ZUJsdXJFdmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVCbHVyRXZlbnQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZFRvQW55RWxlbWVudCk7CiAgICAg
dmlydHVhbCBib29sIGNhbkJlU3VjY2Vzc2Z1bFN1Ym1pdEJ1dHRvbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCmluZGV4IDAzZjRjYjM3OWMzYjc1YzNhMzUwYzY0MDFk
MjBmMzBiOTNiZGVhYzMuLmYwMTQxMGQwM2Q5YzcxMDQzZDYwMDMwZmNiODVjYzE5NGU3MGEzMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKQEAgLTIxMSw3ICsyMTEs
NyBAQCBkb3VibGUgTnVtYmVySW5wdXRUeXBlOjphY2NlcHRhYmxlRXJyb3IoZG91YmxlIHN0ZXAp
IGNvbnN0CiAgICAgcmV0dXJuIHN0ZXAgLyBwb3coMi4wLCBGTFRfTUFOVF9ESUcpOwogfQogCi12
b2lkIE51bWJlcklucHV0VHlwZTo6aGFuZGxlQmx1ckV2ZW50KCkKK3ZvaWQgTnVtYmVySW5wdXRU
eXBlOjpiZWZvcmVCbHVyRXZlbnQoKQogewogICAgIC8vIFJlc2V0IHRoZSByZW5kZXJlciB2YWx1
ZSwgd2hpY2ggbWlnaHQgYmUgdW5tYXRjaGVkIHdpdGggdGhlIGVsZW1lbnQgdmFsdWUuCiAgICAg
ZWxlbWVudCgpLT5zZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGZhbHNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCmluZGV4IGIxNTI4NjZiOTMyMjE4YTVhMjZi
ODRjMzU2MWJlMzYzYzM1ZjRlZjEuLjk2MDE1ZjVlYzBjMTEwODBkM2M0Nzg5ZWNiNzdlNWZiYWMy
NDA5ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaApAQCAtNjMsNyArNjMs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9Eb3VibGVXaXRoRGVjaW1h
bFBsYWNlcyhjb25zdCBTdHJpbmcmLCBkb3VibGUsIHVuc2lnbmVkKikgY29uc3Q7CiAgICAgdmly
dHVhbCBTdHJpbmcgc2VyaWFsaXplKGRvdWJsZSkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUg
YWNjZXB0YWJsZUVycm9yKGRvdWJsZSkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUJs
dXJFdmVudCgpOworICAgIHZpcnR1YWwgdm9pZCBiZWZvcmVCbHVyRXZlbnQoKTsKICAgICB2aXJ0
dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmluZyBjb252
ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgaXNBY2NlcHRhYmxlVmFsdWUoY29uc3QgU3RyaW5nJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92011</attachid>
            <date>2011-05-02 17:11:30 -0700</date>
            <delta_ts>2011-05-25 17:40:57 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-59071-20110503091128.patch</filename>
            <type>text/plain</type>
            <size>10977</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU0NzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwZmY3OTAwMWRkZjRlMDJhMDI4MGZl
MTgyOTkyZWViY2Q2ZWRmNzg3Li44MzI1NWQyZDZlMTk3ZjY4M2E5YmJmOTQ1YjEyMDkxNjcxYTE5
NDdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMDIgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpeCBhIGJ1ZyB0aGF0IDxpbnB1dCB0eXBlPSJudW1iZXIiPiBkaXNwYXRjaGVz
IHR3byBibHVycyB3aGVuIHRhYmJpbmcKKyAgICAgICAgZnJvbSBhbiBpbnZhbGlkIG51bWJlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkwNzEKKwor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWJsdXItdHdpY2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LW51bWJlci1ibHVyLXR3aWNlLmh0
bWw6IEFkZGVkLgorCiAyMDExLTA1LTAyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZS1lbmFibGUgd2Vic29ja2V0IHRlc3Rz
IG9uIEdUSy4gdGhleSBtb3ZlZCBvdmVyIHRvIGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtbnVtYmVyLWJsdXItdHdpY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItYmx1ci10d2ljZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWI3N2IxMGZlMTdjYTEwZjUyMTlhOTU3NjllZGJhZTM3NjRiNWY2MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWJsdXItdHdpY2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGhlcmUgd2FzIGEgYnVnIHRoYXQgbW92aW5n
IGZvY3VzIHdpdGggVEFCIGZyb20gYSBudW1iZXIgaW5wdXQgd2l0aCBhbiBpbnZhbGlkIHN0cmlu
ZyBkaXNwYXRjaGVkIGFuIGV4dHJhIGZvY3VzIGV2ZW50IGFuZCBhbiBleHRyYSBibHVyIGV2ZW50
LgorCitQQVNTIG51bU9mRm9jdXMgaXMgMQorUEFTUyBudW1PZkJsdXIgaXMgMQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1ibHVyLXR3aWNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1ibHVyLXR3aWNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTk0ODI1ZWE5M2U1MDAyZjE3YmM4ZjU3MzQwMWJkNzQ1OTZhMzkyOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWJsdXItdHdpY2UuaHRt
bApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
VGhlcmUgd2FzIGEgYnVnIHRoYXQgbW92aW5nIGZvY3VzIHdpdGggVEFCIGZyb20gYSBudW1iZXIg
aW5wdXQgd2l0aCBhbiBpbnZhbGlkIHN0cmluZyBkaXNwYXRjaGVkIGFuIGV4dHJhIGZvY3VzIGV2
ZW50IGFuZCBhbiBleHRyYSBibHVyIGV2ZW50LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorCis8aW5wdXQgdHlwZT1udW1iZXIgaWQ9bnVtYmVyPgorPGlucHV0IHR5cGU9dGV4dD4KKwor
PHNjcmlwdD4KK2Z1bmN0aW9uIGhhbmRsZUZvY3VzKCkgeworICAgIG51bU9mRm9jdXMrKzsKK30K
KworZnVuY3Rpb24gaGFuZGxlQmx1cigpIHsKKyAgICBudW1PZkJsdXIrKzsKK30KKwordmFyIG51
bU9mRm9jdXMgPSAwOwordmFyIG51bU9mQmx1ciA9IDA7Cit2YXIgbnVtID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ251bWJlcicpOworbnVtLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgaGFu
ZGxlRm9jdXMpOworbnVtLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBoYW5kbGVCbHVyKTsKK251
bS5mb2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFRleHQnLCBmYWxzZSwgJzEy
MycpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFRleHQnLCBmYWxzZSwgJ2EnKTsKK3Zh
ciB0YWJFdmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50Jyk7Cit0YWJF
dmVudC5pbml0S2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRvY3VtZW50LmRl
ZmF1bHRWaWV3LCAnVSswMDA5Jyk7CitudW0uZGlzcGF0Y2hFdmVudCh0YWJFdmVudCk7CisKK3No
b3VsZEJlKCdudW1PZkZvY3VzJywgJzEnKTsKK3Nob3VsZEJlKCdudW1PZkJsdXInLCAnMScpOwor
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTA1Njc3MGFlZWRkMTgxN2VmZTI1ZTgwN2JhZTY3
YTE1MzQ0N2RlZC4uMWE0YjFhOTNkYmQzNmZhZTQwMWQwNDNmMmFhNjg0NDc5OTA5MWI4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDExLTA1LTAyICBLZW50IFRhbXVyYSAgPHRrZW50
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXggYSBidWcgdGhhdCA8aW5wdXQgdHlwZT0ibnVtYmVyIj4gZGlzcGF0Y2hlcyB0
d28gYmx1cnMgd2hlbiB0YWJiaW5nCisgICAgICAgIGZyb20gYW4gaW52YWxpZCBudW1iZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MDcxCisKKyAg
ICAgICAgTnVtYmVySW5wdXRUeXBlOjpoYW5kbGVCbHVyRXZlbnQoKSBkaXNwYXRjaGVkIGFuIGV4
dHJhIGZvY3VzIGV2ZW50CisgICAgICAgIGFuZCBhbiBleHRyYSBibHVyIGV2ZW50IGJlY2F1c2UK
KyAgICAgICAgU2VsZWN0aW9uQ29udHJvbGxlcjo6dGV4dFdpbGxCZVJlcGxhY2VkKCkgY2FsbGVk
IGJ5CisgICAgICAgIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1l
bnQoKSBmb2N1c2VzIGEgbm9kZQorICAgICAgICB3aXRoIHRoZSBzZWxlY3Rpb24uCisKKyAgICAg
ICAgSW4gb3JkZXIgdG8gYXZvaWQgdGhpcyBwcm9ibGVtLAorICAgICAgICAgLSBJbnRyb2R1Y2Ug
Tm9kZTo6d2lsbEJsdXIoKQorICAgICAgICAgICBJdCBpcyBjYWxsZWQgYmVmb3JlIGFueSBzdGF0
ZSBjaGFuZ2VzIGJ5IGEgYmx1ciBldmVudC4KKyAgICAgICAgIC0gQ2FsbCBSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KCkgaW4gd2lsbEJsdXIoKQorICAgICAg
ICAgICBJdCBhdm9pZHMgZXh0cmEgZm9jdXMvYmx1ciBldmVudHMgYmVjYXVzZSBEb2N1bWVudDo6
bV9mb2N1c2VkTm9kZSBpcworICAgICAgICAgICBzdGlsbCB0aGUgbnVtYmVyIGlucHV0IGR1cmlu
ZyB3aWxsQmx1cigpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWJs
dXItdHdpY2UuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkTm9kZSk6IENhbGxzIE5vZGU6OmJlZm9yZUJsdWVF
dmVudCgpLgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OndpbGxCbHVyKToKKyAgICAgICAgICBEZWZhdWx0IGVtcHR5IGltcGxlbWVudGF0aW9uIG9mIHdp
bGxCbHVyKCkuCisgICAgICAgICogZG9tL05vZGUuaDogRGVjbGFyZSB3aWxsQmx1cigpLgorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50Ojp3aWxsQmx1cik6CisgICAgICAgICAgQWRkZWQuICBJdCBqdXN0IGNhbGxz
IElucHV0VHlwZTo6d2lsbEJsdXIoKS4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
aDogRGVjbGFyZSB3aWxsQmx1cigpLgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6d2lsbEJsdXIpOiBEZWZhdWx0IGVtcHR5IGltcGxl
bWVudGF0aW9uLgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6IERlY2xhcmUgd2lsbEJsdXIo
KS4KKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOdW1iZXJJbnB1dFR5cGU6OndpbGxCbHVyKToKKyAgICAgICAgICBNb3ZlIHRoZSBjb2RlIGlu
IGhhbmRsZUJsdXJFdmVudCgpIGhlcmUuCisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUu
aDogRGVjbGFyZSB3aWxsQmx1cigpLgorCiAyMDExLTA1LTAxICBBYmhpc2hlayBBcnlhICA8aW5m
ZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjcwZDYzMGY5OTE0YTE0MDQ0YTQ2M2E1NmFmZGVh
ZTdhNzc4MmNkOS4uMmE4NTk2NjU5M2UzYTA4YWVlNDQyYTBjOGU1OTAyZTY4ZDEyYzE3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zMTQ2LDEwICszMTQ2LDEyIEBAIGJvb2wgRG9jdW1l
bnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpCiAKICAg
ICBib29sIGZvY3VzQ2hhbmdlQmxvY2tlZCA9IGZhbHNlOwogICAgIFJlZlB0cjxOb2RlPiBvbGRG
b2N1c2VkTm9kZSA9IG1fZm9jdXNlZE5vZGU7Ci0gICAgbV9mb2N1c2VkTm9kZSA9IDA7CiAKICAg
ICAvLyBSZW1vdmUgZm9jdXMgZnJvbSB0aGUgZXhpc3RpbmcgZm9jdXMgbm9kZSAoaWYgYW55KQot
ICAgIGlmIChvbGRGb2N1c2VkTm9kZSAmJiAhb2xkRm9jdXNlZE5vZGUtPmluRGV0YWNoKCkpIHsg
CisgICAgaWYgKG9sZEZvY3VzZWROb2RlICYmICFvbGRGb2N1c2VkTm9kZS0+aW5EZXRhY2goKSkg
eworICAgICAgICAvLyB3aWxsQmx1cigpIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSBzdGF0
dXMgY2hhbmdlcy4KKyAgICAgICAgb2xkRm9jdXNlZE5vZGUtPndpbGxCbHVyKCk7CisgICAgICAg
IG1fZm9jdXNlZE5vZGUgPSAwOwogICAgICAgICBpZiAob2xkRm9jdXNlZE5vZGUtPmFjdGl2ZSgp
KQogICAgICAgICAgICAgb2xkRm9jdXNlZE5vZGUtPnNldEFjdGl2ZShmYWxzZSk7CiAKQEAgLTMx
OTQsNyArMzE5Niw4IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
dmlldygpLT5zZXRGb2N1cyhmYWxzZSk7CiAgICAgICAgIH0KLSAgICB9CisgICAgfSBlbHNlCisg
ICAgICAgIG1fZm9jdXNlZE5vZGUgPSAwOwogCiAgICAgaWYgKG5ld0ZvY3VzZWROb2RlKSB7CiAg
ICAgICAgIGlmIChuZXdGb2N1c2VkTm9kZSA9PSBuZXdGb2N1c2VkTm9kZS0+cm9vdEVkaXRhYmxl
RWxlbWVudCgpICYmICFhY2NlcHRzRWRpdGluZ0ZvY3VzKG5ld0ZvY3VzZWROb2RlLmdldCgpKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCmluZGV4IDE0MDdkN2VlNmVkODhhMTIzMTM2Zjk5NTBlYmZmYWUxYWFi
MGI2ZjUuLmVmZDg2MmE2OTA4YTlkMWIwNWJlMTQ5Yzg5NGY1MWJkNzQ0ZDU3MjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKQEAgLTI4NDksNiArMjg0OSwxMCBAQCB2b2lkIE5vZGU6OmRpc3BhdGNoRm9jdXNF
dmVudCgpCiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5mb2N1
c0V2ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAordm9pZCBOb2RlOjp3aWxsQmx1cigpCit7Cit9
CisKIHZvaWQgTm9kZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoKQogewogICAgIGRpc3BhdGNoRXZlbnQo
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYmx1ckV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCmluZGV4IDlmZjYzMmI0ZjRkOWU2ZGFiZGY0NDZmZTdlMmFiYTJiZWJlZTM1OWMuLmYz
NzgzMDkxNDA4OTg4ODJjNWVkMTlkODhjMDRiYjBkZjBmZmVjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAt
NTUwLDYgKzU1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2so
UGFzc1JlZlB0cjxFdmVudD4gdW5kZXJseWluZ0V2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cyA9
IGZhbHNlLCBib29sIHNob3dQcmVzc2VkTG9vayA9IHRydWUpOwogCiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRm9jdXNFdmVudCgpOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmx1cigpOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaENoYW5nZUV2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoSW5wdXRFdmVudCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYmUzZThlNzk4
N2MxOGI2NmUzMGE4YzQzZTk3MGRlMzljNDQ0ZjhjOC4uMTliNGNlMWY5MmRmYzQyM2MyMDkxNWVm
ZjAwMGE3N2Q1YjE4NTY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCkBAIC00MTQsNiArNDE0LDEyIEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6aGFuZGxlRm9j
dXNFdmVudCgpCiAgICAgSW5wdXRFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQodGhpcywgdGhp
cyk7CiB9CiAKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6d2lsbEJsdXIoKQoreworICAgIG1faW5w
dXRUeXBlLT53aWxsQmx1cigpOworICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxs
Qmx1cigpOworfQorCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmhhbmRsZUJsdXJFdmVudCgpCiB7
CiAgICAgbV9pbnB1dFR5cGUtPmhhbmRsZUJsdXJFdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaAppbmRleCA1YmU3MzY2ODc5NjBmYzlkZGJiM2I5YTY5ZTVjN2IzOTA3
ZDQwOTcwLi5hZWJiZDc3ZDk2MDM1NGY2Yjc5ZjYzYTNlNTEzZGY2ZGU5MDFjNmQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjg3LDYgKzI4Nyw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVl
KCkuaXNFbXB0eSgpOyB9CiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlTdWdnZXN0ZWRWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIHN1Z2dlc3RlZFZhbHVlKCkuaXNFbXB0eSgpOyB9CiAgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUZvY3VzRXZlbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJsdXIoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCk7CiAgICAgdmlydHVhbCBpbnQgY2Fj
aGVkU2VsZWN0aW9uU3RhcnQoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuY2FjaGVkU2VsZWN0aW9u
U3RhcnQoKTsgfQogICAgIHZpcnR1YWwgaW50IGNhY2hlZFNlbGVjdGlvbkVuZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YS5jYWNoZWRTZWxlY3Rpb25FbmQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCmluZGV4IDkwMzJiMWM4ZTgyNTU2NmNlNjczZGVmNTA1NGM1M2E4ODIyNTc4MDEuLjJh
ZDY0ZmY4YmEwZDk4YjBiYzVhYzNmZDExM2M1NDRlMDM1MWIyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAKQEAgLTQwOSw2ICs0MDksMTAgQEAgYm9vbCBJbnB1dFR5cGU6OnNob3VsZFVz
ZUlucHV0TWV0aG9kKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW5wdXRU
eXBlOjp3aWxsQmx1cigpCit7Cit9CisKIHZvaWQgSW5wdXRUeXBlOjpoYW5kbGVCbHVyRXZlbnQo
KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggNDcxNDA1ZGQ4MzcwNThkMGMwN2Fj
MTdhZmY2YmU0MGVkMjA3MjZlMy4uZDFlNzYwZmM1NTM0YzgxMWFhMWY1NTc5MThkODdiYjZiNTE0
NGZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xNzMsNiArMTczLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IGZvcm1Gb3JTdWJtaXNz
aW9uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoKSBjb25z
dDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbEJsdXIoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50
KCk7CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRUb0FueUVsZW1l
bnQpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVN1Y2Nlc3NmdWxTdWJtaXRCdXR0b24oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCAwM2Y0Y2IzNzljM2I3NWMz
YTM1MGM2NDAxZDIwZjMwYjkzYmRlYWMzLi5lYjc0ZjAzZmVhOTg5MDUxZjlkY2I5ZTkyZmFjMWFm
YTU5MTdhNGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC0y
MTEsNyArMjExLDcgQEAgZG91YmxlIE51bWJlcklucHV0VHlwZTo6YWNjZXB0YWJsZUVycm9yKGRv
dWJsZSBzdGVwKSBjb25zdAogICAgIHJldHVybiBzdGVwIC8gcG93KDIuMCwgRkxUX01BTlRfRElH
KTsKIH0KIAotdm9pZCBOdW1iZXJJbnB1dFR5cGU6OmhhbmRsZUJsdXJFdmVudCgpCit2b2lkIE51
bWJlcklucHV0VHlwZTo6d2lsbEJsdXIoKQogewogICAgIC8vIFJlc2V0IHRoZSByZW5kZXJlciB2
YWx1ZSwgd2hpY2ggbWlnaHQgYmUgdW5tYXRjaGVkIHdpdGggdGhlIGVsZW1lbnQgdmFsdWUuCiAg
ICAgZWxlbWVudCgpLT5zZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGZhbHNlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCmluZGV4IGIxNTI4NjZiOTMyMjE4YTVh
MjZiODRjMzU2MWJlMzYzYzM1ZjRlZjEuLmFiZWY3ZWRkNTc0YTc4MTJkNDQ5ZjdlODFlMjk4NTUx
NzFiODg1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaApAQCAtNjMsNyAr
NjMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9Eb3VibGVXaXRoRGVj
aW1hbFBsYWNlcyhjb25zdCBTdHJpbmcmLCBkb3VibGUsIHVuc2lnbmVkKikgY29uc3Q7CiAgICAg
dmlydHVhbCBTdHJpbmcgc2VyaWFsaXplKGRvdWJsZSkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3Vi
bGUgYWNjZXB0YWJsZUVycm9yKGRvdWJsZSkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUJsdXJFdmVudCgpOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmx1cigpOwogICAgIHZpcnR1YWwg
U3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnZlcnRG
cm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBp
c0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94889</attachid>
            <date>2011-05-25 17:41:04 -0700</date>
            <delta_ts>2011-05-26 02:11:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-59071-20110526094102.patch</filename>
            <type>text/plain</type>
            <size>11222</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODczMzgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxMGM4MzQ1OGE1MzI2N2VlZDI1OTFm
Mzk1ZjdhM2ZjMzRjMzYxNjEwLi5kNTc5ZjcxNzM3NWRhNmJjNzA3NzJjMmUzZDRjYTU2OGEzZTY2
ZTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMjUgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4K
KworICAgICAgICBGaXggYSBidWcgdGhhdCA8aW5wdXQgdHlwZT0ibnVtYmVyIj4gZGlzcGF0Y2hl
cyB0d28gYmx1cnMgd2hlbiB0YWJiaW5nCisgICAgICAgIGZyb20gYW4gaW52YWxpZCBudW1iZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MDcxCisK
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LW51bWJlci1ibHVyLXR3aWNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItYmx1ci10d2ljZS5o
dG1sOiBBZGRlZC4KKwogMjAxMS0wNS0yNSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLiBSZWJhc2VsaW5lIHN2ZyB0ZXN0cyBhZnRlciByODcz
MTAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1ibHVy
LXR3aWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVy
LWJsdXItdHdpY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNzdiMTBmZTE3Y2ExMGY1MjE5
YTk1NzY5ZWRiYWUzNzY0YjVmNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LW51bWJlci1ibHVyLXR3aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDgg
QEAKK1RoZXJlIHdhcyBhIGJ1ZyB0aGF0IG1vdmluZyBmb2N1cyB3aXRoIFRBQiBmcm9tIGEgbnVt
YmVyIGlucHV0IHdpdGggYW4gaW52YWxpZCBzdHJpbmcgZGlzcGF0Y2hlZCBhbiBleHRyYSBmb2N1
cyBldmVudCBhbmQgYW4gZXh0cmEgYmx1ciBldmVudC4KKworUEFTUyBudW1PZkZvY3VzIGlzIDEK
K1BBU1MgbnVtT2ZCbHVyIGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC1udW1iZXItYmx1ci10d2ljZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1u
dW1iZXItYmx1ci10d2ljZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NDgyNWVhOTNlNTAwMmYxN2JjOGY1
NzM0MDFiZDc0NTk2YTM5MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LW51bWJlci1ibHVyLXR3aWNlLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPlRoZXJlIHdhcyBhIGJ1ZyB0aGF0IG1vdmlu
ZyBmb2N1cyB3aXRoIFRBQiBmcm9tIGEgbnVtYmVyIGlucHV0IHdpdGggYW4gaW52YWxpZCBzdHJp
bmcgZGlzcGF0Y2hlZCBhbiBleHRyYSBmb2N1cyBldmVudCBhbmQgYW4gZXh0cmEgYmx1ciBldmVu
dC48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPGlucHV0IHR5cGU9bnVtYmVyIGlk
PW51bWJlcj4KKzxpbnB1dCB0eXBlPXRleHQ+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBoYW5kbGVG
b2N1cygpIHsKKyAgICBudW1PZkZvY3VzKys7Cit9CisKK2Z1bmN0aW9uIGhhbmRsZUJsdXIoKSB7
CisgICAgbnVtT2ZCbHVyKys7Cit9CisKK3ZhciBudW1PZkZvY3VzID0gMDsKK3ZhciBudW1PZkJs
dXIgPSAwOwordmFyIG51bSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW1iZXInKTsKK251
bS5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGhhbmRsZUZvY3VzKTsKK251bS5hZGRFdmVudExp
c3RlbmVyKCdibHVyJywgaGFuZGxlQmx1cik7CitudW0uZm9jdXMoKTsKK2RvY3VtZW50LmV4ZWND
b21tYW5kKCdJbnNlcnRUZXh0JywgZmFsc2UsICcxMjMnKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5k
KCdJbnNlcnRUZXh0JywgZmFsc2UsICdhJyk7Cit2YXIgdGFiRXZlbnQgPSBkb2N1bWVudC5jcmVh
dGVFdmVudCgnS2V5Ym9hcmRFdmVudCcpOwordGFiRXZlbnQuaW5pdEtleWJvYXJkRXZlbnQoJ2tl
eWRvd24nLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgJ1UrMDAwOScpOworbnVt
LmRpc3BhdGNoRXZlbnQodGFiRXZlbnQpOworCitzaG91bGRCZSgnbnVtT2ZGb2N1cycsICcxJyk7
CitzaG91bGRCZSgnbnVtT2ZCbHVyJywgJzEnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGRiMjU5NmYxOWU1ZTMyOTdiZGI2YTQwOWExNGRlMTFjODg3Zjk5MjYuLmZiZmE1OGUzZTNkOGVh
MjhhZWQ1ODI3ODQ2OGJkYTgxZjU5OTA2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAor
MjAxMS0wNS0yNSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgorCisgICAgICAgIEZpeCBhIGJ1ZyB0aGF0IDxp
bnB1dCB0eXBlPSJudW1iZXIiPiBkaXNwYXRjaGVzIHR3byBibHVycyB3aGVuIHRhYmJpbmcKKyAg
ICAgICAgZnJvbSBhbiBpbnZhbGlkIG51bWJlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkwNzEKKworICAgICAgICBOdW1iZXJJbnB1dFR5cGU6Omhh
bmRsZUJsdXJFdmVudCgpIGRpc3BhdGNoZWQgYW4gZXh0cmEgZm9jdXMgZXZlbnQKKyAgICAgICAg
YW5kIGFuIGV4dHJhIGJsdXIgZXZlbnQgYmVjYXVzZQorICAgICAgICBTZWxlY3Rpb25Db250cm9s
bGVyOjp0ZXh0V2lsbEJlUmVwbGFjZWQoKSBjYWxsZWQgYnkKKyAgICAgICAgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjp1cGRhdGVGcm9tRWxlbWVudCgpIGZvY3VzZXMgYSBub2RlCisgICAg
ICAgIHdpdGggdGhlIHNlbGVjdGlvbi4KKworICAgICAgICBJbiBvcmRlciB0byBhdm9pZCB0aGlz
IHByb2JsZW0sCisgICAgICAgICAtIEludHJvZHVjZSBOb2RlOjp3aWxsQmx1cigpCisgICAgICAg
ICAgIEl0IGlzIGNhbGxlZCBiZWZvcmUgYW55IHN0YXRlIGNoYW5nZXMgYnkgYSBibHVyIGV2ZW50
LgorICAgICAgICAgLSBDYWxsIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJv
bUVsZW1lbnQoKSBpbiB3aWxsQmx1cigpCisgICAgICAgICAgIEl0IGF2b2lkcyBleHRyYSBmb2N1
cy9ibHVyIGV2ZW50cyBiZWNhdXNlIERvY3VtZW50OjptX2ZvY3VzZWROb2RlIGlzCisgICAgICAg
ICAgIHN0aWxsIHRoZSBudW1iZXIgaW5wdXQgZHVyaW5nIHdpbGxCbHVyKCkuCisKKyAgICAgICAg
VGVzdDogZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItYmx1ci10d2ljZS5odG1sCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZvY3Vz
ZWROb2RlKTogQ2FsbHMgTm9kZTo6YmVmb3JlQmx1ZUV2ZW50KCkuCisgICAgICAgICogZG9tL05v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6d2lsbEJsdXIpOgorICAgICAgICAgIERl
ZmF1bHQgZW1wdHkgaW1wbGVtZW50YXRpb24gb2Ygd2lsbEJsdXIoKS4KKyAgICAgICAgKiBkb20v
Tm9kZS5oOiBEZWNsYXJlIHdpbGxCbHVyKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OndpbGxCbHVyKToK
KyAgICAgICAgICBBZGRlZC4gIEl0IGp1c3QgY2FsbHMgSW5wdXRUeXBlOjp3aWxsQmx1cigpLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6aGFuZGxlQmx1ckV2ZW50KToKKyAg
ICAgICAgICBSZW1vdmVkIElucHV0VHlwZTo6aGFuZGxlQmx1ckV2ZW50KCkgY2FsbC4KKyAgICAg
ICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDogRGVjbGFyZSB3aWxsQmx1cigpLgorICAgICAg
ICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6d2ls
bEJsdXIpOiBEZWZhdWx0IGVtcHR5IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlOjpoYW5kbGVCbHVyRXZlbnQpOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvSW5w
dXRUeXBlLmg6IERlY2xhcmUgd2lsbEJsdXIoKSwgcmVtb3ZlIGhhbmRsZUJsdXJFdmVudCgpLgor
ICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok51
bWJlcklucHV0VHlwZTo6d2lsbEJsdXIpOgorICAgICAgICAgIE1vdmUgdGhlIGNvZGUgaW4gaGFu
ZGxlQmx1ckV2ZW50KCkgaGVyZS4KKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOiBE
ZWNsYXJlIHdpbGxCbHVyKCkuCisKIDIwMTEtMDUtMjUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2Jp
bnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGJjOTg1YjlhMjQ4NzE3NzdlOGQ5ZDA2OTEwMDIxYmRm
MTQyMzU2MjcuLjg0MGQ1NjEyMGI2NjllZmUzMDc3MGYwODkxMmRmMzdjNmViMDZlZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzIyMCwxMCArMzIyMCwxMiBAQCBib29sIERvY3VtZW50
OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKQogCiAgICAg
Ym9vbCBmb2N1c0NoYW5nZUJsb2NrZWQgPSBmYWxzZTsKICAgICBSZWZQdHI8Tm9kZT4gb2xkRm9j
dXNlZE5vZGUgPSBtX2ZvY3VzZWROb2RlOwotICAgIG1fZm9jdXNlZE5vZGUgPSAwOwogCiAgICAg
Ly8gUmVtb3ZlIGZvY3VzIGZyb20gdGhlIGV4aXN0aW5nIGZvY3VzIG5vZGUgKGlmIGFueSkKLSAg
ICBpZiAob2xkRm9jdXNlZE5vZGUgJiYgIW9sZEZvY3VzZWROb2RlLT5pbkRldGFjaCgpKSB7IAor
ICAgIGlmIChvbGRGb2N1c2VkTm9kZSAmJiAhb2xkRm9jdXNlZE5vZGUtPmluRGV0YWNoKCkpIHsK
KyAgICAgICAgLy8gd2lsbEJsdXIoKSBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhbnkgc3RhdHVz
IGNoYW5nZXMuCisgICAgICAgIG9sZEZvY3VzZWROb2RlLT53aWxsQmx1cigpOworICAgICAgICBt
X2ZvY3VzZWROb2RlID0gMDsKICAgICAgICAgaWYgKG9sZEZvY3VzZWROb2RlLT5hY3RpdmUoKSkK
ICAgICAgICAgICAgIG9sZEZvY3VzZWROb2RlLT5zZXRBY3RpdmUoZmFsc2UpOwogCkBAIC0zMjY4
LDcgKzMyNzAsOCBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5v
ZGU+IG5ld0ZvY3VzZWROb2RlKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHZp
ZXcoKS0+c2V0Rm9jdXMoZmFsc2UpOwogICAgICAgICB9Ci0gICAgfQorICAgIH0gZWxzZQorICAg
ICAgICBtX2ZvY3VzZWROb2RlID0gMDsKIAogICAgIGlmIChuZXdGb2N1c2VkTm9kZSkgewogICAg
ICAgICBpZiAobmV3Rm9jdXNlZE5vZGUgPT0gbmV3Rm9jdXNlZE5vZGUtPnJvb3RFZGl0YWJsZUVs
ZW1lbnQoKSAmJiAhYWNjZXB0c0VkaXRpbmdGb2N1cyhuZXdGb2N1c2VkTm9kZS5nZXQoKSkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAppbmRleCA3Y2YzMjY2NDc1MWY1OGI3ZTI5NmQwOWE1ZjczZmM5MzUyNzMx
OGFmLi4xNTVlOTU0YTg5OGNiMDg5ZTcyZTY5OTZhMzI2MmY4MjFlMDMzNDExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCkBAIC0yNzMxLDYgKzI3MzEsMTAgQEAgdm9pZCBOb2RlOjpkaXNwYXRjaEZvY3VzRXZl
bnQoKQogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZm9jdXNF
dmVudCwgZmFsc2UsIGZhbHNlKSk7CiB9CiAKK3ZvaWQgTm9kZTo6d2lsbEJsdXIoKQoreworfQor
CiB2b2lkIE5vZGU6OmRpc3BhdGNoQmx1ckV2ZW50KCkKIHsKICAgICBpZiAoZG9jdW1lbnQoKS0+
cGFnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggYjlkYTk0ZjIwOGZiNTczYmU1YTczZTgxOGZlYTExNTk5
N2QzMjBhYi4uMmM2ZjRiMjY3MjBkMDgwMmY2Y2I5ODk2OWY0YWNhODFmY2M5ZGEyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCkBAIC01NTUsNiArNTU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hTaW11
bGF0ZWRDbGljayhQYXNzUmVmUHRyPEV2ZW50PiB1bmRlcmx5aW5nRXZlbnQsIGJvb2wgc2VuZE1v
dXNlRXZlbnRzID0gZmFsc2UsIGJvb2wgc2hvd1ByZXNzZWRMb29rID0gdHJ1ZSk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHdpbGxC
bHVyKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KCk7CiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJ
bnB1dEV2ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRl
eCA5ZGUwNTg5OTZjNTRkNjBiYjJlNTU3NGI0OGFiNjJhZDdlNGY0NjM4Li4zZDljN2UwMjQ4MGE0
ZjI5M2Y2ZWRiZThhZWQ3YWJkODBjOTVlMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKQEAgLTQ5NiwxMCArNDk2LDE0IEBAIHZvaWQgSFRNTElucHV0RWxlbWVu
dDo6aGFuZGxlRm9jdXNFdmVudCgpCiAgICAgICAgIGRvY3VtZW50KCktPnNldFVzZVNlY3VyZUtl
eWJvYXJkRW50cnlXaGVuQWN0aXZlKHRydWUpOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OmhhbmRsZUJsdXJFdmVudCgpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OndpbGxCbHVyKCkKIHsK
LSAgICBtX2lucHV0VHlwZS0+aGFuZGxlQmx1ckV2ZW50KCk7CisgICAgbV9pbnB1dFR5cGUtPndp
bGxCbHVyKCk7CisgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxCbHVyKCk7Cit9
CiAKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6aGFuZGxlQmx1ckV2ZW50KCkKK3sKICAgICBpZiAo
IWlzVGV4dEZpZWxkKCkpCiAgICAgICAgIHJldHVybjsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1
bWVudCgpLT5mcmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRl
eCAzNTY2ZTNkZTYwNjVjYTVhNDQ3NjQ3OGU4ZmQzMTc2MmQ1ZTVlMjM2Li43YWZmZGZlNGU0NWI5
Zjk2ZTliYWVmMGIwOTI4ZjU2MDgxMTc4ODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaApAQCAtMzAxLDYgKzMwMSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGlzRW1wdHlWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlKCkuaXNFbXB0eSgpOyB9CiAgICAg
dmlydHVhbCBib29sIGlzRW1wdHlTdWdnZXN0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHN1Z2dl
c3RlZFZhbHVlKCkuaXNFbXB0eSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUZvY3VzRXZl
bnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJsdXIoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlQmx1ckV2ZW50KCk7CiAgICAgdmlydHVhbCBpbnQgY2FjaGVkU2VsZWN0aW9uU3RhcnQoKSBj
b25zdCB7IHJldHVybiBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0OyB9CiAgICAgdmlydHVhbCBpbnQg
Y2FjaGVkU2VsZWN0aW9uRW5kKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTZWxlY3Rpb25FbmQ7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCAzNjM1YjZlYzllODk1NWRiYTcyOTA0
MTk2NDVjMTk1ODU2MDM2YzIyLi45YjZmZTFiYmMwOWNjODFkOGQwYzhiMTE3YjkzYmZkYjhlZjRl
MWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC00MTAsNyArNDEwLDcgQEAgYm9v
bCBJbnB1dFR5cGU6OnNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpoYW5kbGVCbHVyRXZlbnQoKQordm9pZCBJbnB1dFR5
cGU6OndpbGxCbHVyKCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggNmNlN2Q0
MDRiNDAxNGMwOGQ5YjJjN2ZhYzg4NDJlMDBhOTcxODczOS4uZjJiOGFjNDVlNjRkNTI4MGFmNmIw
MzA5NGI2OGUxN2Q5ODJhNGZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xNzgsNyAr
MTc4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+
IGZvcm1Gb3JTdWJtaXNzaW9uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRG
b2N1c2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlSW5wdXRNZXRob2Qo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCk7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxCbHVyKCk7CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29s
IHNlbmRUb0FueUVsZW1lbnQpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVN1Y2Nlc3NmdWxTdWJt
aXRCdXR0b24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCmluZGV4
IDAzZjRjYjM3OWMzYjc1YzNhMzUwYzY0MDFkMjBmMzBiOTNiZGVhYzMuLmViNzRmMDNmZWE5ODkw
NTFmOWRjYjllOTJmYWMxYWZhNTkxN2E0YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklu
cHV0VHlwZS5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCBkb3VibGUgTnVtYmVySW5wdXRUeXBlOjph
Y2NlcHRhYmxlRXJyb3IoZG91YmxlIHN0ZXApIGNvbnN0CiAgICAgcmV0dXJuIHN0ZXAgLyBwb3co
Mi4wLCBGTFRfTUFOVF9ESUcpOwogfQogCi12b2lkIE51bWJlcklucHV0VHlwZTo6aGFuZGxlQmx1
ckV2ZW50KCkKK3ZvaWQgTnVtYmVySW5wdXRUeXBlOjp3aWxsQmx1cigpCiB7CiAgICAgLy8gUmVz
ZXQgdGhlIHJlbmRlcmVyIHZhbHVlLCB3aGljaCBtaWdodCBiZSB1bm1hdGNoZWQgd2l0aCB0aGUg
ZWxlbWVudCB2YWx1ZS4KICAgICBlbGVtZW50KCktPnNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVz
UmVuZGVyZXIoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKaW5kZXgg
YjE1Mjg2NmI5MzIyMThhNWEyNmI4NGMzNTYxYmUzNjNjMzVmNGVmMS4uYWJlZjdlZGQ1NzRhNzgx
MmQ0NDlmN2U4MWUyOTg1NTE3MWI4ODVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9OdW1iZXJJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0
VHlwZS5oCkBAIC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBkb3VibGUgcGFy
c2VUb0RvdWJsZVdpdGhEZWNpbWFsUGxhY2VzKGNvbnN0IFN0cmluZyYsIGRvdWJsZSwgdW5zaWdu
ZWQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmluZyBzZXJpYWxpemUoZG91YmxlKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGRvdWJsZSBhY2NlcHRhYmxlRXJyb3IoZG91YmxlKSBjb25zdDsKLSAgICB2
aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHdpbGxCbHVy
KCk7CiAgICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVh
bCBTdHJpbmcgY29udmVydEZyb21WaXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGlzQWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>