<?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>73304</bug_id>
          
          <creation_ts>2011-11-29 03:38:32 -0800</creation_ts>
          <short_desc>Opening two popup menus by dispatchEvent() makes problems</short_desc>
          <delta_ts>2011-12-14 21:41:05 -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>Forms</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>1</everconfirmed>
          <reporter name="Jing Zhao">jingzhao</reporter>
          <assigned_to name="Jing Zhao">jingzhao</assigned_to>
          <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>510667</commentid>
    <comment_count>0</comment_count>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-11-29 03:38:32 -0800</bug_when>
    <thetext>Revert http://trac.webkit.org/changeset/101337.

The newly added test fast/forms/select-popup-crash.html causes its next test to crash on Linux Debug bot. I&apos;d revert it and send out another fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510669</commentid>
    <comment_count>1</comment_count>
      <attachid>116940</attachid>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-11-29 03:42:29 -0800</bug_when>
    <thetext>Created attachment 116940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510745</commentid>
    <comment_count>2</comment_count>
      <attachid>116962</attachid>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-11-29 07:09:20 -0800</bug_when>
    <thetext>Created attachment 116962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511394</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-29 22:18:58 -0800</bug_when>
    <thetext>Would you show the call stack of the crash please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511446</commentid>
    <comment_count>4</comment_count>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-11-30 00:04:17 -0800</bug_when>
    <thetext>Reproduce the crash in Chromium Linux:
new-run-webkit-tests --debug fast/forms/select-popup-crash.html fast/forms/select-popup-pagekeys.html

Stack trace:
	base::debug::StackTrace::StackTrace() [0x714cb2]
	base::(anonymous namespace)::StackDumpSignalHandler() [0x6d1a15]
	0x7f0c44c6faf0
	WebKit::WebViewImpl::popupClosed() [0x4c11cc]
	WebKit::ChromeClientImpl::popupClosed() [0x4d9e9b]
	WebCore::PopupContainer::notifyPopupHidden() [0xeb247c]
	WebCore::PopupListBox::hidePopup() [0xeb7298]
	WebCore::PopupListBox::abandon() [0xeb6540]
	WebCore::PopupContainer::hide() [0xeb2cd8]
	WebCore::PopupMenuChromium::hide() [0xeb3eac]
	WebCore::PopupMenuChromium::~PopupMenuChromium() [0xeb3d8d]
	WTF::RefCounted&lt;&gt;::deref() [0x4dbe92]
	WTF::derefIfNotNull&lt;&gt;() [0x165c380]
	WTF::RefPtr&lt;&gt;::operator=() [0x165c2d8]
	WebCore::RenderMenuList::~RenderMenuList() [0x16595b5]
	WebCore::RenderObject::arenaDelete() [0x166700d]
	WebCore::RenderObject::destroy() [0x1666e33]
	WebCore::Node::detach() [0xcee50f]
	WebCore::ContainerNode::detach() [0xc75a13]
	WebCore::Element::detach() [0xcd05b1]
	WebCore::HTMLFormControlElement::detach() [0xe59b5f]
	WebCore::ContainerNode::detach() [0xc759df]
	WebCore::Element::detach() [0xcd05b1]
	WebCore::ContainerNode::detach() [0xc759df]
	WebCore::Element::detach() [0xcd05b1]
	WebCore::ContainerNode::detach() [0xc759df]
	WebCore::Element::detach() [0xcd05b1]
	WebCore::ContainerNode::detach() [0xc759df]
	WebCore::Document::detach() [0xc8a75d]
	WebCore::Frame::setView() [0x12f073a]
	WebCore::Frame::createView() [0x12f2e15]
	WebKit::WebFrameImpl::createFrameView() [0x49ac7d]
	WebKit::FrameLoaderClientImpl::makeDocumentView() [0x4e6642]
	WebKit::FrameLoaderClientImpl::transitionToCommittedForNewPage() [0x4ea026]
	WebCore::FrameLoader::transitionToCommitted() [0x125864d]
	WebCore::FrameLoader::commitProvisionalLoad() [0x1257ade]
	WebCore::DocumentLoader::commitIfReady() [0x12398ce]
	WebCore::DocumentLoader::commitLoad() [0x123997c]
	WebCore::DocumentLoader::receivedData() [0x1239be2]
	WebCore::MainResourceLoader::addData() [0x126c9a3]
	WebCore::ResourceLoader::didReceiveData() [0x1280173]
	WebCore::MainResourceLoader::didReceiveData() [0x126ded2]
	WebCore::ResourceLoader::didReceiveData() [0x1280a82]
	WebCore::ResourceHandleInternal::didReceiveData() [0x4fcf1a]
	webkit_glue::WebURLLoaderImpl::Context::OnReceivedData() [0x1ae707c]
	(anonymous namespace)::RequestProxy::NotifyReceivedData() [0x1bb958c]
	base::internal::RunnableAdapter&lt;&gt;::Run() [0x1bbfc85]
	base::internal::InvokeHelper&lt;&gt;::MakeItSo() [0x1bbf678]
	base::internal::Invoker&lt;&gt;::Run() [0x1bbeae0]
	base::Callback&lt;&gt;::Run() [0x68e14f]
	MessageLoop::RunTask() [0x6a91a3]
	MessageLoop::DeferOrRunPendingTask() [0x6a92bd]
	MessageLoop::DoWork() [0x6a9adf]
	base::MessagePumpGlib::HandleDispatch() [0x70609d]
	(anonymous namespace)::WorkSourceDispatch() [0x7055d7]
	0x7f0c4a8cc8c2
	0x7f0c4a8d0748
	0x7f0c4a8d08fc
	base::MessagePumpGtk::RunOnce() [0x707905]
	base::MessagePumpGlib::RunWithDispatcher() [0x705d50]
	base::MessagePumpGlib::Run() [0x70617a]
	MessageLoop::RunInternal() [0x6a8e25]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511501</commentid>
    <comment_count>5</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-30 01:26:02 -0800</bug_when>
    <thetext>Thanks.

The patch looks hacky. IMO, If PopupContainer::showPopup() fails to open a popup, we should not  proceed the following process.  Now I think r101337 was wrong.

Is webwidget created in ChromeClientImpl::popupOpened() correctly deleted for the second popup?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511538</commentid>
    <comment_count>6</comment_count>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-11-30 02:05:35 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Thanks.
&gt; 
&gt; The patch looks hacky. IMO, If PopupContainer::showPopup() fails to open a popup, we should not  proceed the following process.  Now I think r101337 was wrong.
&gt; 
&gt; Is webwidget created in ChromeClientImpl::popupOpened() correctly deleted for the second popup?

Yes it&apos;s deleted as it was.

There are two ways to fix the problem. One is this patch together with 101337 , which only effects popup open and close in WebViewImpl, ensuring no more than one popup is shown or hidden. If there are more than one popups, they are created but not shown.

Another way to fix the problem is like you said not to create the PopupContainer. We need to add an API in ChromeClientImpl to tell if there is an opened popup. This way needs more code change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512625</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-01 01:40:12 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; There are two ways to fix the problem. One is this patch together with 101337 , which only effects popup open and close in WebViewImpl, ensuring no more than one popup is shown or hidden. If there are more than one popups, they are created but not shown.

The current code doesn&apos;t expect craeted-but-not-shown state.  I&apos;m afraid it causes other problems like this bug, or will cause problems in the future.

Another question. If
 - A &lt;select&gt; popup is created and shown,
 - Another &lt;select&gt; popup is created and not shown (r101337),
 - The first &lt;select&gt; popup is closed, then
 - The second &lt;select&gt; is clicked again,
What happens?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513561</commentid>
    <comment_count>8</comment_count>
      <attachid>117579</attachid>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-01 23:44:10 -0800</bug_when>
    <thetext>Created attachment 117579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513566</commentid>
    <comment_count>9</comment_count>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-01 23:47:14 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Another question. If
&gt;  - A &lt;select&gt; popup is created and shown,
&gt;  - Another &lt;select&gt; popup is created and not shown (r101337),
&gt;  - The first &lt;select&gt; popup is closed, then
&gt;  - The second &lt;select&gt; is clicked again,
&gt; What happens?

Yes this is a good case. Both &lt;select&gt;s will be hidden in this case, which is wrong, because the second &lt;select&gt; should be shown.

I tried the other way in the new patch. Could you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513574</commentid>
    <comment_count>10</comment_count>
      <attachid>117579</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-12-02 00:01:12 -0800</bug_when>
    <thetext>Comment on attachment 117579
Patch

Attachment 117579 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10695339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513580</commentid>
    <comment_count>11</comment_count>
      <attachid>117579</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-02 00:21:07 -0800</bug_when>
    <thetext>Comment on attachment 117579
Patch

Attachment 117579 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10725265</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513760</commentid>
    <comment_count>12</comment_count>
      <attachid>117579</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-02 08:00:47 -0800</bug_when>
    <thetext>Comment on attachment 117579
Patch

Attachment 117579 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10711369</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514138</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-02 14:16:15 -0800</bug_when>
    <thetext>Anyway, I&apos;ll roll r101337 out. Crashing the next test is not good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514189</commentid>
    <comment_count>14</comment_count>
      <attachid>117579</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-02 14:50:32 -0800</bug_when>
    <thetext>Comment on attachment 117579
Patch

Looks reasonable, but we can&apos;t break the other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514905</commentid>
    <comment_count>15</comment_count>
      <attachid>117841</attachid>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-04 22:08:54 -0800</bug_when>
    <thetext>Created attachment 117841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514906</commentid>
    <comment_count>16</comment_count>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-04 22:13:25 -0800</bug_when>
    <thetext>The new patch should fix the build on qt, gtk, efl and win, but popupIsVisible() simply returns false, so the new test may fail on these platforms.

Should I write different descriptions in different ChangeLogs?

Also I&apos;m not sure if I break mac build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515002</commentid>
    <comment_count>17</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-05 03:15:23 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; Another question. If
&gt; &gt;  - A &lt;select&gt; popup is created and shown,
&gt; &gt;  - Another &lt;select&gt; popup is created and not shown (r101337),
&gt; &gt;  - The first &lt;select&gt; popup is closed, then
&gt; &gt;  - The second &lt;select&gt; is clicked again,
&gt; &gt; What happens?
&gt; 
&gt; Yes this is a good case. Both &lt;select&gt;s will be hidden in this case, which is wrong, because the second &lt;select&gt; should be shown.

I found the latest WebKit + Safari had a similar problem.  So changing non-Chromium code is reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515005</commentid>
    <comment_count>18</comment_count>
      <attachid>117841</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-05 03:20:08 -0800</bug_when>
    <thetext>Comment on attachment 117841
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [Chromium] Fix assertion fails when opening two popup menus.

Please update this line.  This is not a Chromium-specific issue now.

&gt; Source/WebCore/page/ChromeClient.h:305
&gt; +        virtual bool popupIsVisible() = 0;

Please add a comment so that developers for non-Chromium ports can know what this is.

&gt; Source/WebKit2/ChangeLog:14
&gt; +        By using element.dispatchEvent(), a user written script can open two
&gt; +        popup menus, which causes the assertion in WebViewImpl::popupOpened()
&gt; +        fail.
&gt; +
&gt; +        Add a popupIsVisible() method in ChromeClientImpl and a wrapper in
&gt; +        Chrome. In RenderMenuList::showPopup(), check if there is an opened
&gt; +        popup menu before opening a new popup menu.

You don&apos;t need to copy the content of WebCore/ChangeLog.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:659
&gt; +    return false;

You should add notImplemented().

&gt; Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp:549
&gt; +    return false;

ditto.

&gt; Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:857
&gt; +    return false;

ditto.

&gt; Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp:717
&gt; +    return false;

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518135</commentid>
    <comment_count>19</comment_count>
      <attachid>118536</attachid>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-08 23:16:20 -0800</bug_when>
    <thetext>Created attachment 118536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518140</commentid>
    <comment_count>20</comment_count>
      <attachid>118536</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-08 23:33:50 -0800</bug_when>
    <thetext>Comment on attachment 118536
Patch

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

&gt; Source/WebCore/page/ChromeClient.h:306
&gt; +        virtual bool popupIsVisible() const { return false; }

Please do not add the implementation. This should be a pure virtual function.
We should implement this function for non-Chromium platforms too, and it&apos;s hard for non-Chromium developers to find this function if this function has the implementation here.

&gt; Source/WebKit/chromium/src/ChromeClientImpl.h:187
&gt; +    virtual bool popupIsVisible() const;

nit: We had better append OVERRIDE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519001</commentid>
    <comment_count>21</comment_count>
      <attachid>118729</attachid>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-11 21:23:02 -0800</bug_when>
    <thetext>Created attachment 118729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519104</commentid>
    <comment_count>22</comment_count>
      <attachid>118766</attachid>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-12 03:34:50 -0800</bug_when>
    <thetext>Created attachment 118766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519107</commentid>
    <comment_count>23</comment_count>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-12 03:37:29 -0800</bug_when>
    <thetext>Comparing with the second last patch, the last patch only updated the bug subject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520471</commentid>
    <comment_count>24</comment_count>
      <attachid>118766</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-13 16:30:20 -0800</bug_when>
    <thetext>Comment on attachment 118766
Patch

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

The code looks good.  I don&apos;t set r+ yet because of some nits.

&gt; Source/WebCore/ChangeLog:12
&gt; +        popup menus, which causes the assertion in WebViewImpl::popupOpened()
&gt; +        fail.
&gt; +
&gt; +        Add a popupIsVisible() method in ChromeClientImpl and a wrapper in

These sentences contains non-WebCore classes.  Please explain WebCore changes in WebCore/ChangeLog.

&gt; Source/WebCore/ChangeLog:25
&gt; +        * loader/EmptyClients.h:
&gt; +        (WebCore::EmptyChromeClient::popupIsVisible):
&gt; +        * page/Chrome.cpp:
&gt; +        (WebCore::Chrome::popupIsVisible):
&gt; +        * page/Chrome.h:
&gt; +        * page/ChromeClient.h:
&gt; +        * rendering/RenderMenuList.cpp:
&gt; +        (WebCore::RenderMenuList::showPopup):

We had better write what is changed for each of files/functions.

&gt; Source/WebCore/loader/EmptyClients.h:143
&gt; +    virtual bool popupIsVisible() const { return false; }

Please add OVERRIDE.

&gt; LayoutTests/ChangeLog:14
&gt; +        By using element.dispatchEvent(), a user written script can open two
&gt; +        popup menus, which causes the assertion in WebViewImpl::popupOpened()
&gt; +        fail.
&gt; +
&gt; +        Add a popupIsVisible() method in ChromeClientImpl and a wrapper in
&gt; +        Chrome. In RenderMenuList::showPopup(), check if there is an opened
&gt; +        popup menu before opening a new popup menu.

I don&apos;t think you need to write this again in LayoutTests/ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520557</commentid>
    <comment_count>25</comment_count>
      <attachid>119128</attachid>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-13 18:09:34 -0800</bug_when>
    <thetext>Created attachment 119128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520575</commentid>
    <comment_count>26</comment_count>
      <attachid>119128</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-13 18:30:33 -0800</bug_when>
    <thetext>Comment on attachment 119128
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520709</commentid>
    <comment_count>27</comment_count>
      <attachid>119128</attachid>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2011-12-13 23:14:07 -0800</bug_when>
    <thetext>Comment on attachment 119128
Patch

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

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:944
&gt; +    return m_webView-&gt;selectPopup();

The return value should be a boolean. please change to &quot;return !!m_webView-&gt;selectPopup();&quot;

Drive-by contents, I am not a reviewer, but have some comments for the patch.

(1) RenderMenuList already has a data member: m_popupIsVisible to indicate its visibility status,  The new method named popupIsVisible may make people by contrast with m_popupIsVisible. I think it might be better to name it hasAnotherOpenedPopup
(2) The last patch missed the WebKit mac port, please change that port as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520720</commentid>
    <comment_count>28</comment_count>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-13 23:27:33 -0800</bug_when>
    <thetext>I agree popupIsVisible is probably not a good name..

Kent, are you OK with the new name Johnny suggested, hasAnotherOpenedPopup? If you are OK with it, I&apos;ll update it in all files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520728</commentid>
    <comment_count>29</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-13 23:38:33 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; I agree popupIsVisible is probably not a good name..
&gt; 
&gt; Kent, are you OK with the new name Johnny suggested, hasAnotherOpenedPopup? If you are OK with it, I&apos;ll update it in all files.

&apos;Another&apos; is meaningless in Chrome/ChromeClient. &apos;hasOpenedPopup()&apos;, &apos;hasVisiblePopup()&apos;, or something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520740</commentid>
    <comment_count>30</comment_count>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-14 00:08:44 -0800</bug_when>
    <thetext>Thanks. I&apos;ll change it to hasOpenedPopup().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520745</commentid>
    <comment_count>31</comment_count>
      <attachid>119128</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-14 00:23:46 -0800</bug_when>
    <thetext>Comment on attachment 119128
Patch

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

&gt; LayoutTests/ChangeLog:9
&gt; +        * fast/forms/select-popup-crash-expected.txt: Added.
&gt; +        * fast/forms/select-popup-crash.html: Added.

BTW, I&apos;d like to move them to fast/forms/select/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520810</commentid>
    <comment_count>32</comment_count>
      <attachid>119186</attachid>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-14 02:26:59 -0800</bug_when>
    <thetext>Created attachment 119186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520828</commentid>
    <comment_count>33</comment_count>
      <attachid>119186</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-14 03:39:55 -0800</bug_when>
    <thetext>Comment on attachment 119186
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521545</commentid>
    <comment_count>34</comment_count>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-14 18:06:37 -0800</bug_when>
    <thetext>Hi Kent,

Could you set commit-queue+ on this patch? Or should I wait for another reviewer?

Thanks,
Jing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521547</commentid>
    <comment_count>35</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-14 18:07:38 -0800</bug_when>
    <thetext>Please set commit-queue?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521603</commentid>
    <comment_count>36</comment_count>
      <attachid>119186</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-14 20:16:42 -0800</bug_when>
    <thetext>Comment on attachment 119186
Patch

Clearing flags on attachment: 119186

Committed r102874: &lt;http://trac.webkit.org/changeset/102874&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521604</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-14 20:16:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521620</commentid>
    <comment_count>38</comment_count>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-14 20:43:36 -0800</bug_when>
    <thetext>Looks like I broke Mac and WinCE builds. Preparing a patch to fix them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521624</commentid>
    <comment_count>39</comment_count>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-14 21:07:52 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521625</commentid>
    <comment_count>40</comment_count>
      <attachid>119369</attachid>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-14 21:07:57 -0800</bug_when>
    <thetext>Created attachment 119369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521626</commentid>
    <comment_count>41</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-14 21:10:04 -0800</bug_when>
    <thetext>Mac build fix landed on http://trac.webkit.org/changeset/102879.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521627</commentid>
    <comment_count>42</comment_count>
      <attachid>119369</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-14 21:10:38 -0800</bug_when>
    <thetext>Comment on attachment 119369
Patch

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

&gt; Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:70
&gt; +#import &lt;WebCore/NotImplemented.h&gt;

Please revert this change as I&apos;ve already made it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521634</commentid>
    <comment_count>43</comment_count>
      <attachid>119370</attachid>
    <who name="Jing Zhao">jingzhao</who>
    <bug_when>2011-12-14 21:23:55 -0800</bug_when>
    <thetext>Created attachment 119370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521641</commentid>
    <comment_count>44</comment_count>
      <attachid>119370</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-14 21:40:56 -0800</bug_when>
    <thetext>Comment on attachment 119370
Patch

Clearing flags on attachment: 119370

Committed r102883: &lt;http://trac.webkit.org/changeset/102883&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521642</commentid>
    <comment_count>45</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-14 21:41:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116940</attachid>
            <date>2011-11-29 03:42:29 -0800</date>
            <delta_ts>2011-11-29 07:09:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73304-20111129194227.patch</filename>
            <type>text/plain</type>
            <size>4505</size>
            <attacher name="Jing Zhao">jingzhao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDEzNTMpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2
IEBACisyMDExLTExLTI5ICBKaW5nIFpoYW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2ZXJ0IDEwMTMzNzogQXNzZXJ0aW9uIGZhaWxzIHdoZW4gb3BlbmluZyB0d28gcG9w
dXAgbWVudXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTczMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIG5ld2x5IGFkZGVkIHRlc3QgZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2guaHRtbCBj
YXVzZXMgaXRzCisgICAgICAgIG5leHQgdGVzdCB0byBjcmFzaCBvbiBMaW51eCBEZWJ1ZyBib3Qu
CisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6cG9wdXBPcGVuZWQpOgorCiAyMDExLTExLTI5ICBKaW5nIFpoYW8gIDxqaW5nemhh
b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQXNzZXJ0aW9uIGZhaWxzIHdoZW4gb3BlbmluZyB0
d28gcG9wdXAgbWVudXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAJKHJldmlzaW9uIDEwMTM0NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTY2LDggKzk2Niw4IEBAIGJvb2wg
V2ViVmlld0ltcGw6OnByb3BhZ2F0ZVNjcm9sbChTY3JvbGwKIHZvaWQgIFdlYlZpZXdJbXBsOjpw
b3B1cE9wZW5lZChXZWJDb3JlOjpQb3B1cENvbnRhaW5lciogcG9wdXBDb250YWluZXIpCiB7CiAg
ICAgaWYgKHBvcHVwQ29udGFpbmVyLT5wb3B1cFR5cGUoKSA9PSBXZWJDb3JlOjpQb3B1cENvbnRh
aW5lcjo6U2VsZWN0KSB7Ci0gICAgICAgIGlmICghbV9zZWxlY3RQb3B1cCkKLSAgICAgICAgICAg
IG1fc2VsZWN0UG9wdXAgPSBwb3B1cENvbnRhaW5lcjsKKyAgICAgICAgQVNTRVJUKCFtX3NlbGVj
dFBvcHVwKTsKKyAgICAgICAgbV9zZWxlY3RQb3B1cCA9IHBvcHVwQ29udGFpbmVyOwogICAgIH0K
IH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTAxMzUzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMjkgIEppbmcgWmhhbyAg
PGppbmd6aGFvQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZlcnQgMTAxMzM3OiBBc3NlcnRp
b24gZmFpbHMgd2hlbiBvcGVuaW5nIHR3byBwb3B1cCBtZW51cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbmV3bHkgYWRkZWQgdGVzdCBmYXN0L2Zv
cm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sIGNhdXNlcyBpdHMKKyAgICAgICAgbmV4dCB0ZXN0
IHRvIGNyYXNoIG9uIExpbnV4IERlYnVnIGJvdC4KKworICAgICAgICAqIGZhc3QvZm9ybXMvc2Vs
ZWN0LXBvcHVwLWNyYXNoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sOiBSZW1vdmVkLgorCiAyMDExLTExLTI5ICBDc2Fi
YSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgU1ZHIDxwYXRoPiBE
UlQgZHVtcHMgaGF2ZSByb3VuZGluZyBwcm9ibGVtcyBhY3Jvc3MgcGxhdGZvcm1zCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2gtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxMDEzNDUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nl
bGVjdC1wb3B1cC1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMCww
IEBACi08c2VsZWN0PiB0ZXN0IGZvciBvcGVuaW5nIHR3byBwb3B1cCBtZW51cy4KLQotUEFTUyBp
ZiB0aGUgdGVzdCBkaWRuJ3QgY3Jhc2guCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zZWxlY3QtcG9wdXAtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sCShyZXZpc2lvbiAxMDEzNDUpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUzICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MPgotPGh0bWw+Ci08aGVhZD4KLTwvaGVh
ZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj4mbHQ7c2VsZWN0PiB0ZXN0IGZvciBvcGVu
aW5nIHR3byBwb3B1cCBtZW51cy48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxwIGlk
PSJkZWJ1ZyI+UEFTUyBpZiB0aGUgdGVzdCBkaWRuJ3QgY3Jhc2guPC9wPgotPHNjcmlwdD4KLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0KLSAgICB2YXIgcGFyZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci0gICAgcGFyZW50LmlubmVySFRNTCA9ICc8c2VsZWN0IGlkPSJzbDEi
PicKLSAgICAgICAgKyAnPG9wdGlvbj5vbmU8L29wdGlvbj4nCi0gICAgICAgICsgJzxvcHRpb24+
dHdvPC9vcHRpb24+JwotICAgICAgICArICc8b3B0aW9uPnRocmVlPC9vcHRpb24+JwotICAgICAg
ICArICc8b3B0aW9uPmZvdXI8L29wdGlvbj4nCi0gICAgICAgICsgJzxvcHRpb24+Zml2ZTwvb3B0
aW9uPicKLSAgICAgICAgKyAnPG9wdGlvbj5zaXg8L29wdGlvbj4nCi0gICAgICAgICsgJzxvcHRp
b24+c2V2ZW48L29wdGlvbj4nCi0gICAgICAgICsgJzxvcHRpb24+ZWlnaHQ8L29wdGlvbj4nCi0g
ICAgICAgICsgJzxvcHRpb24+bmluZTwvb3B0aW9uPicKLSAgICAgICAgKyAnPG9wdGlvbj50ZW48
L29wdGlvbj4nCi0gICAgICAgICsgJzxvcHRpb24+ZWxldmVuPC9vcHRpb24+JwotICAgICAgICAr
ICc8b3B0aW9uPnR3ZWx2ZTwvb3B0aW9uPicKLSAgICAgICAgKyAnPG9wdGlvbj50aGlydGVlbjwv
b3B0aW9uPicKLSAgICAgICAgKyAnPG9wdGlvbj5mb3VydGVlbjwvb3B0aW9uPicKLSAgICAgICAg
KyAnPG9wdGlvbj5maWZ0ZWVuPC9vcHRpb24+JwotICAgICAgICArICc8b3B0aW9uPnNpeHRlZW48
L29wdGlvbj4nCi0gICAgICAgICsgJzxvcHRpb24+c2V2ZW50ZWVuPC9vcHRpb24+JwotICAgICAg
ICArICc8L3NlbGVjdD4nCi0gICAgICAgICsgJzxzZWxlY3QgaWQ9InNsMiI+JwotICAgICAgICAr
ICc8b3B0aW9uPm9uZTwvb3B0aW9uPicKLSAgICAgICAgKyAnPG9wdGlvbj50d288L29wdGlvbj4n
Ci0gICAgICAgICsgJzxvcHRpb24+dGhyZWU8L29wdGlvbj4nCi0gICAgICAgICsgJzwvc2VsZWN0
Pic7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwYXJlbnQpOwotCi0gICAgZnVuY3Rp
b24gbW91c2VEb3duT25TZWxlY3Qoc2VsSWQpCi0gICAgewotICAgICAgICB2YXIgc2wgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChzZWxJZCk7Ci0gICAgICAgIHZhciBldmVudCA9IGRvY3VtZW50
LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50Iik7Ci0gICAgICAgIGV2ZW50LmluaXRNb3VzZUV2ZW50
KCJtb3VzZWRvd24iLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgMSwgc2wub2Zm
c2V0TGVmdCwgc2wub2Zmc2V0VG9wLCBzbC5vZmZzZXRMZWZ0LCBzbC5vZmZzZXRUb3AsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBkb2N1bWVudCk7Ci0gICAgICAgIHNsLmRpc3BhdGNo
RXZlbnQoZXZlbnQpOwotICAgIH0KLQotICAgIG1vdXNlRG93bk9uU2VsZWN0KCJzbDEiKTsKLSAg
ICBtb3VzZURvd25PblNlbGVjdCgic2wyIik7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116962</attachid>
            <date>2011-11-29 07:09:20 -0800</date>
            <delta_ts>2011-12-01 23:44:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73304-20111129230918.patch</filename>
            <type>text/plain</type>
            <size>3926</size>
            <attacher name="Jing Zhao">jingzhao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTM2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDExLTExLTI5ICBKaW5nIFpo
YW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IGEgZmFpbGVkIGFzc2Vy
dGlvbiBjYXVzZWQgYnkgcjEwMTMzNworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBCeSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMDEzMzcs
IGEgcG9wdXAgbWVudSB3b24ndCBzaG93IGlmCisgICAgICAgIHRoZXJlIGlzIGFuIG9wZW5lZCBw
b3B1cCBtZW51LiBCdXQgUG9wdXBDb250YWluZXI6Om5vdGlmeVBvcHVwSGlkZGVuKCkKKyAgICAg
ICAgcnVucyB3aGVuIHRoZSBwb3B1cCBtZW51IGRvZXNuJ3Qgc2hvdywgc28gdGhhdCB0aGUgYXNz
ZXJ0aW9uIGluCisgICAgICAgIFdlYlZpZXdJbXBsOjpwb3B1cENsb3NlZCgpIGZhaWxzLiBVc2Ug
bV9wb3B1cE9wZW4gdG8gYXZvaWQgcnVubmluZyBpdC4KKworICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL1BvcHVwQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwQ29udGFp
bmVyOjpzaG93UG9wdXApOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBDb250YWluZXI6OnNldFBv
cHVwT3BlbmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5o
OgorCiAyMDExLTExLTI5ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbnRyb2R1Y2UgZ2VuZXJpYyBjYXBhYmlsaXRpZXMgY29u
Y2VwdCwgbWlncmF0ZSBkZWJ1Z2dlciBkb21haW4gdG8gZ2VuZXJpYyBjYXBhYmlsaXRpZXMuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBDb250
YWluZXIuY3BwCShyZXZpc2lvbiAxMDEzNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cENvbnRhaW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwOSw3ICsyMDks
NiBAQCB2b2lkIFBvcHVwQ29udGFpbmVyOjpzaG93UG9wdXAoRnJhbWVWaWV3CiAgICAgaWYgKGNo
cm9tZUNsaWVudCkgewogICAgICAgICBJbnRSZWN0IHBvcHVwUmVjdCA9IGZyYW1lUmVjdCgpOwog
ICAgICAgICBjaHJvbWVDbGllbnQtPnBvcHVwT3BlbmVkKHRoaXMsIGxheW91dEFuZENhbGN1bGF0
ZVdpZGdldFJlY3QocG9wdXBSZWN0LmhlaWdodCgpLCBwb3B1cFJlY3QubG9jYXRpb24oKSksIGZh
bHNlKTsKLSAgICAgICAgbV9wb3B1cE9wZW4gPSB0cnVlOwogICAgIH0KIAogICAgIGlmICghbV9s
aXN0Qm94LT5wYXJlbnQoKSkKQEAgLTIyOSw2ICsyMjgsMTEgQEAgdm9pZCBQb3B1cENvbnRhaW5l
cjo6aGlkZVBvcHVwKCkKICAgICBsaXN0Qm94KCktPmhpZGVQb3B1cCgpOwogfQogCit2b2lkIFBv
cHVwQ29udGFpbmVyOjpzZXRQb3B1cE9wZW5lZCgpCit7CisgICAgbV9wb3B1cE9wZW4gPSB0cnVl
OworfQorCiB2b2lkIFBvcHVwQ29udGFpbmVyOjpub3RpZnlQb3B1cEhpZGRlbigpCiB7CiAgICAg
aWYgKCFtX3BvcHVwT3BlbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BvcHVwQ29udGFpbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vUG9wdXBDb250YWluZXIuaAkocmV2aXNpb24gMTAxMzQ1KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBDb250YWluZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtODQsNiArODQsOSBAQCBwdWJsaWM6CiAgICAgLy8gSGlkZXMgdGhlIHBvcHVwLgogICAgIHZv
aWQgaGlkZVBvcHVwKCk7CiAKKyAgICAvLyBTZXQgbV9wb3B1cE9wZW4gdG8gdHJ1ZS4KKyAgICB2
b2lkIHNldFBvcHVwT3BlbmVkKCk7CisKICAgICAvLyBUaGUgcG9wdXAgd2FzIGhpZGRlbi4KICAg
ICB2b2lkIG5vdGlmeVBvcHVwSGlkZGVuKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCShyZXZpc2lvbiAxMDEzNjkpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTExLTI5ICBKaW5nIFpoYW8g
IDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IGEgZmFpbGVkIGFzc2VydGlv
biBjYXVzZWQgYnkgcjEwMTMzNworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBCeSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMDEzMzcsIGEg
cG9wdXAgbWVudSB3b24ndCBzaG93IGlmCisgICAgICAgIHRoZXJlIGlzIGFuIG9wZW5lZCBwb3B1
cCBtZW51LiBCdXQgUG9wdXBDb250YWluZXI6Om5vdGlmeVBvcHVwSGlkZGVuKCkKKyAgICAgICAg
cnVucyB3aGVuIHRoZSBwb3B1cCBtZW51IGRvZXNuJ3Qgc2hvdywgc28gdGhhdCB0aGUgYXNzZXJ0
aW9uIGluCisgICAgICAgIFdlYlZpZXdJbXBsOjpwb3B1cENsb3NlZCgpIGZhaWxzLiBVc2UgbV9w
b3B1cE9wZW4gdG8gYXZvaWQgcnVubmluZyBpdC4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwb3B1cE9wZW5lZCk6CisKIDIw
MTEtMTEtMjkgIEppbmcgWmhhbyAgPGppbmd6aGFvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBB
c3NlcnRpb24gZmFpbHMgd2hlbiBvcGVuaW5nIHR3byBwb3B1cCBtZW51cwpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gMTAxMzQ1KQor
KysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05NjYsOCArOTY2LDEwIEBAIGJvb2wgV2ViVmlld0ltcGw6OnByb3BhZ2F0ZVNjcm9s
bChTY3JvbGwKIHZvaWQgIFdlYlZpZXdJbXBsOjpwb3B1cE9wZW5lZChXZWJDb3JlOjpQb3B1cENv
bnRhaW5lciogcG9wdXBDb250YWluZXIpCiB7CiAgICAgaWYgKHBvcHVwQ29udGFpbmVyLT5wb3B1
cFR5cGUoKSA9PSBXZWJDb3JlOjpQb3B1cENvbnRhaW5lcjo6U2VsZWN0KSB7Ci0gICAgICAgIGlm
ICghbV9zZWxlY3RQb3B1cCkKKyAgICAgICAgaWYgKCFtX3NlbGVjdFBvcHVwKSB7CiAgICAgICAg
ICAgICBtX3NlbGVjdFBvcHVwID0gcG9wdXBDb250YWluZXI7CisgICAgICAgICAgICBwb3B1cENv
bnRhaW5lci0+c2V0UG9wdXBPcGVuZWQoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117579</attachid>
            <date>2011-12-01 23:44:10 -0800</date>
            <delta_ts>2011-12-04 22:08:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73304-20111202154408.patch</filename>
            <type>text/plain</type>
            <size>7432</size>
            <attacher name="Jing Zhao">jingzhao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTc1MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDExLTEyLTAxICBKaW5nIFpo
YW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBGaXggYXNz
ZXJ0aW9uIGZhaWxzIHdoZW4gb3BlbmluZyB0d28gcG9wdXAgbWVudXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIGVsZW1lbnQuZGlzcGF0
Y2hFdmVudCgpLCBhIHVzZXIgd3JpdHRlbiBzY3JpcHQgY2FuIG9wZW4gdHdvCisgICAgICAgIHBv
cHVwIG1lbnVzLCB3aGljaCBjYXVzZXMgdGhlIGFzc2VydGlvbiBpbiBXZWJWaWV3SW1wbDo6cG9w
dXBPcGVuZWQoKQorICAgICAgICBmYWlsLgorCisgICAgICAgIEFkZCBhIHBvcHVwSXNWaXNpYmxl
KCkgbWV0aG9kIGluIENocm9tZUNsaWVudEltcGwgYW5kIGEgd3JhcHBlciBpbgorICAgICAgICBD
aHJvbWUuIEluIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKSwgY2hlY2sgaWYgdGhlcmUgaXMg
YW4gb3BlbmVkCisgICAgICAgIHBvcHVwIG1lbnUgYmVmb3JlIG9wZW5pbmcgYSBuZXcgcG9wdXAg
bWVudS4KKworICAgICAgICBSZXZlcnQgdGhlIHdyb25nIGZpeCBpbiBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8xMDEzMzcuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6cG9wdXBJc1Zpc2libGUp
OgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6
cG9wdXBJc1Zpc2libGUpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFn
ZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCk6CisKIDIwMTEt
MTItMDEgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdIEFkZCBm
dXJ0aGVyIHN1cHBvcnQgZm9yIG5vdGlmaWNhdGlvbnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDEwMTM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTQwLDYgKzE0MCw3IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1l
bnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBwb3B1cElzVmlzaWJsZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCop
IGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFbXB0eVBvcHVwTWVudSgpKTsgfQogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZihuZXcgRW1wdHlTZWFyY2hQ
b3B1cE1lbnUoKSk7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkocmV2aXNpb24gMTAx
MzQ1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01NTUsNiArNTU1LDExIEBAIGJvb2wgQ2hyb21lOjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93
c00KICAgICByZXR1cm4gbV9jbGllbnQtPnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdy
aXRpbmdEaXJlY3Rpb24oKTsKIH0KIAorYm9vbCBDaHJvbWU6OnBvcHVwSXNWaXNpYmxlKCkKK3sK
KyAgICByZXR1cm4gbV9jbGllbnQtPnBvcHVwSXNWaXNpYmxlKCk7Cit9CisKIFBhc3NSZWZQdHI8
UG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZVBvcHVwTWVudShjbGllbnQp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCShyZXZpc2lvbiAxMDEzNDUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzQsNiArMTc0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKTsKICAgICAgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01l
bnVXcml0aW5nRGlyZWN0aW9uKCk7CisgICAgICAgIGJvb2wgcG9wdXBJc1Zpc2libGUoKTsKICAg
ICAgICAgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNl
YXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiAxMDEzNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDIsNiArMzAyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpID0gMDsKICAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0
ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSA9IDA7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBwb3B1cElzVmlzaWJsZSgpID0gMDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0g
MDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCShyZXZpc2lvbiAxMDEzNDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTMsNiArMjkzLDkgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVw
KCkKICAgICBpZiAobV9wb3B1cElzVmlzaWJsZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYg
KGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPnBvcHVwSXNWaXNpYmxlKCkpCisgICAgICAg
IHJldHVybjsKKwogICAgIC8vIENyZWF0ZSBtX2lubmVyQmxvY2sgaGVyZSBzbyBpdCBlbmRzIHVw
IGFzIHRoZSBmaXJzdCBjaGlsZC4KICAgICAvLyBUaGlzIGlzIGltcG9ydGFudCBiZWNhdXNlIG90
aGVyd2lzZSB3ZSBtaWdodCB0cnkgdG8gY3JlYXRlIG1faW5uZXJCbG9jawogICAgIC8vIGluc2lk
ZSB0aGUgc2hvd1BvcHVwIGNhbGwgYW5kIGl0IHdvdWxkIGZhaWwuCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTAxNzUwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0xMi0wMSAg
SmluZyBaaGFvICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0g
Rml4IGFzc2VydGlvbiBmYWlscyB3aGVuIG9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCeSB1c2luZyBlbGVtZW50
LmRpc3BhdGNoRXZlbnQoKSwgYSB1c2VyIHdyaXR0ZW4gc2NyaXB0IGNhbiBvcGVuIHR3bworICAg
ICAgICBwb3B1cCBtZW51cywgd2hpY2ggY2F1c2VzIHRoZSBhc3NlcnRpb24gaW4gV2ViVmlld0lt
cGw6OnBvcHVwT3BlbmVkKCkKKyAgICAgICAgZmFpbC4KKworICAgICAgICBBZGQgYSBwb3B1cElz
VmlzaWJsZSgpIG1ldGhvZCBpbiBDaHJvbWVDbGllbnRJbXBsIGFuZCBhIHdyYXBwZXIgaW4KKyAg
ICAgICAgQ2hyb21lLiBJbiBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCksIGNoZWNrIGlmIHRo
ZXJlIGlzIGFuIG9wZW5lZAorICAgICAgICBwb3B1cCBtZW51IGJlZm9yZSBvcGVuaW5nIGEgbmV3
IHBvcHVwIG1lbnUuCisKKyAgICAgICAgUmV2ZXJ0IHRoZSB3cm9uZyBmaXggaW4gaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTAxMzM3LgorCisgICAgICAgICogc3JjL0Nocm9tZUNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpwb3B1cElz
VmlzaWJsZSk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBz
cmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cG9wdXBP
cGVuZWQpOgorCiAyMDExLTEyLTAxICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gYWRkIHJlZmVycmVyIHBvbGljeSB0byBXZWJDb250
ZXh0TWVudURhdGEKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCShyZXZpc2lvbiAxMDEzNDUpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODg4LDYgKzg4
OCwxMSBAQCBib29sIENocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1BbGlnbm1lCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50SW1wbDo6cG9wdXBJc1Zpc2libGUoKQor
eworICAgIHJldHVybiBtX3dlYlZpZXctPnNlbGVjdFBvcHVwKCk7Cit9CisKIFBhc3NSZWZQdHI8
UG9wdXBNZW51PiBDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAgaWYgKFdlYlZpZXdJbXBsOjp1c2VFeHRlcm5hbFBv
cHVwTWVudXMoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmgJKHJldmlzaW9uIDEwMTM0NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTg0LDYgKzE4NCw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpOwogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01l
bnVXcml0aW5nRGlyZWN0aW9uKCk7CisgICAgdmlydHVhbCBib29sIHBvcHVwSXNWaXNpYmxlKCk7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gMTAxMzQ1KQorKysgU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NjYs
OCArOTY2LDggQEAgYm9vbCBXZWJWaWV3SW1wbDo6cHJvcGFnYXRlU2Nyb2xsKFNjcm9sbAogdm9p
ZCAgV2ViVmlld0ltcGw6OnBvcHVwT3BlbmVkKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiBwb3B1
cENvbnRhaW5lcikKIHsKICAgICBpZiAocG9wdXBDb250YWluZXItPnBvcHVwVHlwZSgpID09IFdl
YkNvcmU6OlBvcHVwQ29udGFpbmVyOjpTZWxlY3QpIHsKLSAgICAgICAgaWYgKCFtX3NlbGVjdFBv
cHVwKQotICAgICAgICAgICAgbV9zZWxlY3RQb3B1cCA9IHBvcHVwQ29udGFpbmVyOworICAgICAg
ICBBU1NFUlQoIW1fc2VsZWN0UG9wdXApOworICAgICAgICBtX3NlbGVjdFBvcHVwID0gcG9wdXBD
b250YWluZXI7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117841</attachid>
            <date>2011-12-04 22:08:54 -0800</date>
            <delta_ts>2011-12-08 23:16:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73304-20111205140851.patch</filename>
            <type>text/plain</type>
            <size>19671</size>
            <attacher name="Jing Zhao">jingzhao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDExLTEyLTA0ICBKaW5nIFpo
YW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBGaXggYXNz
ZXJ0aW9uIGZhaWxzIHdoZW4gb3BlbmluZyB0d28gcG9wdXAgbWVudXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIGVsZW1lbnQuZGlzcGF0
Y2hFdmVudCgpLCBhIHVzZXIgd3JpdHRlbiBzY3JpcHQgY2FuIG9wZW4gdHdvCisgICAgICAgIHBv
cHVwIG1lbnVzLCB3aGljaCBjYXVzZXMgdGhlIGFzc2VydGlvbiBpbiBXZWJWaWV3SW1wbDo6cG9w
dXBPcGVuZWQoKQorICAgICAgICBmYWlsLgorCisgICAgICAgIEFkZCBhIHBvcHVwSXNWaXNpYmxl
KCkgbWV0aG9kIGluIENocm9tZUNsaWVudEltcGwgYW5kIGEgd3JhcHBlciBpbgorICAgICAgICBD
aHJvbWUuIEluIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKSwgY2hlY2sgaWYgdGhlcmUgaXMg
YW4gb3BlbmVkCisgICAgICAgIHBvcHVwIG1lbnUgYmVmb3JlIG9wZW5pbmcgYSBuZXcgcG9wdXAg
bWVudS4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1s
CisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpF
bXB0eUNocm9tZUNsaWVudDo6cG9wdXBJc1Zpc2libGUpOgorICAgICAgICAqIHBhZ2UvQ2hyb21l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cG9wdXBJc1Zpc2libGUpOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTWVudUxpc3Q6OnNob3dQb3B1cCk6CisKIDIwMTEtMTItMDQgIEFuZHJlYXMgS2xpbmcgIDxr
bGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIGJvcmRlci13aWR0aDogaW5pdGlhbCBhbmQgYm9y
ZGVyLWNvbG9yOiBpbml0aWFsIGNhbm5vdCBiZSByZW1vdmVkIHZpYSBDU1NPTS4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDEwMTk2OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTQwLDYg
KzE0MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0Rp
cmVjdGlvbklzTmF0dXJhbCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNl
bGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwb3B1cElzVmlzaWJsZSgpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCopIGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFbXB0eVBvcHVwTWVu
dSgpKTsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNl
YXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZihu
ZXcgRW1wdHlTZWFyY2hQb3B1cE1lbnUoKSk7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNw
cAkocmV2aXNpb24gMTAxOTY5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NTUsNiArNTU1LDExIEBAIGJvb2wgQ2hyb21lOjpzZWxlY3RJdGVt
QWxpZ25tZW50Rm9sbG93c00KICAgICByZXR1cm4gbV9jbGllbnQtPnNlbGVjdEl0ZW1BbGlnbm1l
bnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKIH0KIAorYm9vbCBDaHJvbWU6OnBvcHVw
SXNWaXNpYmxlKCkKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPnBvcHVwSXNWaXNpYmxlKCk7Cit9
CisKIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZVBv
cHVwTWVudShjbGllbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCShyZXZpc2lvbiAxMDE5Njkp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzQs
NiArMTc0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgc2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICAgICAgYm9vbCBzZWxlY3RJdGVtQWxp
Z25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CisgICAgICAgIGJvb2wgcG9wdXBJ
c1Zpc2libGUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1
cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiAxMDE5NjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDIs
NiArMzAyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpID0gMDsKICAgICAgICAgdmlydHVh
bCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSA9
IDA7CisgICAgICAgIHZpcnR1YWwgYm9vbCBwb3B1cElzVmlzaWJsZSgpID0gMDsKICAgICAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVw
TWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCShy
ZXZpc2lvbiAxMDE5NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTMsNiArMjkzLDkgQEAgdm9pZCBSZW5kZXJNZW51
TGlzdDo6c2hvd1BvcHVwKCkKICAgICBpZiAobV9wb3B1cElzVmlzaWJsZSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgaWYgKGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPnBvcHVwSXNWaXNp
YmxlKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIENyZWF0ZSBtX2lubmVyQmxvY2sgaGVy
ZSBzbyBpdCBlbmRzIHVwIGFzIHRoZSBmaXJzdCBjaGlsZC4KICAgICAvLyBUaGlzIGlzIGltcG9y
dGFudCBiZWNhdXNlIG90aGVyd2lzZSB3ZSBtaWdodCB0cnkgdG8gY3JlYXRlIG1faW5uZXJCbG9j
awogICAgIC8vIGluc2lkZSB0aGUgc2hvd1BvcHVwIGNhbGwgYW5kIGl0IHdvdWxkIGZhaWwuCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDE5NzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0xMi0wNCAgSmluZyBaaGFv
ICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gRml4IGFzc2Vy
dGlvbiBmYWlscyB3aGVuIG9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCeSB1c2luZyBlbGVtZW50LmRpc3BhdGNo
RXZlbnQoKSwgYSB1c2VyIHdyaXR0ZW4gc2NyaXB0IGNhbiBvcGVuIHR3bworICAgICAgICBwb3B1
cCBtZW51cywgd2hpY2ggY2F1c2VzIHRoZSBhc3NlcnRpb24gaW4gV2ViVmlld0ltcGw6OnBvcHVw
T3BlbmVkKCkKKyAgICAgICAgZmFpbC4KKworICAgICAgICBBZGQgYSBwb3B1cElzVmlzaWJsZSgp
IG1ldGhvZCBpbiBDaHJvbWVDbGllbnRJbXBsIGFuZCBhIHdyYXBwZXIgaW4KKyAgICAgICAgQ2hy
b21lLiBJbiBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCksIGNoZWNrIGlmIHRoZXJlIGlzIGFu
IG9wZW5lZAorICAgICAgICBwb3B1cCBtZW51IGJlZm9yZSBvcGVuaW5nIGEgbmV3IHBvcHVwIG1l
bnUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cG9wdXBJc1Zpc2libGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6
CisKIDIwMTEtMTItMDQgIEdvcGFsIFJhZ2hhdmFuICA8Z29wYWwuMS5yYWdoYXZhbkBub2tpYS5j
b20+CiAKICAgICAgICAgW1F0XSBjbGVhbnVwIHFtbHRlc3RzLnBybwpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAkocmV2aXNpb24gMTAxOTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NTQsNiArNjU0LDExIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtQWxpZ25t
ZW4KICNlbmRpZgogfQogCitib29sIFdlYkNocm9tZUNsaWVudDo6cG9wdXBJc1Zpc2libGUoKQor
eworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVybiBXZWJQb3B1cE1lbnU6OmNyZWF0ZShtX3Bh
Z2UsIGNsaWVudCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDEwMTk2OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MCw2ICsxNzAsNyBAQCBwcml2YXRlOgogCiAgICAg
dmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRp
bmdEaXJlY3Rpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcG9wdXBJc1Zpc2libGUo
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBj
cmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IE9WRVJSSURF
OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTAxOTcxKQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyMiBAQAorMjAxMS0xMi0wNCAgSmluZyBaaGFvICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtDaHJvbWl1bV0gRml4IGFzc2VydGlvbiBmYWlscyB3aGVuIG9wZW5pbmcgdHdv
IHBvcHVwIG1lbnVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBCeSB1c2luZyBlbGVtZW50LmRpc3BhdGNoRXZlbnQoKSwgYSB1c2VyIHdyaXR0ZW4gc2Ny
aXB0IGNhbiBvcGVuIHR3bworICAgICAgICBwb3B1cCBtZW51cywgd2hpY2ggY2F1c2VzIHRoZSBh
c3NlcnRpb24gaW4gV2ViVmlld0ltcGw6OnBvcHVwT3BlbmVkKCkKKyAgICAgICAgZmFpbC4KKwor
ICAgICAgICBBZGQgYSBwb3B1cElzVmlzaWJsZSgpIG1ldGhvZCBpbiBDaHJvbWVDbGllbnRJbXBs
IGFuZCBhIHdyYXBwZXIgaW4KKyAgICAgICAgQ2hyb21lLiBJbiBSZW5kZXJNZW51TGlzdDo6c2hv
d1BvcHVwKCksIGNoZWNrIGlmIHRoZXJlIGlzIGFuIG9wZW5lZAorICAgICAgICBwb3B1cCBtZW51
IGJlZm9yZSBvcGVuaW5nIGEgbmV3IHBvcHVwIG1lbnUuCisKKyAgICAgICAgKiBzcmMvQ2hyb21l
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnBvcHVw
SXNWaXNpYmxlKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgorCiAyMDExLTEy
LTA0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLiAgUm9sbGVkIERFUFMuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gMTAxOTY5KQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg4Niw2ICs4ODYsMTEgQEAgYm9vbCBDaHJvbWVDbGllbnRJbXBsOjpzZWxlY3RJdGVt
QWxpZ25tZQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIENocm9tZUNsaWVudEltcGw6OnBv
cHVwSXNWaXNpYmxlKCkKK3sKKyAgICByZXR1cm4gbV93ZWJWaWV3LT5zZWxlY3RQb3B1cCgpOwor
fQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIGlmIChXZWJWaWV3SW1w
bDo6dXNlRXh0ZXJuYWxQb3B1cE1lbnVzKCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCShyZXZpc2lvbiAxMDE5NjkpCisrKyBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE4NCw2ICsxODQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFs
aWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBw
b3B1cElzVmlzaWJsZSgpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTk3MSkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDExLTEyLTA0ICBKaW5nIFpo
YW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBGaXggYXNz
ZXJ0aW9uIGZhaWxzIHdoZW4gb3BlbmluZyB0d28gcG9wdXAgbWVudXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIGVsZW1lbnQuZGlzcGF0
Y2hFdmVudCgpLCBhIHVzZXIgd3JpdHRlbiBzY3JpcHQgY2FuIG9wZW4gdHdvCisgICAgICAgIHBv
cHVwIG1lbnVzLCB3aGljaCBjYXVzZXMgdGhlIGFzc2VydGlvbiBpbiBXZWJWaWV3SW1wbDo6cG9w
dXBPcGVuZWQoKQorICAgICAgICBmYWlsLgorCisgICAgICAgIEFkZCBhIHBvcHVwSXNWaXNpYmxl
KCkgbWV0aG9kIGluIENocm9tZUNsaWVudEltcGwgYW5kIGEgd3JhcHBlciBpbgorICAgICAgICBD
aHJvbWUuIEluIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKSwgY2hlY2sgaWYgdGhlcmUgaXMg
YW4gb3BlbmVkCisgICAgICAgIHBvcHVwIG1lbnUgYmVmb3JlIG9wZW5pbmcgYSBuZXcgcG9wdXAg
bWVudS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OnBvcHVwSXNWaXNpYmxlKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKwogMjAxMS0xMi0wNCAgS2Fu
Z2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gRml4IGJy
b2tlbiBVVEYtOCBjaGFyYWN0ZXJzIGlzc3VlIG9uIGVkaXRvciBjb21tYW5kLgpJbmRleDogU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
Y3BwCShyZXZpc2lvbiAxMDE5NjkpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDQsNiArNTQ0LDExIEBA
IGJvb2wgQ2hyb21lQ2xpZW50RWZsOjpzZWxlY3RJdGVtQWxpZ25tZW4KICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50RWZsOjpwb3B1cElzVmlzaWJsZSgpCit7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50RWZs
OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVFZmwoY2xpZW50KSk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAkocmV2
aXNpb24gMTAxOTY5KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50RWZsLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw2ICsxNjcsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0Rp
cmVjdGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBwb3B1cElzVmlzaWJsZSgpOwogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
KSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cJKHJldmlzaW9uIDEwMTk3MSkKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDExLTEyLTA0ICBKaW5nIFpoYW8gIDxq
aW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBGaXggYXNzZXJ0aW9u
IGZhaWxzIHdoZW4gb3BlbmluZyB0d28gcG9wdXAgbWVudXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIGVsZW1lbnQuZGlzcGF0Y2hFdmVu
dCgpLCBhIHVzZXIgd3JpdHRlbiBzY3JpcHQgY2FuIG9wZW4gdHdvCisgICAgICAgIHBvcHVwIG1l
bnVzLCB3aGljaCBjYXVzZXMgdGhlIGFzc2VydGlvbiBpbiBXZWJWaWV3SW1wbDo6cG9wdXBPcGVu
ZWQoKQorICAgICAgICBmYWlsLgorCisgICAgICAgIEFkZCBhIHBvcHVwSXNWaXNpYmxlKCkgbWV0
aG9kIGluIENocm9tZUNsaWVudEltcGwgYW5kIGEgd3JhcHBlciBpbgorICAgICAgICBDaHJvbWUu
IEluIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKSwgY2hlY2sgaWYgdGhlcmUgaXMgYW4gb3Bl
bmVkCisgICAgICAgIHBvcHVwIG1lbnUgYmVmb3JlIG9wZW5pbmcgYSBuZXcgcG9wdXAgbWVudS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cG9wdXBJc1Zpc2libGUpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorCiAyMDExLTEyLTA0ICBNYXJpbyBTYW5jaGV6
IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR3RrXSBDaGVjayBmb3Ig
dGhlIGxvYWQtY29tcGxldGUgZXZlbnQgb25seSBpbiB0aGUgdW5pdCB0ZXN0cy4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcAkocmV2aXNpb24gMTAxOTY5KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUyLDYgKzg1MiwxMSBA
QCBib29sIENocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVudEZvCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50Ojpwb3B1cElzVmlzaWJsZSgpCit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gQ2hyb21lQ2xp
ZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVHdGsoY2xpZW50KSk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaAkocmV2aXNpb24gMTAxOTY5KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw2ICsxNDIsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0
ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKKyAgICAgICAgdmlydHVh
bCBib29sIHBvcHVwSXNWaXNpYmxlKCk7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogI2lmIEVOQUJMRShWSURFTykKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMDE5NzEpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDExLTEyLTA0ICBKaW5nIFpoYW8gIDxq
aW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBGaXggYXNzZXJ0aW9u
IGZhaWxzIHdoZW4gb3BlbmluZyB0d28gcG9wdXAgbWVudXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIGVsZW1lbnQuZGlzcGF0Y2hFdmVu
dCgpLCBhIHVzZXIgd3JpdHRlbiBzY3JpcHQgY2FuIG9wZW4gdHdvCisgICAgICAgIHBvcHVwIG1l
bnVzLCB3aGljaCBjYXVzZXMgdGhlIGFzc2VydGlvbiBpbiBXZWJWaWV3SW1wbDo6cG9wdXBPcGVu
ZWQoKQorICAgICAgICBmYWlsLgorCisgICAgICAgIEFkZCBhIHBvcHVwSXNWaXNpYmxlKCkgbWV0
aG9kIGluIENocm9tZUNsaWVudEltcGwgYW5kIGEgd3JhcHBlciBpbgorICAgICAgICBDaHJvbWUu
IEluIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKSwgY2hlY2sgaWYgdGhlcmUgaXMgYW4gb3Bl
bmVkCisgICAgICAgIHBvcHVwIG1lbnUgYmVmb3JlIG9wZW5pbmcgYSBuZXcgcG9wdXAgbWVudS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudFF0Ojpwb3B1cElzVmlzaWJsZSk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKwogMjAxMS0xMi0wMiAgSGFqaW1lIE1vcnJp
dGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTAxNzUxIGFuZCByMTAxNzc1LgpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAJKHJldmlzaW9uIDEwMTk2OSkKKysr
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MTIsNiArNzEyLDExIEBAIGJvb2wgQ2hyb21lQ2xpZW50UXQ6OnNlbGVj
dEl0ZW1BbGlnbm1lbnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50
UXQ6OnBvcHVwSXNWaXNpYmxlKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQ
dHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51
UXQoY2xpZW50LCB0aGlzKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCShyZXZpc2lvbiAxMDE5NjkpCisrKyBTb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTE4MSw2ICsxODEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFs
aWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBw
b3B1cElzVmlzaWJsZSgpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0
ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlVmlzaXRlZExpbmtzKCk7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxMDE5NzEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMi0wNCAgSmluZyBaaGFvICA8amluZ3poYW9A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gRml4IGFzc2VydGlvbiBmYWlscyB3
aGVuIG9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCeSB1c2luZyBlbGVtZW50LmRpc3BhdGNoRXZlbnQoKSwgYSB1
c2VyIHdyaXR0ZW4gc2NyaXB0IGNhbiBvcGVuIHR3bworICAgICAgICBwb3B1cCBtZW51cywgd2hp
Y2ggY2F1c2VzIHRoZSBhc3NlcnRpb24gaW4gV2ViVmlld0ltcGw6OnBvcHVwT3BlbmVkKCkKKyAg
ICAgICAgZmFpbC4KKworICAgICAgICBBZGQgYSBwb3B1cElzVmlzaWJsZSgpIG1ldGhvZCBpbiBD
aHJvbWVDbGllbnRJbXBsIGFuZCBhIHdyYXBwZXIgaW4KKyAgICAgICAgQ2hyb21lLiBJbiBSZW5k
ZXJNZW51TGlzdDo6c2hvd1BvcHVwKCksIGNoZWNrIGlmIHRoZXJlIGlzIGFuIG9wZW5lZAorICAg
ICAgICBwb3B1cCBtZW51IGJlZm9yZSBvcGVuaW5nIGEgbmV3IHBvcHVwIG1lbnUuCisKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LXBvcHVwLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAy
MDExLTEyLTA0ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
Q2hyb21pdW1dIFJlYmFzZWxpbmUgb2YgcGxhY2Vob2xkZXIgdGVzdHMgZm9yIHIxMDE3NDIgYW5k
IHIxMDE4NDguCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFz
aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxl
Y3QtcG9wdXAtY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDUgQEAKKzxzZWxlY3Q+IHRlc3QgZm9yIG9wZW5pbmcgdHdvIHBvcHVwIG1lbnVz
LgorCitQQVNTIGlmIHRoZSB0ZXN0IGRpZG4ndCBjcmFzaC4KKworCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC1leHBlY3RlZC50
eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2guaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFk
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPiZsdDtzZWxlY3Q+IHRlc3Qg
Zm9yIG9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHAgaWQ9ImRlYnVnIj5QQVNTIGlmIHRoZSB0ZXN0IGRpZG4ndCBjcmFzaC48L3A+Cis8c2Ny
aXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciBwYXJlbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBwYXJlbnQuaW5uZXJIVE1MID0gJzxzZWxlY3Qg
aWQ9InNsMSI+JworICAgICAgICArICc8b3B0aW9uPm9uZTwvb3B0aW9uPicKKyAgICAgICAgKyAn
PG9wdGlvbj50d288L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+dGhyZWU8L29wdGlvbj4n
CisgICAgICAgICsgJzxvcHRpb24+Zm91cjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5m
aXZlPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPnNpeDwvb3B0aW9uPicKKyAgICAgICAg
KyAnPG9wdGlvbj5zZXZlbjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5laWdodDwvb3B0
aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5uaW5lPC9vcHRpb24+JworICAgICAgICArICc8b3B0
aW9uPnRlbjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5lbGV2ZW48L29wdGlvbj4nCisg
ICAgICAgICsgJzxvcHRpb24+dHdlbHZlPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPnRo
aXJ0ZWVuPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPmZvdXJ0ZWVuPC9vcHRpb24+Jwor
ICAgICAgICArICc8b3B0aW9uPmZpZnRlZW48L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+
c2l4dGVlbjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5zZXZlbnRlZW48L29wdGlvbj4n
CisgICAgICAgICsgJzwvc2VsZWN0PicKKyAgICAgICAgKyAnPHNlbGVjdCBpZD0ic2wyIj4nCisg
ICAgICAgICsgJzxvcHRpb24+b25lPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPnR3bzwv
b3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj50aHJlZTwvb3B0aW9uPicKKyAgICAgICAgKyAn
PC9zZWxlY3Q+JzsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBhcmVudCk7CisKKyAg
ICBmdW5jdGlvbiBtb3VzZURvd25PblNlbGVjdChzZWxJZCkKKyAgICB7CisgICAgICAgIHZhciBz
bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlbElkKTsKKyAgICAgICAgdmFyIGV2ZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTsKKyAgICAgICAgZXZlbnQuaW5pdE1v
dXNlRXZlbnQoIm1vdXNlZG93biIsIHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCAx
LCBzbC5vZmZzZXRMZWZ0LCBzbC5vZmZzZXRUb3AsIHNsLm9mZnNldExlZnQsIHNsLm9mZnNldFRv
cCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRvY3VtZW50KTsKKyAgICAgICAgc2wu
ZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgfQorCisgICAgbW91c2VEb3duT25TZWxlY3QoInNs
MSIpOworICAgIG1vdXNlRG93bk9uU2VsZWN0KCJzbDIiKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nl
bGVjdC1wb3B1cC1jcmFzaC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAg
KyBMRgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118536</attachid>
            <date>2011-12-08 23:16:20 -0800</date>
            <delta_ts>2011-12-11 21:22:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73304-20111209151618.patch</filename>
            <type>text/plain</type>
            <size>9729</size>
            <attacher name="Jing Zhao">jingzhao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjQyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDExLTEyLTA5ICBKaW5nIFpo
YW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IGFzc2VydGlvbiBmYWls
cyB3aGVuIG9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBCeSB1c2luZyBlbGVtZW50LmRpc3BhdGNoRXZlbnQoKSwg
YSB1c2VyIHdyaXR0ZW4gc2NyaXB0IGNhbiBvcGVuIHR3bworICAgICAgICBwb3B1cCBtZW51cywg
d2hpY2ggY2F1c2VzIHRoZSBhc3NlcnRpb24gaW4gV2ViVmlld0ltcGw6OnBvcHVwT3BlbmVkKCkK
KyAgICAgICAgZmFpbC4KKworICAgICAgICBBZGQgYSBwb3B1cElzVmlzaWJsZSgpIG1ldGhvZCBp
biBDaHJvbWVDbGllbnRJbXBsIGFuZCBhIHdyYXBwZXIgaW4KKyAgICAgICAgQ2hyb21lLiBJbiBS
ZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCksIGNoZWNrIGlmIHRoZXJlIGlzIGFuIG9wZW5lZAor
ICAgICAgICBwb3B1cCBtZW51IGJlZm9yZSBvcGVuaW5nIGEgbmV3IHBvcHVwIG1lbnUuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2guaHRtbAorCisgICAgICAg
ICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVD
bGllbnQ6OnBvcHVwSXNWaXNpYmxlKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OnBvcHVwSXNWaXNpYmxlKToKKyAgICAgICAgKiBwYWdlL0No
cm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0
OjpzaG93UG9wdXApOgorCiAyMDExLTEyLTA4ICBNYXJ5IFd1ICA8bWFyeS53dUB0b3JjaG1vYmls
ZS5jb20uY24+CiAKICAgICAgICAgVXBzdHJlYW0gQmxhY2tCZXJyeSBwb3J0aW5nIG9mIE1JTUVU
eXBlUmVnaXN0cnkvS2V5Ym9hcmRFdmVudApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkocmV2
aXNpb24gMTAyNDI2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NTUsNiArNTU1LDExIEBAIGJvb2wgQ2hyb21lOjpzZWxlY3RJdGVtQWxpZ25t
ZW50Rm9sbG93c00KICAgICByZXR1cm4gbV9jbGllbnQtPnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xs
b3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKIH0KIAorYm9vbCBDaHJvbWU6OnBvcHVwSXNWaXNp
YmxlKCkKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPnBvcHVwSXNWaXNpYmxlKCk7Cit9CisKIFBh
c3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZVBvcHVwTWVu
dShjbGllbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCShyZXZpc2lvbiAxMDI0MjYpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzQsNiArMTc0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICAgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50
Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CisgICAgICAgIGJvb2wgcG9wdXBJc1Zpc2li
bGUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+
IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiAxMDI0MjYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDIsNiArMzAy
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJ
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpID0gMDsKICAgICAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSA9IDA7Cisg
ICAgICAgIC8vIENoZWNrcyBpZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAsIGNhbGxlZCBieSBS
ZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkuCisgICAgICAgIHZpcnR1YWwgYm9vbCBwb3B1cElz
VmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9
IDA7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNl
YXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkocmV2aXNpb24gMTAyNDI2
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjkzLDYgKzI5Myw5IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1
cCgpCiAgICAgaWYgKG1fcG9wdXBJc1Zpc2libGUpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlm
IChkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5wb3B1cElzVmlzaWJsZSgpKQorICAgICAg
ICByZXR1cm47CisKICAgICAvLyBDcmVhdGUgbV9pbm5lckJsb2NrIGhlcmUgc28gaXQgZW5kcyB1
cCBhcyB0aGUgZmlyc3QgY2hpbGQuCiAgICAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBv
dGhlcndpc2Ugd2UgbWlnaHQgdHJ5IHRvIGNyZWF0ZSBtX2lubmVyQmxvY2sKICAgICAvLyBpbnNp
ZGUgdGhlIHNob3dQb3B1cCBjYWxsIGFuZCBpdCB3b3VsZCBmYWlsLgpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjQyNikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTItMDkg
IEppbmcgWmhhbyAgPGppbmd6aGFvQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggYXNzZXJ0
aW9uIGZhaWxzIHdoZW4gb3BlbmluZyB0d28gcG9wdXAgbWVudXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIGVsZW1lbnQuZGlzcGF0Y2hF
dmVudCgpLCBhIHVzZXIgd3JpdHRlbiBzY3JpcHQgY2FuIG9wZW4gdHdvCisgICAgICAgIHBvcHVw
IG1lbnVzLCB3aGljaCBjYXVzZXMgdGhlIGFzc2VydGlvbiBpbiBXZWJWaWV3SW1wbDo6cG9wdXBP
cGVuZWQoKQorICAgICAgICBmYWlsLgorCisgICAgICAgIEFkZCBhIHBvcHVwSXNWaXNpYmxlKCkg
bWV0aG9kIGluIENocm9tZUNsaWVudEltcGwgYW5kIGEgd3JhcHBlciBpbgorICAgICAgICBDaHJv
bWUuIEluIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKSwgY2hlY2sgaWYgdGhlcmUgaXMgYW4g
b3BlbmVkCisgICAgICAgIHBvcHVwIG1lbnUgYmVmb3JlIG9wZW5pbmcgYSBuZXcgcG9wdXAgbWVu
dS4KKworICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2hyb21lQ2xpZW50SW1wbDo6cG9wdXBJc1Zpc2libGUpOgorICAgICAgICAqIHNyYy9DaHJv
bWVDbGllbnRJbXBsLmg6CisKIDIwMTEtMTItMDggIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3Nz
aUBnbWFpbC5jb20+CiAKICAgICAgICAgRHJvcCBFTkFCTEVfTk9fTElTVEJPWF9SRU5ERVJJTkcs
IGFuZCBtYWtlIGl0IGEgcnVudGltZSBkZWNpc2lvbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCShyZXZpc2lvbiAxMDI0MjYpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODg4LDYgKzg4OCwxMSBAQCBib29sIENocm9tZUNsaWVudEltcGw6OnNlbGVj
dEl0ZW1BbGlnbm1lCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50SW1w
bDo6cG9wdXBJc1Zpc2libGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3dlYlZpZXctPnNlbGVj
dFBvcHVwKCk7Cit9CisKIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRJbXBsOjpj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAgaWYg
KFdlYlZpZXdJbXBsOjp1c2VFeHRlcm5hbFBvcHVwTWVudXMoKSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgJKHJldmlzaW9uIDEwMjQyNikK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTg0LDYgKzE4NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwogICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CisgICAgdmly
dHVhbCBib29sIHBvcHVwSXNWaXNpYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTAyNDI2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTItMDkgIEppbmcgWmhh
byAgPGppbmd6aGFvQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggYXNzZXJ0aW9uIGZhaWxz
IHdoZW4gb3BlbmluZyB0d28gcG9wdXAgbWVudXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIGVsZW1lbnQuZGlzcGF0Y2hFdmVudCgpLCBh
IHVzZXIgd3JpdHRlbiBzY3JpcHQgY2FuIG9wZW4gdHdvCisgICAgICAgIHBvcHVwIG1lbnVzLCB3
aGljaCBjYXVzZXMgdGhlIGFzc2VydGlvbiBpbiBXZWJWaWV3SW1wbDo6cG9wdXBPcGVuZWQoKQor
ICAgICAgICBmYWlsLgorCisgICAgICAgIEFkZCBhIHBvcHVwSXNWaXNpYmxlKCkgbWV0aG9kIGlu
IENocm9tZUNsaWVudEltcGwgYW5kIGEgd3JhcHBlciBpbgorICAgICAgICBDaHJvbWUuIEluIFJl
bmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKSwgY2hlY2sgaWYgdGhlcmUgaXMgYW4gb3BlbmVkCisg
ICAgICAgIHBvcHVwIG1lbnUgYmVmb3JlIG9wZW5pbmcgYSBuZXcgcG9wdXAgbWVudS4KKworICAg
ICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LXBvcHVwLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2guaHRtbDogQWRkZWQuCisK
IDIwMTEtMTItMDggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDE2MTkuCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2gtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAt
Y3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKKzxzZWxlY3Q+
IHRlc3QgZm9yIG9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzLgorCitQQVNTIGlmIHRoZSB0ZXN0IGRp
ZG4ndCBjcmFzaC4KKworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NlbGVjdC1wb3B1cC1jcmFzaC1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3Zu
OmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Qt
cG9wdXAtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nl
bGVjdC1wb3B1cC1jcmFzaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2guaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MyBA
QAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPiZsdDtzZWxlY3Q+IHRlc3QgZm9yIG9wZW5pbmcgdHdvIHBvcHVwIG1l
bnVzLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHAgaWQ9ImRlYnVnIj5QQVNTIGlm
IHRoZSB0ZXN0IGRpZG4ndCBjcmFzaC48L3A+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICBwYXJlbnQuaW5uZXJIVE1MID0gJzxzZWxlY3QgaWQ9InNsMSI+JworICAgICAgICArICc8
b3B0aW9uPm9uZTwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj50d288L29wdGlvbj4nCisg
ICAgICAgICsgJzxvcHRpb24+dGhyZWU8L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+Zm91
cjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5maXZlPC9vcHRpb24+JworICAgICAgICAr
ICc8b3B0aW9uPnNpeDwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5zZXZlbjwvb3B0aW9u
PicKKyAgICAgICAgKyAnPG9wdGlvbj5laWdodDwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlv
bj5uaW5lPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPnRlbjwvb3B0aW9uPicKKyAgICAg
ICAgKyAnPG9wdGlvbj5lbGV2ZW48L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+dHdlbHZl
PC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPnRoaXJ0ZWVuPC9vcHRpb24+JworICAgICAg
ICArICc8b3B0aW9uPmZvdXJ0ZWVuPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPmZpZnRl
ZW48L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+c2l4dGVlbjwvb3B0aW9uPicKKyAgICAg
ICAgKyAnPG9wdGlvbj5zZXZlbnRlZW48L29wdGlvbj4nCisgICAgICAgICsgJzwvc2VsZWN0PicK
KyAgICAgICAgKyAnPHNlbGVjdCBpZD0ic2wyIj4nCisgICAgICAgICsgJzxvcHRpb24+b25lPC9v
cHRpb24+JworICAgICAgICArICc8b3B0aW9uPnR3bzwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9w
dGlvbj50aHJlZTwvb3B0aW9uPicKKyAgICAgICAgKyAnPC9zZWxlY3Q+JzsKKyAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHBhcmVudCk7CisKKyAgICBmdW5jdGlvbiBtb3VzZURvd25PblNl
bGVjdChzZWxJZCkKKyAgICB7CisgICAgICAgIHZhciBzbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKHNlbElkKTsKKyAgICAgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1v
dXNlRXZlbnQiKTsKKyAgICAgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlZG93biIsIHRy
dWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCAxLCBzbC5vZmZzZXRMZWZ0LCBzbC5vZmZz
ZXRUb3AsIHNsLm9mZnNldExlZnQsIHNsLm9mZnNldFRvcCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIDAsIGRvY3VtZW50KTsKKyAgICAgICAgc2wuZGlzcGF0Y2hFdmVudChldmVudCk7Cisg
ICAgfQorCisgICAgbW91c2VEb3duT25TZWxlY3QoInNsMSIpOworICAgIG1vdXNlRG93bk9uU2Vs
ZWN0KCJzbDIiKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118729</attachid>
            <date>2011-12-11 21:23:02 -0800</date>
            <delta_ts>2011-12-12 03:34:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73304-20111212132259.patch</filename>
            <type>text/plain</type>
            <size>20447</size>
            <attacher name="Jing Zhao">jingzhao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDExLTEyLTExICBKaW5nIFpo
YW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IGFzc2VydGlvbiBmYWls
cyB3aGVuIG9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBCeSB1c2luZyBlbGVtZW50LmRpc3BhdGNoRXZlbnQoKSwg
YSB1c2VyIHdyaXR0ZW4gc2NyaXB0IGNhbiBvcGVuIHR3bworICAgICAgICBwb3B1cCBtZW51cywg
d2hpY2ggY2F1c2VzIHRoZSBhc3NlcnRpb24gaW4gV2ViVmlld0ltcGw6OnBvcHVwT3BlbmVkKCkK
KyAgICAgICAgZmFpbC4KKworICAgICAgICBBZGQgYSBwb3B1cElzVmlzaWJsZSgpIG1ldGhvZCBp
biBDaHJvbWVDbGllbnRJbXBsIGFuZCBhIHdyYXBwZXIgaW4KKyAgICAgICAgQ2hyb21lLiBJbiBS
ZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCksIGNoZWNrIGlmIHRoZXJlIGlzIGFuIG9wZW5lZAor
ICAgICAgICBwb3B1cCBtZW51IGJlZm9yZSBvcGVuaW5nIGEgbmV3IHBvcHVwIG1lbnUuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2guaHRtbAorCisgICAgICAg
ICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVD
bGllbnQ6OnBvcHVwSXNWaXNpYmxlKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OnBvcHVwSXNWaXNpYmxlKToKKyAgICAgICAgKiBwYWdlL0No
cm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0
OjpzaG93UG9wdXApOgorCiAyMDExLTEyLTExICBMdWtlIE1hY3BoZXJzb24gICA8bWFjcGhlcnNv
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IHdlYmtpdC1saW5lLWdyaWQgYW5k
IHdlYmtpdC1saW5lLWdyaWQtc25hcCBDU1MgcHJvcGVydGllcyBpbiBDU1NTdHlsZUFwcGx5UHJv
cGVydHkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lvbiAx
MDI1NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MCw2ICsxNDAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0
aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcG9wdXBJc1Zpc2libGUo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCB7IHJldHVybiBhZG9w
dFJlZihuZXcgRW1wdHlQb3B1cE1lbnUoKSk7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Vh
cmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29u
c3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IEVtcHR5U2VhcmNoUG9wdXBNZW51KCkpOyB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU1LDYgKzU1NSwxMSBAQCBi
b29sIENocm9tZTo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNCiAgICAgcmV0dXJuIG1fY2xp
ZW50LT5zZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CiB9
CiAKK2Jvb2wgQ2hyb21lOjpwb3B1cElzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
Y2xpZW50LT5wb3B1cElzVmlzaWJsZSgpOworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hy
b21lOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fY2xpZW50LT5jcmVhdGVQb3B1cE1lbnUoY2xpZW50KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuaAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDYgKzE3NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7
CiAgICAgICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVj
dGlvbigpOworICAgICAgICBib29sIHBvcHVwSXNWaXNpYmxlKCkgY29uc3Q7CiAgICAgICAgIFBh
c3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29u
c3Q7CiAgICAgICAgIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1
cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAyLDYgKzMwMiw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25t
ZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAwOworICAgICAgICAvLyBDaGVja3Mg
aWYgdGhlcmUgaXMgYW4gb3BlbmVkIHBvcHVwLCBjYWxsZWQgYnkgUmVuZGVyTWVudUxpc3Q6OnNo
b3dQb3B1cCgpLgorICAgICAgICB2aXJ0dWFsIGJvb2wgcG9wdXBJc1Zpc2libGUoKSBjb25zdCA9
IDA7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
KSBjb25zdCA9IDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDYgKzI5Myw5IEBAIHZv
aWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgaWYgKG1fcG9wdXBJc1Zpc2libGUp
CiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgp
LT5wb3B1cElzVmlzaWJsZSgpKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBDcmVhdGUgbV9p
bm5lckJsb2NrIGhlcmUgc28gaXQgZW5kcyB1cCBhcyB0aGUgZmlyc3QgY2hpbGQuCiAgICAgLy8g
VGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBvdGhlcndpc2Ugd2UgbWlnaHQgdHJ5IHRvIGNyZWF0
ZSBtX2lubmVyQmxvY2sKICAgICAvLyBpbnNpZGUgdGhlIHNob3dQb3B1cCBjYWxsIGFuZCBpdCB3
b3VsZCBmYWlsLgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTIt
MTEgIEppbmcgWmhhbyAgPGppbmd6aGFvQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggYXNz
ZXJ0aW9uIGZhaWxzIHdoZW4gb3BlbmluZyB0d28gcG9wdXAgbWVudXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OnBvcHVwSXNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDExLTEyLTExICBHb3BhbCBSYWdoYXZhbiAgPGdvcGFs
LjEucmFnaGF2YW5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUVF1aWNrV2ViVmlldyBtaXNz
aW5nIHRpdGxlQ2hhbmdlZCBzaWduYWwgdGVzdHMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjU0LDYgKzY1
NCwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVuCiAjZW5kaWYK
IH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnBvcHVwSXNWaXNpYmxlKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0cjxX
ZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVybiBXZWJQb3B1
cE1lbnU6OmNyZWF0ZShtX3BhZ2UsIGNsaWVudCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJ
KHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MCw2ICsxNzAsNyBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1l
bnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgcG9wdXBJc1Zpc2libGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCopIGNvbnN0IE9WRVJSSURFOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0xMi0xMSAgSmluZyBaaGFvICA8
amluZ3poYW9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBhc3NlcnRpb24gZmFpbHMgd2hl
biBvcGVuaW5nIHR3byBwb3B1cCBtZW51cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTczMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQnkgdXNpbmcgZWxlbWVudC5kaXNwYXRjaEV2ZW50KCksIGEgdXNl
ciB3cml0dGVuIHNjcmlwdCBjYW4gb3BlbiB0d28KKyAgICAgICAgcG9wdXAgbWVudXMsIHdoaWNo
IGNhdXNlcyB0aGUgYXNzZXJ0aW9uIGluIFdlYlZpZXdJbXBsOjpwb3B1cE9wZW5lZCgpCisgICAg
ICAgIGZhaWwuCisKKyAgICAgICAgQWRkIGEgcG9wdXBJc1Zpc2libGUoKSBtZXRob2QgaW4gQ2hy
b21lQ2xpZW50SW1wbCBhbmQgYSB3cmFwcGVyIGluCisgICAgICAgIENocm9tZS4gSW4gUmVuZGVy
TWVudUxpc3Q6OnNob3dQb3B1cCgpLCBjaGVjayBpZiB0aGVyZSBpcyBhbiBvcGVuZWQKKyAgICAg
ICAgcG9wdXAgbWVudSBiZWZvcmUgb3BlbmluZyBhIG5ldyBwb3B1cCBtZW51LgorCisgICAgICAg
ICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnRJbXBsOjpwb3B1cElzVmlzaWJsZSk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
aDoKKwogMjAxMS0xMi0wOSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGZvcndhcmRpbmcgaGVhZGVycyBmb3IgV2ViTGF5
ZXIgQVBJcwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MzksNiArOTM5LDEx
IEBAIGJvb2wgQ2hyb21lQ2xpZW50SW1wbDo6c2VsZWN0SXRlbUFsaWdubWUKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRJbXBsOjpwb3B1cElzVmlzaWJsZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fd2ViVmlldy0+c2VsZWN0UG9wdXAoKTsKK30KKwogUGFzc1JlZlB0
cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkgY29uc3QKIHsKICAgICBpZiAoV2ViVmlld0ltcGw6OnVzZUV4dGVybmFs
UG9wdXBNZW51cygpKQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuaAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNiArMTg1LDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCk7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dz
TWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKKyAgICB2aXJ0dWFsIGJvb2wgcG9wdXBJc1Zpc2libGUo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBN
ZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDI1NTcpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMi0xMSAgSmluZyBa
aGFvICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBhc3NlcnRpb24gZmFp
bHMgd2hlbiBvcGVuaW5nIHR3byBwb3B1cCBtZW51cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpwb3B1cElzVmlzaWJsZSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6CisKIDIwMTEtMTIt
MDcgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxd
IEludHJvZHVjZSBBc3NlcnRNYXRjaGluZ0VudW1zLmNwcC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAkocmV2aXNp
b24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQ0LDYgKzU0NCwxMiBAQCBib29sIENocm9t
ZUNsaWVudEVmbDo6c2VsZWN0SXRlbUFsaWdubWVuCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiti
b29sIENocm9tZUNsaWVudEVmbDo6cG9wdXBJc1Zpc2libGUoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVu
dT4gQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVFZmwoY2xpZW50
KSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRF
ZmwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuaAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw2ICsx
NjcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZv
bGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBwb3B1cElzVmlz
aWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kikg
Y29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDExLTEyLTExICBKaW5nIFpoYW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
Rml4IGFzc2VydGlvbiBmYWlscyB3aGVuIG9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cG9w
dXBJc1Zpc2libGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
OgorCiAyMDExLTEyLTA5ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgog
CiAgICAgICAgIFtHVEtdIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgQWNjZWxlcmF0ZWQgQ29t
cG9zaXRpbmcgdXNpbmcgQ2x1dHRlcgpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCShyZXZpc2lvbiAxMDI1NTcpCisr
KyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NTIsNiArODUyLDEyIEBAIGJvb2wgQ2hyb21lQ2xpZW50OjpzZWxl
Y3RJdGVtQWxpZ25tZW50Rm8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBDaHJvbWVDbGll
bnQ6OnBvcHVwSXNWaXNpYmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IENocm9t
ZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50
KSBjb25zdAogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51R3RrKGNsaWVudCkp
OwpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmgJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNiArMTQy
LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxl
Y3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBwb3B1cElzVmlzaWJsZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICNpZiBFTkFCTEUoVklERU8pCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMi0xMSAgSmlu
ZyBaaGFvICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBhc3NlcnRpb24g
ZmFpbHMgd2hlbiBvcGVuaW5nIHR3byBwb3B1cCBtZW51cy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6cG9wdXBJc1Zpc2libGUp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisKIDIwMTEtMTIt
MDkgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3Jn
PgogCiAgICAgICAgIFtRdF0gcmVxdWVzdCBwYXJhbWV0ZXIgb2YgUVF1aWNrV2ViVmlldzo6bmF2
aWdhdGlvblJlcXVlc3RlZCBpcyBub3QgYSByZWdpc3RlcmVkIHR5cGUKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCShyZXZp
c2lvbiAxMDI1NTcpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEyLDYgKzcxMiwxMiBAQCBib29sIENocm9t
ZUNsaWVudFF0OjpzZWxlY3RJdGVtQWxpZ25tZW50CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiti
b29sIENocm9tZUNsaWVudFF0Ojpwb3B1cElzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8UG9wdXBNZW51
PiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KSBjb25zdAogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51UXQoY2xpZW50LCB0
aGlzKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRRdC5oCShyZXZpc2lvbiAxMDI1NTcpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4MSw2ICsxODEs
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxv
d3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBwb3B1cElzVmlzaWJs
ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Vh
cmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlVmlzaXRlZExpbmtzKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCShyZXZpc2lvbiAxMDI1NTcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMi0xMSAgSmluZyBaaGFv
ICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBhc3NlcnRpb24gZmFpbHMg
d2hlbiBvcGVuaW5nIHR3byBwb3B1cCBtZW51cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpwb3B1cElzVmlzaWJsZSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTEtMTItMDcgIE1hcnkgV3Ug
IDxtYXJ5Lnd1QHRvcmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBDaGFuZ2UgZnVuY3Rpb24g
bmFtZSBJbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3NhcnkgdG8gZm9sbG93IGNvZGlu
ZyBzdHlsZSBndWlkZWxpbmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gMTAyNTU3KQorKysgU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzg2LDYgKzc4NiwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0
SXRlbUFsaWdubWVuCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFdlYkNocm9tZUNsaWVu
dDo6cG9wdXBJc1Zpc2libGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVXaW4oY2xpZW50KSk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2
aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw2ICsxNjUsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0Rp
cmVjdGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBwb3B1cElzVmlzaWJsZSgpIGNvbnN0OwogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShX
ZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjU1NykKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisy
MDExLTEyLTExICBKaW5nIFpoYW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
Rml4IGFzc2VydGlvbiBmYWlscyB3aGVuIG9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCeSB1c2luZyBlbGVtZW50
LmRpc3BhdGNoRXZlbnQoKSwgYSB1c2VyIHdyaXR0ZW4gc2NyaXB0IGNhbiBvcGVuIHR3bworICAg
ICAgICBwb3B1cCBtZW51cywgd2hpY2ggY2F1c2VzIHRoZSBhc3NlcnRpb24gaW4gV2ViVmlld0lt
cGw6OnBvcHVwT3BlbmVkKCkKKyAgICAgICAgZmFpbC4KKworICAgICAgICBBZGQgYSBwb3B1cElz
VmlzaWJsZSgpIG1ldGhvZCBpbiBDaHJvbWVDbGllbnRJbXBsIGFuZCBhIHdyYXBwZXIgaW4KKyAg
ICAgICAgQ2hyb21lLiBJbiBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCksIGNoZWNrIGlmIHRo
ZXJlIGlzIGFuIG9wZW5lZAorICAgICAgICBwb3B1cCBtZW51IGJlZm9yZSBvcGVuaW5nIGEgbmV3
IHBvcHVwIG1lbnUuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LXBvcHVwLWNy
YXNoLmh0bWw6IEFkZGVkLgorCiAyMDExLTEyLTExICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBXSzIvTmV0c2NhcGVQbHVnaW46IEluY29ycmVjdCBtb3VzZSBl
dmVudCBjb29yZGluYXRlcyB3aGVuIGZyYW1lU2NhbGVGYWN0b3IgIT0gMS4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LXBvcHVwLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1
cC1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorPHNlbGVj
dD4gdGVzdCBmb3Igb3BlbmluZyB0d28gcG9wdXAgbWVudXMuCisKK1BBU1MgaWYgdGhlIHRlc3Qg
ZGlkbid0IGNyYXNoLgorCisKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvc2VsZWN0LXBvcHVwLWNyYXNoLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVj
dC1wb3B1cC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2VsZWN0LXBvcHVwLWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUz
IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+Jmx0O3NlbGVjdD4gdGVzdCBmb3Igb3BlbmluZyB0d28gcG9wdXAg
bWVudXMuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8cCBpZD0iZGVidWciPlBBU1Mg
aWYgdGhlIHRlc3QgZGlkbid0IGNyYXNoLjwvcD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCisgICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIHBhcmVudC5pbm5lckhUTUwgPSAnPHNlbGVjdCBpZD0ic2wxIj4nCisgICAgICAgICsg
JzxvcHRpb24+b25lPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPnR3bzwvb3B0aW9uPicK
KyAgICAgICAgKyAnPG9wdGlvbj50aHJlZTwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5m
b3VyPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPmZpdmU8L29wdGlvbj4nCisgICAgICAg
ICsgJzxvcHRpb24+c2l4PC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPnNldmVuPC9vcHRp
b24+JworICAgICAgICArICc8b3B0aW9uPmVpZ2h0PC9vcHRpb24+JworICAgICAgICArICc8b3B0
aW9uPm5pbmU8L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+dGVuPC9vcHRpb24+JworICAg
ICAgICArICc8b3B0aW9uPmVsZXZlbjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj50d2Vs
dmU8L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+dGhpcnRlZW48L29wdGlvbj4nCisgICAg
ICAgICsgJzxvcHRpb24+Zm91cnRlZW48L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+Zmlm
dGVlbjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5zaXh0ZWVuPC9vcHRpb24+JworICAg
ICAgICArICc8b3B0aW9uPnNldmVudGVlbjwvb3B0aW9uPicKKyAgICAgICAgKyAnPC9zZWxlY3Q+
JworICAgICAgICArICc8c2VsZWN0IGlkPSJzbDIiPicKKyAgICAgICAgKyAnPG9wdGlvbj5vbmU8
L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+dHdvPC9vcHRpb24+JworICAgICAgICArICc8
b3B0aW9uPnRocmVlPC9vcHRpb24+JworICAgICAgICArICc8L3NlbGVjdD4nOworICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFyZW50KTsKKworICAgIGZ1bmN0aW9uIG1vdXNlRG93bk9u
U2VsZWN0KHNlbElkKQorICAgIHsKKyAgICAgICAgdmFyIHNsID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoc2VsSWQpOworICAgICAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgi
TW91c2VFdmVudCIpOworICAgICAgICBldmVudC5pbml0TW91c2VFdmVudCgibW91c2Vkb3duIiwg
dHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIDEsIHNsLm9mZnNldExlZnQsIHNsLm9m
ZnNldFRvcCwgc2wub2Zmc2V0TGVmdCwgc2wub2Zmc2V0VG9wLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgMCwgZG9jdW1lbnQpOworICAgICAgICBzbC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsK
KyAgICB9CisKKyAgICBtb3VzZURvd25PblNlbGVjdCgic2wxIik7CisgICAgbW91c2VEb3duT25T
ZWxlY3QoInNsMiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNo
YW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LXBvcHVwLWNyYXNoLmh0bWwK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118766</attachid>
            <date>2011-12-12 03:34:50 -0800</date>
            <delta_ts>2011-12-13 18:09:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73304-20111212193448.patch</filename>
            <type>text/plain</type>
            <size>20519</size>
            <attacher name="Jing Zhao">jingzhao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDExLTEyLTExICBKaW5nIFpo
YW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgT3BlbmluZyB0d28gcG9wdXAg
bWVudXMgYnkgZGlzcGF0Y2hFdmVudCgpIG1ha2VzIHByb2JsZW1zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCeSB1c2luZyBlbGVtZW50LmRpc3BhdGNo
RXZlbnQoKSwgYSB1c2VyIHdyaXR0ZW4gc2NyaXB0IGNhbiBvcGVuIHR3bworICAgICAgICBwb3B1
cCBtZW51cywgd2hpY2ggY2F1c2VzIHRoZSBhc3NlcnRpb24gaW4gV2ViVmlld0ltcGw6OnBvcHVw
T3BlbmVkKCkKKyAgICAgICAgZmFpbC4KKworICAgICAgICBBZGQgYSBwb3B1cElzVmlzaWJsZSgp
IG1ldGhvZCBpbiBDaHJvbWVDbGllbnRJbXBsIGFuZCBhIHdyYXBwZXIgaW4KKyAgICAgICAgQ2hy
b21lLiBJbiBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCksIGNoZWNrIGlmIHRoZXJlIGlzIGFu
IG9wZW5lZAorICAgICAgICBwb3B1cCBtZW51IGJlZm9yZSBvcGVuaW5nIGEgbmV3IHBvcHVwIG1l
bnUuCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2guaHRtbAor
CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1w
dHlDaHJvbWVDbGllbnQ6OnBvcHVwSXNWaXNpYmxlKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnBvcHVwSXNWaXNpYmxlKToKKyAgICAgICAg
KiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck1lbnVMaXN0OjpzaG93UG9wdXApOgorCiAyMDExLTEyLTExICBMdWtlIE1hY3BoZXJzb24gICA8
bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IHdlYmtpdC1saW5l
LWdyaWQgYW5kIHdlYmtpdC1saW5lLWdyaWQtc25hcCBDU1MgcHJvcGVydGllcyBpbiBDU1NTdHls
ZUFwcGx5UHJvcGVydHkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShy
ZXZpc2lvbiAxMDI1NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE0MCw2ICsxNDAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0
aW5nRGlyZWN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcG9wdXBJ
c1Zpc2libGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCB7IHJl
dHVybiBhZG9wdFJlZihuZXcgRW1wdHlQb3B1cE1lbnUoKSk7IH0KICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KikgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IEVtcHR5U2VhcmNoUG9wdXBNZW51KCkp
OyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDEwMjU1NykKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU1LDYgKzU1
NSwxMSBAQCBib29sIENocm9tZTo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNCiAgICAgcmV0
dXJuIG1fY2xpZW50LT5zZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0
aW9uKCk7CiB9CiAKK2Jvb2wgQ2hyb21lOjpwb3B1cElzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fY2xpZW50LT5wb3B1cElzVmlzaWJsZSgpOworfQorCiBQYXNzUmVmUHRyPFBvcHVw
TWVudT4gQ2hyb21lOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fY2xpZW50LT5jcmVhdGVQb3B1cE1lbnUoY2xpZW50KTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDYgKzE3NCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCk7CiAgICAgICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3Jp
dGluZ0RpcmVjdGlvbigpOworICAgICAgICBib29sIHBvcHVwSXNWaXNpYmxlKCkgY29uc3Q7CiAg
ICAgICAgIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KikgY29uc3Q7CiAgICAgICAgIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAyLDYgKzMwMiw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJ
dGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAwOworICAgICAgICAv
LyBDaGVja3MgaWYgdGhlcmUgaXMgYW4gb3BlbmVkIHBvcHVwLCBjYWxsZWQgYnkgUmVuZGVyTWVu
dUxpc3Q6OnNob3dQb3B1cCgpLgorICAgICAgICB2aXJ0dWFsIGJvb2wgcG9wdXBJc1Zpc2libGUo
KSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0
ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqKSBjb25zdCA9IDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0LmNwcAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDYgKzI5
Myw5IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgaWYgKG1fcG9wdXBJ
c1Zpc2libGUpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChkb2N1bWVudCgpLT5wYWdlKCkt
PmNocm9tZSgpLT5wb3B1cElzVmlzaWJsZSgpKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBD
cmVhdGUgbV9pbm5lckJsb2NrIGhlcmUgc28gaXQgZW5kcyB1cCBhcyB0aGUgZmlyc3QgY2hpbGQu
CiAgICAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBvdGhlcndpc2Ugd2UgbWlnaHQgdHJ5
IHRvIGNyZWF0ZSBtX2lubmVyQmxvY2sKICAgICAvLyBpbnNpZGUgdGhlIHNob3dQb3B1cCBjYWxs
IGFuZCBpdCB3b3VsZCBmYWlsLgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTAyNTU3KQorKysg
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMTItMTEgIEppbmcgWmhhbyAgPGppbmd6aGFvQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBPcGVuaW5nIHR3byBwb3B1cCBtZW51cyBieSBkaXNwYXRjaEV2ZW50KCkgbWFrZXMgcHJvYmxl
bXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMw
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDaHJvbWVDbGllbnQ6OnBvcHVwSXNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDExLTEyLTExICBHb3Bh
bCBSYWdoYXZhbiAgPGdvcGFsLjEucmFnaGF2YW5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0g
UVF1aWNrV2ViVmlldyBtaXNzaW5nIHRpdGxlQ2hhbmdlZCBzaWduYWwgdGVzdHMKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjU0LDYgKzY1NCwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRl
bUFsaWdubWVuCiAjZW5kaWYKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnBvcHVwSXNWaXNp
YmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKwogUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewog
ICAgIHJldHVybiBXZWJQb3B1cE1lbnU6OmNyZWF0ZShtX3BhZ2UsIGNsaWVudCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTE3MCw2ICsxNzAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgcG9wdXBJc1Zpc2libGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51
KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IE9WRVJSSURFOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0x
Mi0xMSAgSmluZyBaaGFvICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE9wZW5p
bmcgdHdvIHBvcHVwIG1lbnVzIGJ5IGRpc3BhdGNoRXZlbnQoKSBtYWtlcyBwcm9ibGVtcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnkgdXNpbmcgZWxl
bWVudC5kaXNwYXRjaEV2ZW50KCksIGEgdXNlciB3cml0dGVuIHNjcmlwdCBjYW4gb3BlbiB0d28K
KyAgICAgICAgcG9wdXAgbWVudXMsIHdoaWNoIGNhdXNlcyB0aGUgYXNzZXJ0aW9uIGluIFdlYlZp
ZXdJbXBsOjpwb3B1cE9wZW5lZCgpCisgICAgICAgIGZhaWwuCisKKyAgICAgICAgQWRkIGEgcG9w
dXBJc1Zpc2libGUoKSBtZXRob2QgaW4gQ2hyb21lQ2xpZW50SW1wbCBhbmQgYSB3cmFwcGVyIGlu
CisgICAgICAgIENocm9tZS4gSW4gUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpLCBjaGVjayBp
ZiB0aGVyZSBpcyBhbiBvcGVuZWQKKyAgICAgICAgcG9wdXAgbWVudSBiZWZvcmUgb3BlbmluZyBh
IG5ldyBwb3B1cCBtZW51LgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpwb3B1cElzVmlzaWJsZSk6CisgICAg
ICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKwogMjAxMS0xMi0wOSAgSmFtZXMgUm9iaW5z
b24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGZv
cndhcmRpbmcgaGVhZGVycyBmb3IgV2ViTGF5ZXIgQVBJcwpJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDEwMjU1NykK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05MzksNiArOTM5LDExIEBAIGJvb2wgQ2hyb21lQ2xpZW50SW1wbDo6c2Vs
ZWN0SXRlbUFsaWdubWUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRJ
bXBsOjpwb3B1cElzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd2ViVmlldy0+c2Vs
ZWN0UG9wdXAoKTsKK30KKwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudEltcGw6
OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKIHsKICAgICBp
ZiAoV2ViVmlld0ltcGw6OnVzZUV4dGVybmFsUG9wdXBNZW51cygpKQpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAkocmV2aXNpb24gMTAyNTU3
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODUsNiArMTg1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKKyAgICB2
aXJ0dWFsIGJvb2wgcG9wdXBJc1Zpc2libGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCopIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDI1NTcp
CisrKyBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMS0xMi0xMSAgSmluZyBaaGFvICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIE9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzIGJ5IGRpc3BhdGNoRXZlbnQoKSBtYWtl
cyBwcm9ibGVtcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTczMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50RWZsOjpwb3B1cElzVmlzaWJsZSk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6CisKIDIwMTEtMTItMDcgIFJ5dWFuIENob2kgIDxyeXVh
bi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEludHJvZHVjZSBBc3NlcnRNYXRj
aGluZ0VudW1zLmNwcC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTQ0LDYgKzU0NCwxMiBAQCBib29sIENocm9tZUNsaWVudEVmbDo6c2VsZWN0SXRl
bUFsaWdubWVuCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENocm9tZUNsaWVudEVmbDo6
cG9wdXBJc1Zpc2libGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50RWZsOjpj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVFZmwoY2xpZW50KSk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAkocmV2aXNp
b24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50RWZsLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw2ICsxNjcsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVj
dGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBwb3B1cElzVmlzaWJsZSgpIGNvbnN0OwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVh
dGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTEyLTExICBKaW5nIFpoYW8g
IDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgT3BlbmluZyB0d28gcG9wdXAgbWVu
dXMgYnkgZGlzcGF0Y2hFdmVudCgpIG1ha2VzIHByb2JsZW1zLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cG9wdXBJc1Zpc2libGUp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorCiAyMDExLTEy
LTA5ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFtH
VEtdIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcgdXNp
bmcgQ2x1dHRlcgpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCShyZXZpc2lvbiAxMDI1NTcpCisrKyBTb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04NTIsNiArODUyLDEyIEBAIGJvb2wgQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtQWxpZ25t
ZW50Rm8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnQ6OnBvcHVwSXNW
aXNpYmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwogUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IENocm9tZUNsaWVudDo6Y3Jl
YXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewog
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51R3RrKGNsaWVudCkpOwpJbmRleDogU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgJ
KHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNiArMTQyLDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGly
ZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25t
ZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBw
b3B1cElzVmlzaWJsZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBN
ZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICNpZiBFTkFCTEUoVklERU8pCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMi0xMSAgSmluZyBaaGFvICA8amlu
Z3poYW9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzIGJ5
IGRpc3BhdGNoRXZlbnQoKSBtYWtlcyBwcm9ibGVtcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6cG9wdXBJc1Zpc2libGUpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisKIDIwMTEtMTItMDkg
IEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgog
CiAgICAgICAgIFtRdF0gcmVxdWVzdCBwYXJhbWV0ZXIgb2YgUVF1aWNrV2ViVmlldzo6bmF2aWdh
dGlvblJlcXVlc3RlZCBpcyBub3QgYSByZWdpc3RlcmVkIHR5cGUKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCShyZXZpc2lv
biAxMDI1NTcpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEyLDYgKzcxMiwxMiBAQCBib29sIENocm9tZUNs
aWVudFF0OjpzZWxlY3RJdGVtQWxpZ25tZW50CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29s
IENocm9tZUNsaWVudFF0Ojpwb3B1cElzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBD
aHJvbWVDbGllbnRRdDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBj
b25zdAogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51UXQoY2xpZW50LCB0aGlz
KSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oCShyZXZpc2lvbiAxMDI1NTcpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4MSw2ICsxODEsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NN
ZW51V3JpdGluZ0RpcmVjdGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBwb3B1cElzVmlzaWJsZSgp
IGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNo
UG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlVmlzaXRlZExpbmtzKCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMDI1NTcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMi0xMSAgSmluZyBaaGFvICA8
amluZ3poYW9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE9wZW5pbmcgdHdvIHBvcHVwIG1lbnVz
IGJ5IGRpc3BhdGNoRXZlbnQoKSBtYWtlcyBwcm9ibGVtcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpwb3B1cElzVmlzaWJsZSk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTEtMTItMDcgIE1h
cnkgV3UgIDxtYXJ5Lnd1QHRvcmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBDaGFuZ2UgZnVu
Y3Rpb24gbmFtZSBJbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3NhcnkgdG8gZm9sbG93
IGNvZGluZyBzdHlsZSBndWlkZWxpbmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gMTAyNTU3KQor
KysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzg2LDYgKzc4NiwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6
c2VsZWN0SXRlbUFsaWdubWVuCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFdlYkNocm9t
ZUNsaWVudDo6cG9wdXBJc1Zpc2libGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVXaW4oY2xpZW50KSk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw2ICsxNjUsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3Jp
dGluZ0RpcmVjdGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBwb3B1cElzVmlzaWJsZSgpIGNvbnN0
OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVw
TWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjU1
NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIx
IEBACisyMDExLTEyLTExICBKaW5nIFpoYW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgT3BlbmluZyB0d28gcG9wdXAgbWVudXMgYnkgZGlzcGF0Y2hFdmVudCgpIG1ha2VzIHBy
b2JsZW1zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzMzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBC
eSB1c2luZyBlbGVtZW50LmRpc3BhdGNoRXZlbnQoKSwgYSB1c2VyIHdyaXR0ZW4gc2NyaXB0IGNh
biBvcGVuIHR3bworICAgICAgICBwb3B1cCBtZW51cywgd2hpY2ggY2F1c2VzIHRoZSBhc3NlcnRp
b24gaW4gV2ViVmlld0ltcGw6OnBvcHVwT3BlbmVkKCkKKyAgICAgICAgZmFpbC4KKworICAgICAg
ICBBZGQgYSBwb3B1cElzVmlzaWJsZSgpIG1ldGhvZCBpbiBDaHJvbWVDbGllbnRJbXBsIGFuZCBh
IHdyYXBwZXIgaW4KKyAgICAgICAgQ2hyb21lLiBJbiBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVw
KCksIGNoZWNrIGlmIHRoZXJlIGlzIGFuIG9wZW5lZAorICAgICAgICBwb3B1cCBtZW51IGJlZm9y
ZSBvcGVuaW5nIGEgbmV3IHBvcHVwIG1lbnUuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVj
dC1wb3B1cC1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
c2VsZWN0LXBvcHVwLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDExLTEyLTExICBBbmRyZWFzIEts
aW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBXSzIvTmV0c2NhcGVQbHVnaW46IElu
Y29ycmVjdCBtb3VzZSBldmVudCBjb29yZGluYXRlcyB3aGVuIGZyYW1lU2NhbGVGYWN0b3IgIT0g
MS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LXBvcHVwLWNyYXNoLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1
cC1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NlbGVjdC1wb3B1cC1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNSBAQAorPHNlbGVjdD4gdGVzdCBmb3Igb3BlbmluZyB0d28gcG9wdXAgbWVudXMuCisKK1BB
U1MgaWYgdGhlIHRlc3QgZGlkbid0IGNyYXNoLgorCisKClByb3BlcnR5IGNoYW5nZXMgb246IExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LXBvcHVwLWNyYXNoLWV4cGVjdGVkLnR4dApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2VsZWN0LXBvcHVwLWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+Jmx0O3NlbGVjdD4gdGVzdCBmb3Igb3Bl
bmluZyB0d28gcG9wdXAgbWVudXMuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8cCBp
ZD0iZGVidWciPlBBU1MgaWYgdGhlIHRlc3QgZGlkbid0IGNyYXNoLjwvcD4KKzxzY3JpcHQ+Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworICAgIHBhcmVudC5pbm5lckhUTUwgPSAnPHNlbGVjdCBpZD0ic2wx
Ij4nCisgICAgICAgICsgJzxvcHRpb24+b25lPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9u
PnR3bzwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj50aHJlZTwvb3B0aW9uPicKKyAgICAg
ICAgKyAnPG9wdGlvbj5mb3VyPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPmZpdmU8L29w
dGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+c2l4PC9vcHRpb24+JworICAgICAgICArICc8b3B0
aW9uPnNldmVuPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPmVpZ2h0PC9vcHRpb24+Jwor
ICAgICAgICArICc8b3B0aW9uPm5pbmU8L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+dGVu
PC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPmVsZXZlbjwvb3B0aW9uPicKKyAgICAgICAg
KyAnPG9wdGlvbj50d2VsdmU8L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+dGhpcnRlZW48
L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+Zm91cnRlZW48L29wdGlvbj4nCisgICAgICAg
ICsgJzxvcHRpb24+ZmlmdGVlbjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5zaXh0ZWVu
PC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPnNldmVudGVlbjwvb3B0aW9uPicKKyAgICAg
ICAgKyAnPC9zZWxlY3Q+JworICAgICAgICArICc8c2VsZWN0IGlkPSJzbDIiPicKKyAgICAgICAg
KyAnPG9wdGlvbj5vbmU8L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+dHdvPC9vcHRpb24+
JworICAgICAgICArICc8b3B0aW9uPnRocmVlPC9vcHRpb24+JworICAgICAgICArICc8L3NlbGVj
dD4nOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFyZW50KTsKKworICAgIGZ1bmN0
aW9uIG1vdXNlRG93bk9uU2VsZWN0KHNlbElkKQorICAgIHsKKyAgICAgICAgdmFyIHNsID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2VsSWQpOworICAgICAgICB2YXIgZXZlbnQgPSBkb2N1bWVu
dC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpOworICAgICAgICBldmVudC5pbml0TW91c2VFdmVu
dCgibW91c2Vkb3duIiwgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIDEsIHNsLm9m
ZnNldExlZnQsIHNsLm9mZnNldFRvcCwgc2wub2Zmc2V0TGVmdCwgc2wub2Zmc2V0VG9wLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgZG9jdW1lbnQpOworICAgICAgICBzbC5kaXNwYXRj
aEV2ZW50KGV2ZW50KTsKKyAgICB9CisKKyAgICBtb3VzZURvd25PblNlbGVjdCgic2wxIik7Cisg
ICAgbW91c2VEb3duT25TZWxlY3QoInNsMiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LXBv
cHVwLWNyYXNoLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119128</attachid>
            <date>2011-12-13 18:09:34 -0800</date>
            <delta_ts>2011-12-14 02:26:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73304-20111214100932.patch</filename>
            <type>text/plain</type>
            <size>20655</size>
            <attacher name="Jing Zhao">jingzhao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDExLTEyLTExICBKaW5nIFpo
YW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgT3BlbmluZyB0d28gcG9wdXAg
bWVudXMgYnkgZGlzcGF0Y2hFdmVudCgpIG1ha2VzIHByb2JsZW1zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCeSB1c2luZyBlbGVtZW50LmRpc3BhdGNo
RXZlbnQoKSwgYSB1c2VyIHdyaXR0ZW4gc2NyaXB0IGNhbiBvcGVuIHR3bworICAgICAgICBwb3B1
cCBtZW51cywgd2hpY2ggY2F1c2VzIHZhcmlvdXMgcHJvYmxlbXMgaW4gZGlmZmVyZW50IHBsYXRm
b3Jtcy4KKworICAgICAgICBBZGQgYSBwb3B1cElzVmlzaWJsZSgpIG1ldGhvZCBpbiBDaHJvbWVD
bGllbnQgYW5kIGEgd3JhcHBlciBpbiBDaHJvbWUuCisgICAgICAgIEluIFJlbmRlck1lbnVMaXN0
OjpzaG93UG9wdXAoKSwgY2hlY2sgaWYgdGhlcmUgaXMgYW4gb3BlbmVkIHBvcHVwIG1lbnUKKyAg
ICAgICAgYmVmb3JlIG9wZW5pbmcgYSBuZXcgcG9wdXAgbWVudS4KKworICAgICAgICBUZXN0OiBm
YXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6IE92ZXJyaWRlcyBwb3B1cElzVmlzaWJsZSgpLgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnBvcHVwSXNWaXNpYmxlKTogUmV0dXJucyBmYWxzZSBhcyBh
IGRlZmF1bHQgY2FzZS4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWU6OnBvcHVwSXNWaXNpYmxlKTogQ2FsbHMgQ2hyb21lQ2xpZW50Ojpwb3B1cElz
VmlzaWJsZSgpLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6IERlY2xhcmVzIHBvcHVwSXNWaXNp
YmxlKCkuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogRGVjbGFyZXMgcG9wdXBJc1Zp
c2libGUoKSBhcyBhIHB1cmUgdmlydHVhbCBmdW5jdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OnNo
b3dQb3B1cCk6IENhbGxzIENocm9tZTo6cG9wdXBJc1Zpc2libGUoKSBiZWZvcmUgb3BlbmluZyBh
IG5ldyBwb3B1cCBtZW51LgorCiAyMDExLTEyLTExICBMdWtlIE1hY3BoZXJzb24gICA8bWFjcGhl
cnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IHdlYmtpdC1saW5lLWdyaWQg
YW5kIHdlYmtpdC1saW5lLWdyaWQtc25hcCBDU1MgcHJvcGVydGllcyBpbiBDU1NTdHlsZUFwcGx5
UHJvcGVydHkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lv
biAxMDI1NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTE0MCw2ICsxNDAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wg
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGly
ZWN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcG9wdXBJc1Zpc2li
bGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCB7
IHJldHVybiBhZG9wdFJlZihuZXcgRW1wdHlQb3B1cE1lbnUoKSk7IH0KICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KikgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IEVtcHR5U2VhcmNoUG9wdXBNZW51
KCkpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDEwMjU1NykKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU1LDYg
KzU1NSwxMSBAQCBib29sIENocm9tZTo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNCiAgICAg
cmV0dXJuIG1fY2xpZW50LT5zZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGly
ZWN0aW9uKCk7CiB9CiAKK2Jvb2wgQ2hyb21lOjpwb3B1cElzVmlzaWJsZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fY2xpZW50LT5wb3B1cElzVmlzaWJsZSgpOworfQorCiBQYXNzUmVmUHRyPFBv
cHVwTWVudT4gQ2hyb21lOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2xpZW50LT5jcmVhdGVQb3B1cE1lbnUoY2xpZW50KTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuaAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDYgKzE3NCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCk7CiAgICAgICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51
V3JpdGluZ0RpcmVjdGlvbigpOworICAgICAgICBib29sIHBvcHVwSXNWaXNpYmxlKCkgY29uc3Q7
CiAgICAgICAgIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KikgY29uc3Q7CiAgICAgICAgIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVh
dGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAyLDYgKzMwMiw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxl
Y3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAwOworICAgICAg
ICAvLyBDaGVja3MgaWYgdGhlcmUgaXMgYW4gb3BlbmVkIHBvcHVwLCBjYWxsZWQgYnkgUmVuZGVy
TWVudUxpc3Q6OnNob3dQb3B1cCgpLgorICAgICAgICB2aXJ0dWFsIGJvb2wgcG9wdXBJc1Zpc2li
bGUoKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNy
ZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDYg
KzI5Myw5IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgaWYgKG1fcG9w
dXBJc1Zpc2libGUpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChkb2N1bWVudCgpLT5wYWdl
KCktPmNocm9tZSgpLT5wb3B1cElzVmlzaWJsZSgpKQorICAgICAgICByZXR1cm47CisKICAgICAv
LyBDcmVhdGUgbV9pbm5lckJsb2NrIGhlcmUgc28gaXQgZW5kcyB1cCBhcyB0aGUgZmlyc3QgY2hp
bGQuCiAgICAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBvdGhlcndpc2Ugd2UgbWlnaHQg
dHJ5IHRvIGNyZWF0ZSBtX2lubmVyQmxvY2sKICAgICAvLyBpbnNpZGUgdGhlIHNob3dQb3B1cCBj
YWxsIGFuZCBpdCB3b3VsZCBmYWlsLgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTAyNTU3KQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTEtMTItMTEgIEppbmcgWmhhbyAgPGppbmd6aGFvQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBPcGVuaW5nIHR3byBwb3B1cCBtZW51cyBieSBkaXNwYXRjaEV2ZW50KCkgbWFrZXMgcHJv
YmxlbXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MzMwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnBvcHVwSXNWaXNpYmxlKTogTm90IGltcGxlbWVudGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6
IE92ZXJyaWRlcyBwb3B1cElzVmlzaWJsZSgpLgorCiAyMDExLTEyLTExICBHb3BhbCBSYWdoYXZh
biAgPGdvcGFsLjEucmFnaGF2YW5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUVF1aWNrV2Vi
VmlldyBtaXNzaW5nIHRpdGxlQ2hhbmdlZCBzaWduYWwgdGVzdHMKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjU0LDYgKzY1NCwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVu
CiAjZW5kaWYKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnBvcHVwSXNWaXNpYmxlKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFz
c1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVy
biBXZWJQb3B1cE1lbnU6OmNyZWF0ZShtX3BhZ2UsIGNsaWVudCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MCw2
ICsxNzAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0
ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgcG9wdXBJc1Zpc2libGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6
OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IE9WRVJSSURFOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0xMi0xMSAgSmlu
ZyBaaGFvICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE9wZW5pbmcgdHdvIHBv
cHVwIG1lbnVzIGJ5IGRpc3BhdGNoRXZlbnQoKSBtYWtlcyBwcm9ibGVtcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnkgdXNpbmcgZWxlbWVudC5kaXNw
YXRjaEV2ZW50KCksIGEgdXNlciB3cml0dGVuIHNjcmlwdCBjYW4gb3BlbiB0d28KKyAgICAgICAg
cG9wdXAgbWVudXMsIHdoaWNoIGNhdXNlcyB0aGUgYXNzZXJ0aW9uIGluIFdlYlZpZXdJbXBsOjpw
b3B1cE9wZW5lZCgpCisgICAgICAgIGZhaWwuCisKKyAgICAgICAgQ2hyb21lQ2xpZW50SW1wbDo6
cG9wdXBJc1Zpc2libGUoKSBpcyBjYWxsZWQgYnkgQ2hyb21lOjpwb3B1cElzVmlzaWJsZSgpCisg
ICAgICAgIGluIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKSwgdG8gY2hlY2sgaWYgdGhlcmUg
aXMgYW4gb3BlbmVkIHBvcHVwCisgICAgICAgIG1lbnUgYmVmb3JlIG9wZW5pbmcgYSBuZXcgcG9w
dXAgbWVudS4KKworICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6cG9wdXBJc1Zpc2libGUpOiBDaGVja3MgdGhlIHBv
cHVwIGluIFdlYlZpZXdJbXBsLgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6IE92
ZXJyaWRlcyBwb3B1cElzVmlzaWJsZSgpLgorCiAyMDExLTEyLTA5ICBKYW1lcyBSb2JpbnNvbiAg
PGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgZm9yd2Fy
ZGluZyBoZWFkZXJzIGZvciBXZWJMYXllciBBUElzCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gMTAyNTU3KQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTkzOSw2ICs5MzksMTEgQEAgYm9vbCBDaHJvbWVDbGllbnRJbXBsOjpzZWxlY3RJ
dGVtQWxpZ25tZQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIENocm9tZUNsaWVudEltcGw6
OnBvcHVwSXNWaXNpYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93ZWJWaWV3LT5zZWxlY3RQ
b3B1cCgpOworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50SW1wbDo6Y3Jl
YXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIGlmIChX
ZWJWaWV3SW1wbDo6dXNlRXh0ZXJuYWxQb3B1cE1lbnVzKCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCShyZXZpc2lvbiAxMDI1NTcpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE4NSw2ICsxODUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2Vs
ZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOworICAgIHZpcnR1
YWwgYm9vbCBwb3B1cElzVmlzaWJsZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xp
ZW50KikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjU1NykKKysr
IFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0
IEBACisyMDExLTEyLTExICBKaW5nIFpoYW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgT3BlbmluZyB0d28gcG9wdXAgbWVudXMgYnkgZGlzcGF0Y2hFdmVudCgpIG1ha2VzIHBy
b2JsZW1zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzMzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRFZmw6OnBvcHVwSXNWaXNpYmxlKTogTm90IGltcGxlbWVudGVkLgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOiBPdmVycmlkZXMgcG9wdXBJc1Zp
c2libGUoKS4KKwogMjAxMS0xMi0wNyAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW0VGTF0gSW50cm9kdWNlIEFzc2VydE1hdGNoaW5nRW51bXMuY3BwLgpJ
bmRleDogU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuY3BwCShyZXZpc2lvbiAxMDI1NTcpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDQsNiAr
NTQ0LDEyIEBAIGJvb2wgQ2hyb21lQ2xpZW50RWZsOjpzZWxlY3RJdGVtQWxpZ25tZW4KICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50RWZsOjpwb3B1cElzVmlzaWJsZSgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IFBhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFBvcHVwTWVudUVmbChjbGllbnQpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCShyZXZpc2lvbiAxMDI1NTcpCisrKyBT
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTY3LDYgKzE2Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwogICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CisgICAgdmly
dHVhbCBib29sIHBvcHVwSXNWaXNpYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNp
b24gMTAyNTU3KQorKysgU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTItMTEgIEppbmcgWmhhbyAgPGppbmd6aGFvQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBPcGVuaW5nIHR3byBwb3B1cCBtZW51cyBieSBkaXNwYXRjaEV2
ZW50KCkgbWFrZXMgcHJvYmxlbXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpwb3B1cElzVmlzaWJsZSk6IE5vdCBpbXBsZW1lbnRl
ZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDogT3ZlcnJpZGVz
IHBvcHVwSXNWaXNpYmxlKCkuCisKIDIwMTEtMTItMDkgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBj
b2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgW0dUS10gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBv
ZiBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyB1c2luZyBDbHV0dGVyCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJKHJl
dmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1Miw2ICs4NTIsMTIgQEAgYm9vbCBD
aHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1BbGlnbm1lbnRGbwogICAgIHJldHVybiB0cnVlOwogfQog
Citib29sIENocm9tZUNsaWVudDo6cG9wdXBJc1Zpc2libGUoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFdlYkNvcmU6
OlBvcHVwTWVudT4gQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1
cE1lbnVHdGsoY2xpZW50KSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAkocmV2aXNpb24gMTAyNTU3KQorKysgU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE0Miw2ICsxNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgICAgICB2aXJ0
dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICAgICAg
dmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rp
b24oKTsKKyAgICAgICAgdmlydHVhbCBib29sIHBvcHVwSXNWaXNpYmxlKCkgY29uc3Q7CiAgICAg
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVw
TWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogI2lm
IEVOQUJMRShWSURFTykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDI1NTcpCisrKyBT
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDExLTEyLTExICBKaW5nIFpoYW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgT3BlbmluZyB0d28gcG9wdXAgbWVudXMgYnkgZGlzcGF0Y2hFdmVudCgpIG1ha2VzIHByb2Js
ZW1zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMz
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFF0Ojpwb3B1cElzVmlzaWJsZSk6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOiBPdmVycmlkZXMgcG9wdXBJc1Zpc2libGUo
KS4KKwogMjAxMS0xMi0wOSAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lh
QG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSByZXF1ZXN0IHBhcmFtZXRlciBvZiBRUXVp
Y2tXZWJWaWV3OjpuYXZpZ2F0aW9uUmVxdWVzdGVkIGlzIG5vdCBhIHJlZ2lzdGVyZWQgdHlwZQpJ
bmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5jcHAJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MTIsNiArNzEyLDEy
IEBAIGJvb2wgQ2hyb21lQ2xpZW50UXQ6OnNlbGVjdEl0ZW1BbGlnbm1lbnQKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50UXQ6OnBvcHVwSXNWaXNpYmxlKCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1Jl
ZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudFF0OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1l
bnVRdChjbGllbnQsIHRoaXMpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpA
QCAtMTgxLDYgKzE4MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVt
QWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CisgICAgdmlydHVhbCBib29s
IHBvcHVwSXNWaXNpYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVWaXNpdGVkTGlua3Mo
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjU1NykKKysrIFNvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTEy
LTExICBKaW5nIFpoYW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgT3Blbmlu
ZyB0d28gcG9wdXAgbWVudXMgYnkgZGlzcGF0Y2hFdmVudCgpIG1ha2VzIHByb2JsZW1zLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnBvcHVw
SXNWaXNpYmxlKTogTm90IGltcGxlbWVudGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOiBPdmVycmlkZXMgcG9wdXBJc1Zpc2libGUoKS4KKwogMjAxMS0xMi0w
NyAgTWFyeSBXdSAgPG1hcnkud3VAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIENoYW5n
ZSBmdW5jdGlvbiBuYW1lIEluaXRpYWxpemVMb2dnaW5nQ2hhbm5lbHNJZk5lY2Vzc2FyeSB0byBm
b2xsb3cgY29kaW5nIHN0eWxlIGd1aWRlbGluZQpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiAxMDI1
NTcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03ODYsNiArNzg2LDEyIEBAIGJvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpzZWxlY3RJdGVtQWxpZ25tZW4KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgV2Vi
Q2hyb21lQ2xpZW50Ojpwb3B1cElzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbihjbGllbnQpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCShyZXZpc2lvbiAxMDI1NTcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTY1LDYgKzE2NSw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpOwogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01l
bnVXcml0aW5nRGlyZWN0aW9uKCk7CisgICAgdmlydHVhbCBib29sIHBvcHVwSXNWaXNpYmxlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRl
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVu
dShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIApJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTAyNTU3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTEtMTItMTEgIEppbmcgWmhhbyAgPGppbmd6aGFvQGNocm9taXVtLm9yZz4K
KworICAgICAgICBPcGVuaW5nIHR3byBwb3B1cCBtZW51cyBieSBkaXNwYXRjaEV2ZW50KCkgbWFr
ZXMgcHJvYmxlbXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MzMwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sOiBBZGRlZC4KKwog
MjAxMS0xMi0xMSAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
V0syL05ldHNjYXBlUGx1Z2luOiBJbmNvcnJlY3QgbW91c2UgZXZlbnQgY29vcmRpbmF0ZXMgd2hl
biBmcmFtZVNjYWxlRmFjdG9yICE9IDEuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nl
bGVjdC1wb3B1cC1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2gtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKKzxzZWxlY3Q+IHRlc3QgZm9yIG9wZW5pbmcg
dHdvIHBvcHVwIG1lbnVzLgorCitQQVNTIGlmIHRoZSB0ZXN0IGRpZG4ndCBjcmFzaC4KKworCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1j
cmFzaC1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExG
CgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAtY3Jhc2guaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtcG9wdXAt
Y3Jhc2guaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIEhUTUw+
Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPiZs
dDtzZWxlY3Q+IHRlc3QgZm9yIG9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzLjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHAgaWQ9ImRlYnVnIj5QQVNTIGlmIHRoZSB0ZXN0IGRpZG4ndCBj
cmFzaC48L3A+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciBw
YXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBwYXJlbnQuaW5uZXJI
VE1MID0gJzxzZWxlY3QgaWQ9InNsMSI+JworICAgICAgICArICc8b3B0aW9uPm9uZTwvb3B0aW9u
PicKKyAgICAgICAgKyAnPG9wdGlvbj50d288L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+
dGhyZWU8L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+Zm91cjwvb3B0aW9uPicKKyAgICAg
ICAgKyAnPG9wdGlvbj5maXZlPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPnNpeDwvb3B0
aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5zZXZlbjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9w
dGlvbj5laWdodDwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5uaW5lPC9vcHRpb24+Jwor
ICAgICAgICArICc8b3B0aW9uPnRlbjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5lbGV2
ZW48L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+dHdlbHZlPC9vcHRpb24+JworICAgICAg
ICArICc8b3B0aW9uPnRoaXJ0ZWVuPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPmZvdXJ0
ZWVuPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPmZpZnRlZW48L29wdGlvbj4nCisgICAg
ICAgICsgJzxvcHRpb24+c2l4dGVlbjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5zZXZl
bnRlZW48L29wdGlvbj4nCisgICAgICAgICsgJzwvc2VsZWN0PicKKyAgICAgICAgKyAnPHNlbGVj
dCBpZD0ic2wyIj4nCisgICAgICAgICsgJzxvcHRpb24+b25lPC9vcHRpb24+JworICAgICAgICAr
ICc8b3B0aW9uPnR3bzwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj50aHJlZTwvb3B0aW9u
PicKKyAgICAgICAgKyAnPC9zZWxlY3Q+JzsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KHBhcmVudCk7CisKKyAgICBmdW5jdGlvbiBtb3VzZURvd25PblNlbGVjdChzZWxJZCkKKyAgICB7
CisgICAgICAgIHZhciBzbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlbElkKTsKKyAgICAg
ICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTsKKyAgICAg
ICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlZG93biIsIHRydWUsIHRydWUsIGRvY3VtZW50
LmRlZmF1bHRWaWV3LCAxLCBzbC5vZmZzZXRMZWZ0LCBzbC5vZmZzZXRUb3AsIHNsLm9mZnNldExl
ZnQsIHNsLm9mZnNldFRvcCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRvY3VtZW50
KTsKKyAgICAgICAgc2wuZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgfQorCisgICAgbW91c2VE
b3duT25TZWxlY3QoInNsMSIpOworICAgIG1vdXNlRG93bk9uU2VsZWN0KCJzbDIiKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2
bjplb2wtc3R5bGUKICAgKyBMRgoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119186</attachid>
            <date>2011-12-14 02:26:59 -0800</date>
            <delta_ts>2011-12-14 21:41:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73304-20111214182657.patch</filename>
            <type>text/plain</type>
            <size>22618</size>
            <attacher name="Jing Zhao">jingzhao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjc0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDExLTEyLTE0ICBKaW5nIFpo
YW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgT3BlbmluZyB0d28gcG9wdXAg
bWVudXMgYnkgZGlzcGF0Y2hFdmVudCgpIG1ha2VzIHByb2JsZW1zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCeSB1c2luZyBlbGVtZW50LmRpc3BhdGNo
RXZlbnQoKSwgYSB1c2VyIHdyaXR0ZW4gc2NyaXB0IGNhbiBvcGVuIHR3bworICAgICAgICBwb3B1
cCBtZW51cywgd2hpY2ggY2F1c2VzIHZhcmlvdXMgcHJvYmxlbXMgaW4gZGlmZmVyZW50IHBsYXRm
b3Jtcy4KKworICAgICAgICBBZGQgYSBoYXNPcGVuZWRQb3B1cCgpIG1ldGhvZCBpbiBDaHJvbWVD
bGllbnQgYW5kIGEgd3JhcHBlciBpbiBDaHJvbWUuCisgICAgICAgIEluIFJlbmRlck1lbnVMaXN0
OjpzaG93UG9wdXAoKSwgY2hlY2sgaWYgdGhlcmUgaXMgYW4gb3BlbmVkIHBvcHVwIG1lbnUKKyAg
ICAgICAgYmVmb3JlIG9wZW5pbmcgYSBuZXcgcG9wdXAgbWVudS4KKworICAgICAgICBUZXN0OiBm
YXN0L2Zvcm1zL3NlbGVjdC1wb3B1cC1jcmFzaC5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6IE92ZXJyaWRlcyBoYXNPcGVuZWRQb3B1cCgpLgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVwKTogUmV0dXJucyBmYWxzZSBhcyBh
IGRlZmF1bHQgY2FzZS4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWU6Omhhc09wZW5lZFBvcHVwKTogQ2FsbHMgQ2hyb21lQ2xpZW50OjpoYXNPcGVu
ZWRQb3B1cCgpLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6IERlY2xhcmVzIGhhc09wZW5lZFBv
cHVwKCkuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogRGVjbGFyZXMgaGFzT3BlbmVk
UG9wdXAoKSBhcyBhIHB1cmUgdmlydHVhbCBmdW5jdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OnNo
b3dQb3B1cCk6IENhbGxzIENocm9tZTo6aGFzT3BlbmVkUG9wdXAoKSBiZWZvcmUgb3BlbmluZyBh
IG5ldyBwb3B1cCBtZW51LgorCiAyMDExLTEyLTEzICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXR0ZW1wdCBmb3IgZml4aW5nIHdp
bmRvd3MgYnVpbGQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZp
c2lvbiAxMDI3NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTE0MCw2ICsxNDAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJv
b2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5n
RGlyZWN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVk
UG9wdXAoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25z
dCB7IHJldHVybiBhZG9wdFJlZihuZXcgRW1wdHlQb3B1cE1lbnUoKSk7IH0KICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IEVtcHR5U2VhcmNoUG9wdXBN
ZW51KCkpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDEwMjc0NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU1
LDYgKzU1NSwxMSBAQCBib29sIENocm9tZTo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNCiAg
ICAgcmV0dXJuIG1fY2xpZW50LT5zZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5n
RGlyZWN0aW9uKCk7CiB9CiAKK2Jvb2wgQ2hyb21lOjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fY2xpZW50LT5oYXNPcGVuZWRQb3B1cCgpOworfQorCiBQYXNzUmVmUHRy
PFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2xpZW50LT5jcmVhdGVQb3B1cE1lbnUoY2xpZW50
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAkocmV2aXNpb24gMTAyNzQ3KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDYgKzE3NCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKCk7CiAgICAgICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NN
ZW51V3JpdGluZ0RpcmVjdGlvbigpOworICAgICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29u
c3Q7CiAgICAgICAgIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3Q7CiAgICAgICAgIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTAyNzQ3KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAyLDYgKzMwMiw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAwOworICAg
ICAgICAvLyBDaGVja3MgaWYgdGhlcmUgaXMgYW4gb3BlbmVkIHBvcHVwLCBjYWxsZWQgYnkgUmVu
ZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpLgorICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVk
UG9wdXAoKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+
IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CiAgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkocmV2aXNpb24gMTAyNzQ3KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkz
LDYgKzI5Myw5IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgaWYgKG1f
cG9wdXBJc1Zpc2libGUpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChkb2N1bWVudCgpLT5w
YWdlKCktPmNocm9tZSgpLT5oYXNPcGVuZWRQb3B1cCgpKQorICAgICAgICByZXR1cm47CisKICAg
ICAvLyBDcmVhdGUgbV9pbm5lckJsb2NrIGhlcmUgc28gaXQgZW5kcyB1cCBhcyB0aGUgZmlyc3Qg
Y2hpbGQuCiAgICAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBvdGhlcndpc2Ugd2UgbWln
aHQgdHJ5IHRvIGNyZWF0ZSBtX2lubmVyQmxvY2sKICAgICAvLyBpbnNpZGUgdGhlIHNob3dQb3B1
cCBjYWxsIGFuZCBpdCB3b3VsZCBmYWlsLgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTAyNzQ3
KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTEtMTItMTQgIEppbmcgWmhhbyAgPGppbmd6aGFvQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBPcGVuaW5nIHR3byBwb3B1cCBtZW51cyBieSBkaXNwYXRjaEV2ZW50KCkgbWFrZXMg
cHJvYmxlbXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MzMwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVwKTogTm90IGltcGxlbWVu
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6IE92ZXJyaWRlcyBoYXNPcGVuZWRQb3B1cCgpLgorCiAyMDExLTEyLTEzICBHdXN0YXZvIE5v
cm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQg
Zml4LgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gMTAyNzQ3KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjAsNiArNjYwLDEyIEBAIGJvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpzZWxlY3RJdGVtQWxpZ25tZW4KICNlbmRpZgogfQogCitib29sIFdlYkNocm9tZUNsaWVu
dDo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hy
b21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdlYlBvcHVwTWVudTo6Y3JlYXRlKG1fcGFnZSwgY2xp
ZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTAyNzQ3KQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMTcwLDYgKzE3MCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFs
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVj
dGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNy
ZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDI3NDcpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIyIEBACisyMDExLTEyLTE0ICBKaW5nIFpoYW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgT3BlbmluZyB0d28gcG9wdXAgbWVudXMgYnkgZGlzcGF0Y2hFdmVudCgpIG1ha2Vz
IHByb2JsZW1zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzMzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCeSB1c2luZyBlbGVtZW50LmRpc3BhdGNoRXZlbnQoKSwgYSB1c2VyIHdyaXR0ZW4gc2NyaXB0
IGNhbiBvcGVuIHR3bworICAgICAgICBwb3B1cCBtZW51cywgd2hpY2ggY2F1c2VzIHRoZSBhc3Nl
cnRpb24gaW4gV2ViVmlld0ltcGw6OnBvcHVwT3BlbmVkKCkKKyAgICAgICAgZmFpbC4KKworICAg
ICAgICBDaHJvbWVDbGllbnRJbXBsOjpoYXNPcGVuZWRQb3B1cCgpIGlzIGNhbGxlZCBieSBDaHJv
bWU6Omhhc09wZW5lZFBvcHVwKCkKKyAgICAgICAgaW4gUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1
cCgpLCB0byBjaGVjayBpZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAKKyAgICAgICAgbWVudSBi
ZWZvcmUgb3BlbmluZyBhIG5ldyBwb3B1cCBtZW51LgorCisgICAgICAgICogc3JjL0Nocm9tZUNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpoYXNPcGVu
ZWRQb3B1cCk6IENoZWNrcyB0aGUgcG9wdXAgaW4gV2ViVmlld0ltcGwuCisgICAgICAgICogc3Jj
L0Nocm9tZUNsaWVudEltcGwuaDogT3ZlcnJpZGVzIGhhc09wZW5lZFBvcHVwKCkuCisKIDIwMTEt
MTItMTMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgY2hy
b21pdW0gcG9ydCAtIHJlbW92ZSBuYWNsIGhhY2sgaW4gREVQUy9neXBfd2Via2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkocmV2
aXNpb24gMTAyNzQ3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkzOSw2ICs5MzksMTEgQEAgYm9vbCBDaHJvbWVD
bGllbnRJbXBsOjpzZWxlY3RJdGVtQWxpZ25tZQogICAgIHJldHVybiB0cnVlOwogfQogCitib29s
IENocm9tZUNsaWVudEltcGw6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ISFtX3dlYlZpZXctPnNlbGVjdFBvcHVwKCk7Cit9CisKIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBD
aHJvbWVDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
IGNvbnN0CiB7CiAgICAgaWYgKFdlYlZpZXdJbXBsOjp1c2VFeHRlcm5hbFBvcHVwTWVudXMoKSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgJ
KHJldmlzaW9uIDEwMjc0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDYgKzE4NSw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwog
ICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGly
ZWN0aW9uKCk7CisgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9w
dXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShX
ZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwko
cmV2aXNpb24gMTAyNzQ3KQorKysgU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTItMTQgIEppbmcgWmhhbyAgPGppbmd6aGFv
QGNocm9taXVtLm9yZz4KKworICAgICAgICBPcGVuaW5nIHR3byBwb3B1cCBtZW51cyBieSBkaXNw
YXRjaEV2ZW50KCkgbWFrZXMgcHJvYmxlbXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6aGFzT3BlbmVkUG9wdXApOiBOb3Qg
aW1wbGVtZW50ZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6
IE92ZXJyaWRlcyBoYXNPcGVuZWRQb3B1cCgpLgorCiAyMDExLTEyLTEyICBSYXBoYWVsIEt1Ym8g
ZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFtFRkxdIEFkZCBBUEkg
dG8gcXVlcnkgdGhlIHZhbGlkaXR5IG9mIGEgZnJhbWUncyBTU0wgY2VydGlmaWNhdGUuCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5jcHAJKHJldmlzaW9uIDEwMjc0NykKKysrIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0NCw2ICs1NDQs
MTIgQEAgYm9vbCBDaHJvbWVDbGllbnRFZmw6OnNlbGVjdEl0ZW1BbGlnbm1lbgogICAgIHJldHVy
biBmYWxzZTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRFZmw6Omhhc09wZW5lZFBvcHVwKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFz
c1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudEVmbDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9w
dXBNZW51RWZsKGNsaWVudCkpOwpJbmRleDogU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50RWZsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgJKHJldmlzaW9uIDEwMjc0NykKKysrIFNvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjcsNiArMTY3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgdmlydHVhbCBib29sIHNlbGVj
dEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKKyAgICB2aXJ0dWFs
IGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9w
dXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCopIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
MDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNCBAQAorMjAxMS0xMi0xNCAgSmluZyBaaGFvICA8amluZ3poYW9AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIE9wZW5pbmcgdHdvIHBvcHVwIG1lbnVzIGJ5IGRpc3BhdGNoRXZlbnQo
KSBtYWtlcyBwcm9ibGVtcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTczMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVwKTogTm90IGltcGxlbWVudGVkLgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOiBPdmVycmlkZXMgaGFz
T3BlbmVkUG9wdXAoKS4KKwogMjAxMS0xMi0xMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBXZWJLaXQgY29kZSBzaG91bGRuJ3QgYmUgY2FsbGluZyBhcHBseUNv
bW1hbmQgZGlyZWN0bHkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gMTAyNzQ3KQorKysgU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODYxLDYgKzg2MSwxMiBAQCBib29sIENocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFs
aWdubWVudEZvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50OjpoYXNP
cGVuZWRQb3B1cCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBDaHJvbWVDbGllbnQ6
OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QK
IHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUd0ayhjbGllbnQpKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5oCShyZXZpc2lvbiAxMDI3NDcpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtMTQyLDYgKzE0Miw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFs
aWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOworICAgICAgICB2aXJ0dWFsIGJv
b2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBv
cHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAgICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAjaWYgRU5BQkxFKFZJREVPKQpJbmRleDogU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwkocmV2aXNpb24gMTAyNzU5KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTItMTQgIEppbmcgWmhh
byAgPGppbmd6aGFvQGNocm9taXVtLm9yZz4KKworICAgICAgICBPcGVuaW5nIHR3byBwb3B1cCBt
ZW51cyBieSBkaXNwYXRjaEV2ZW50KCkgbWFrZXMgcHJvYmxlbXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lmg6IE92ZXJyaWRlcyBoYXNPcGVuZWRQb3B1cCgpLgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aGFz
T3BlbmVkUG9wdXApOiBOb3QgaW1wbGVtZW50ZWQuCisKIDIwMTEtMTItMTIgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViS2l0IGNvZGUgc2hvdWxkbid0IGJl
IGNhbGxpbmcgYXBwbHlDb21tYW5kIGRpcmVjdGx5CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTAyNzQ3
KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE3MCw2ICsxNzAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVj
dGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNy
ZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW0JKHJldmlzaW9uIDEwMjc0NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtODQwLDYg
Kzg0MCwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVuCiAjZW5k
aWYKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0
cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdl
YkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgUG9wdXBNZW51TWFjKGNsaWVudCkpOwpJbmRleDogU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlz
aW9uIDEwMjc0NykKKysrIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTItMTQgIEppbmcgWmhhbyAgPGppbmd6aGFvQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBPcGVuaW5nIHR3byBwb3B1cCBtZW51cyBieSBkaXNwYXRjaEV2
ZW50KCkgbWFrZXMgcHJvYmxlbXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6Omhhc09wZW5lZFBvcHVwKTogTm90IGltcGxlbWVu
dGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6IE92ZXJyaWRl
cyBoYXNPcGVuZWRQb3B1cCgpLgorCiAyMDExLTEyLTEyICBOw6FuZG9yIEh1c3prYSAgPGh1c3pr
YS5uYW5kb3JAc3R1ZC51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIE1pc3NpbmcgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcFdpbGxDYWNoZVJlc3BvbnNlCkluZGV4OiBTb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkocmV2aXNpb24g
MTAyNzQ3KQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxMiw2ICs3MTIsMTIgQEAgYm9vbCBDaHJvbWVDbGll
bnRRdDo6c2VsZWN0SXRlbUFsaWdubWVudAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBD
aHJvbWVDbGllbnRRdDo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hy
b21lQ2xpZW50UXQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVF0KGNsaWVudCwgdGhpcykp
OwpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaAkocmV2aXNpb24gMTAyNzQ3KQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODEsNiArMTgxLDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCk7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVu
dVdyaXRpbmdEaXJlY3Rpb24oKTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBj
b25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBv
cHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpOwpJbmRleDogU291cmNlL1dl
YktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTAyNzU5KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTItMTQgIEppbmcgWmhhbyAgPGpp
bmd6aGFvQGNocm9taXVtLm9yZz4KKworICAgICAgICBPcGVuaW5nIHR3byBwb3B1cCBtZW51cyBi
eSBkaXNwYXRjaEV2ZW50KCkgbWFrZXMgcHJvYmxlbXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aGFzT3BlbmVkUG9wdXApOiBOb3QgaW1w
bGVtZW50ZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IE92
ZXJyaWRlcyBoYXNPcGVuZWRQb3B1cCgpLgorCiAyMDExLTEyLTA3ICBNYXJ5IFd1ICA8bWFyeS53
dUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgQ2hhbmdlIGZ1bmN0aW9uIG5hbWUgSW5p
dGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5IHRvIGZvbGxvdyBjb2Rpbmcgc3R5bGUg
Z3VpZGVsaW5lCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDEwMjc0NykKKysrIFNvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc4Niw2ICs3ODYsMTIgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1BbGln
bm1lbgogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09w
ZW5lZFBvcHVwKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUG9wdXBNZW51V2luKGNsaWVudCkpOwpJbmRleDogU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDEw
Mjc0NykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNiArMTY1LDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgdmly
dHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24o
KTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCopIGNvbnN0OwogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDI3NDcpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMi0x
NCAgSmluZyBaaGFvICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE9wZW5pbmcg
dHdvIHBvcHVwIG1lbnVzIGJ5IGRpc3BhdGNoRXZlbnQoKSBtYWtlcyBwcm9ibGVtcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzA0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Nl
bGVjdC9tZW51bGlzdC1wb3B1cC1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZm9ybXMvc2VsZWN0L21lbnVsaXN0LXBvcHVwLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAy
MDExLTEyLTE0ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgZXhwZWN0YXRpb24gdXBkYXRlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zZWxlY3QvbWVudWxpc3QtcG9wdXAtY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0L21lbnVsaXN0LXBvcHVwLWNyYXNo
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Vs
ZWN0L21lbnVsaXN0LXBvcHVwLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw1IEBACis8c2VsZWN0PiB0ZXN0IGZvciBvcGVuaW5nIHR3byBwb3B1cCBtZW51cy4KKwor
UEFTUyBpZiB0aGUgdGVzdCBkaWRuJ3QgY3Jhc2guCisKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QvbWVudWxpc3QtcG9wdXAtY3Jhc2gtZXhwZWN0
ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0L21lbnVsaXN0LXBvcHVwLWNyYXNoLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QvbWVudWxpc3QtcG9wdXAt
Y3Jhc2guaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0
L21lbnVsaXN0LXBvcHVwLWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTMgQEAK
KzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj4mbHQ7c2VsZWN0PiB0ZXN0IGZvciBvcGVuaW5nIHR3byBwb3B1cCBtZW51
cy48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxwIGlkPSJkZWJ1ZyI+UEFTUyBpZiB0
aGUgdGVzdCBkaWRuJ3QgY3Jhc2guPC9wPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisKKyAgICB2YXIgcGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cisg
ICAgcGFyZW50LmlubmVySFRNTCA9ICc8c2VsZWN0IGlkPSJzbDEiPicKKyAgICAgICAgKyAnPG9w
dGlvbj5vbmU8L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+dHdvPC9vcHRpb24+JworICAg
ICAgICArICc8b3B0aW9uPnRocmVlPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPmZvdXI8
L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+Zml2ZTwvb3B0aW9uPicKKyAgICAgICAgKyAn
PG9wdGlvbj5zaXg8L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+c2V2ZW48L29wdGlvbj4n
CisgICAgICAgICsgJzxvcHRpb24+ZWlnaHQ8L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRpb24+
bmluZTwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj50ZW48L29wdGlvbj4nCisgICAgICAg
ICsgJzxvcHRpb24+ZWxldmVuPC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPnR3ZWx2ZTwv
b3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj50aGlydGVlbjwvb3B0aW9uPicKKyAgICAgICAg
KyAnPG9wdGlvbj5mb3VydGVlbjwvb3B0aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj5maWZ0ZWVu
PC9vcHRpb24+JworICAgICAgICArICc8b3B0aW9uPnNpeHRlZW48L29wdGlvbj4nCisgICAgICAg
ICsgJzxvcHRpb24+c2V2ZW50ZWVuPC9vcHRpb24+JworICAgICAgICArICc8L3NlbGVjdD4nCisg
ICAgICAgICsgJzxzZWxlY3QgaWQ9InNsMiI+JworICAgICAgICArICc8b3B0aW9uPm9uZTwvb3B0
aW9uPicKKyAgICAgICAgKyAnPG9wdGlvbj50d288L29wdGlvbj4nCisgICAgICAgICsgJzxvcHRp
b24+dGhyZWU8L29wdGlvbj4nCisgICAgICAgICsgJzwvc2VsZWN0Pic7CisgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChwYXJlbnQpOworCisgICAgZnVuY3Rpb24gbW91c2VEb3duT25TZWxl
Y3Qoc2VsSWQpCisgICAgeworICAgICAgICB2YXIgc2wgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChzZWxJZCk7CisgICAgICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3Vz
ZUV2ZW50Iik7CisgICAgICAgIGV2ZW50LmluaXRNb3VzZUV2ZW50KCJtb3VzZWRvd24iLCB0cnVl
LCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgMSwgc2wub2Zmc2V0TGVmdCwgc2wub2Zmc2V0
VG9wLCBzbC5vZmZzZXRMZWZ0LCBzbC5vZmZzZXRUb3AsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCAwLCBkb2N1bWVudCk7CisgICAgICAgIHNsLmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAg
IH0KKworICAgIG1vdXNlRG93bk9uU2VsZWN0KCJzbDEiKTsKKyAgICBtb3VzZURvd25PblNlbGVj
dCgic2wyIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QvbWVudWxpc3QtcG9wdXAtY3Jhc2gu
aHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119369</attachid>
            <date>2011-12-14 21:07:57 -0800</date>
            <delta_ts>2011-12-14 21:23:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73304-20111215130755.patch</filename>
            <type>text/plain</type>
            <size>3179</size>
            <attacher name="Jing Zhao">jingzhao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjg3OCkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTEyLTE0
ICBKaW5nIFpoYW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgT3BlbmluZyB0
d28gcG9wdXAgbWVudXMgYnkgZGlzcGF0Y2hFdmVudCgpIG1ha2VzIHByb2JsZW1zLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbTogRml4IHRoZSBidWlsZC4KKwogMjAxMS0xMi0xNCAgSmluZyBa
aGFvICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE9wZW5pbmcgdHdvIHBvcHVw
IG1lbnVzIGJ5IGRpc3BhdGNoRXZlbnQoKSBtYWtlcyBwcm9ibGVtcy4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0JKHJl
dmlzaW9uIDEwMjg3NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNjcsNiArNjcsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9JbnRQb2ludC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL05hdmlnYXRpb25BY3Rpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVt
ZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0
Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5oPgpJbmRleDog
U291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC93aW5jZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjg3OCkKKysrIFNvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTItMTQg
IEppbmcgWmhhbyAgPGppbmd6aGFvQGNocm9taXVtLm9yZz4KKworICAgICAgICBPcGVuaW5nIHR3
byBwb3B1cCBtZW51cyBieSBkaXNwYXRjaEV2ZW50KCkgbWFrZXMgcHJvYmxlbXMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5D
RTo6aGFzT3BlbmVkUG9wdXApOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDogT3ZlcnJpZGVzIGhhc09wZW5lZFBvcHVwKCkuCisK
IDIwMTEtMTEtMzAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIGFuIHVubmVlZGVkIGFyZ3VtZW50IGZyb20gRnJhbWVMb2FkZXJDbGllbnQ6OmRv
d25sb2FkCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFdpbkNFLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcAkocmV2aXNpb24gMTAyODc3KQorKysgU291cmNl
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM4OSw2ICszODksMTIgQEAgYm9vbCBDaHJvbWVDbGllbnRXaW5DRTo6c2Vs
ZWN0SXRlbUFsaWdubQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRX
aW5DRTo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50
V2luQ0U6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKIHsK
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbihjbGllbnQpKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFdpbkNFLmgJKHJldmlzaW9uIDEwMjg3NykKKysrIFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDYgKzE3
MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpOwogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9s
bG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CisgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBv
cHVwKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4g
Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBv
cHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119370</attachid>
            <date>2011-12-14 21:23:55 -0800</date>
            <delta_ts>2011-12-14 21:40:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73304-20111215132353.patch</filename>
            <type>text/plain</type>
            <size>2046</size>
            <attacher name="Jing Zhao">jingzhao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDI4NzkpCisrKyBTb3VyY2UvV2Vi
S2l0L3dpbmNlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEx
LTEyLTE0ICBKaW5nIFpoYW8gIDxqaW5nemhhb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgT3Bl
bmluZyB0d28gcG9wdXAgbWVudXMgYnkgZGlzcGF0Y2hFdmVudCgpIG1ha2VzIHByb2JsZW1zLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50V2luQ0U6Omhhc09wZW5lZFBvcHVwKTogTm90IGltcGxlbWVudGVkLgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmg6IE92ZXJyaWRlcyBoYXNPcGVuZWRQb3B1
cCgpLgorCiAyMDExLTExLTMwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSBhbiB1bm5lZWRlZCBhcmd1bWVudCBmcm9tIEZyYW1lTG9hZGVyQ2xp
ZW50Ojpkb3dubG9hZApJbmRleDogU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRXaW5DRS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAJKHJldmlzaW9uIDEwMjg3OSkKKysr
IFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zODksNiArMzg5LDEyIEBAIGJvb2wgQ2hyb21lQ2xpZW50V2lu
Q0U6OnNlbGVjdEl0ZW1BbGlnbm0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQ2hyb21l
Q2xpZW50V2luQ0U6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9t
ZUNsaWVudFdpbkNFOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVXaW4oY2xpZW50KSk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNF
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRXaW5DRS5oCShyZXZpc2lvbiAxMDI4NzkpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3
MSw2ICsxNzEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdu
bWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBoYXNP
cGVuZWRQb3B1cCgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>