<?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>86236</bug_id>
          
          <creation_ts>2012-05-11 11:22:05 -0700</creation_ts>
          <short_desc>[chromium] No modifier flags (shift/ctrl/alt) in drag&amp;drop events on chromium linux</short_desc>
          <delta_ts>2022-09-02 17:58:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=77465</see_also>
          <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="Varun Jain">varunjain</reporter>
          <assigned_to name="Varun Jain">varunjain</assigned_to>
          <cc>abarth</cc>
    
    <cc>avi</cc>
    
    <cc>dcheng</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>621824</commentid>
    <comment_count>0</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-11 11:22:05 -0700</bug_when>
    <thetext>[chromium] Implement PlatformKeyboardEvent::getCurrentModifierState for non win/mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621825</commentid>
    <comment_count>1</comment_count>
      <attachid>141455</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-11 11:23:10 -0700</bug_when>
    <thetext>Created attachment 141455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621959</commentid>
    <comment_count>2</comment_count>
      <attachid>141455</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-11 14:08:34 -0700</bug_when>
    <thetext>Comment on attachment 141455
Patch

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

&gt; Source/WebCore/platform/chromium/PlatformKeyboardEventChromium.cpp:45
&gt; +bool IsKeyPressed(Display* xdisplay, KeySym keySym, char* keys)

IsKeyPressed -&gt; isKeyPressed (WebKit style).

Also, WebKit prefers using the static keyword to using anonymous namespaces (I&apos;m not sure why).

&gt; Source/WebCore/platform/chromium/PlatformKeyboardEventChromium.cpp:50
&gt; +    char interestingByte = keys[skippedBytes];

Should we have some kind of bounds check here?

&gt; Source/WebCore/platform/chromium/PlatformKeyboardEventChromium.cpp:120
&gt;  #else

Should we say OS(LINUX) here rather than &quot;else&quot; ?

&gt; Source/WebCore/platform/chromium/PlatformKeyboardEventChromium.cpp:121
&gt; +    Display* xdisplay = XOpenDisplay(0);

I&apos;m surprised we can talk directly to the X server.  I&apos;m going to have to defer to a Linux expert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621960</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-11 14:09:31 -0700</bug_when>
    <thetext>@tony: Do you know who should look at this patch?  It&apos;s talking directly to the X server, which makes me wonder if it&apos;s correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621983</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-11 14:37:22 -0700</bug_when>
    <thetext>This might run in the browser process when constructing the WebEvent.  Avi might remember how this works, he did a bunch of refactoring of input events a long long time ago.

It would be easy to manually test this in Chrome.  varunjain, did it work for you in Chrome (not test_shell)?

Does XKeysymToKeycode make a round trip to the X display?  If so, this looks really slow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621999</commentid>
    <comment_count>5</comment_count>
    <who name="Avi Drissman">avi</who>
    <bug_when>2012-05-11 15:00:23 -0700</bug_when>
    <thetext>&gt; This might run in the browser process when constructing the WebEvent.

Nope.

The Chromium WebKit API uses the type WebKit::WebKeyboardEvent which is defined in Source/WebKit/chromium/public/WebInputEvent.h. In Source/WebKit/chromium/src/WebInputEventConversion.h there is a subclass of PlatformKeyboardEvent called PlatformKeyboardEventBuilder which is constructed using a WebKeyboardEvent. That&apos;s how the conversion is done.

But that&apos;s rather beside the point. PlatformKeyboardEventChromium exists in order to fill in a few unimplemented functions on PlatformKeyboardEvent for the Chromium port. It lives entirely in WebCore, which means that on Chromium it&apos;s sandboxed. And if you look at the existing implementations of currentCapsLockState, you&apos;ll find the comment:

    // FIXME: Does this even work inside the sandbox?
    return GetKeyState(VK_CAPITAL) &amp; 1;

That&apos;s an open question. Either it works and the comment should be removed, or no one calls currentCapsLockState. Shrug. But this is definitely going to be called in the sandbox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622020</commentid>
    <comment_count>6</comment_count>
      <attachid>141455</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-11 15:27:21 -0700</bug_when>
    <thetext>Comment on attachment 141455
Patch

r- since this won&apos;t work in the sandbox.

This might work by making it a sync IPC back to the browser process and handling it on the render thread.  There&apos;s some similar code in src/content/browser/renderer_host/render_widget_host_impl.cc. The OnMessageReceived function is where we handle the IPC on the browser side-- you would add something in the TOOLKIT_GTK block.  But I still think this is going to be really slow since talking to X can be slow.  E.g., typing into a textarea over a remote X connection would be good to try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622160</commentid>
    <comment_count>7</comment_count>
      <attachid>141537</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-11 18:07:52 -0700</bug_when>
    <thetext>Created attachment 141537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622164</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 18:12:21 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622165</commentid>
    <comment_count>9</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-11 18:12:37 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 141455 [details])
&gt; r- since this won&apos;t work in the sandbox.
&gt; 
&gt; This might work by making it a sync IPC back to the browser process and handling it on the render thread.  There&apos;s some similar code in src/content/browser/renderer_host/render_widget_host_impl.cc. The OnMessageReceived function is where we handle the IPC on the browser side-- you would add something in the TOOLKIT_GTK block.  But I still think this is going to be really slow since talking to X can be slow.  E.g., typing into a textarea over a remote X connection would be good to try.

Hi Tony... due to the performance concerns you have mentioned, I have implemented this in a different way. The idea is to keep local state of shift/ctrl/alt key in PlatformKeyboardEvent and sync the state for all event comming frmo the browser. Since the events coming from the browser already have the state, we do not need to query the XServer again. This also saves the sync IPC you were suggesting. On the down side however, it requires some change on the chromeium side as well. the chromium side changes are in https://chromiumcodereview.appspot.com/10377119/

Please have a look at both changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622168</commentid>
    <comment_count>10</comment_count>
      <attachid>141537</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-11 18:14:24 -0700</bug_when>
    <thetext>Comment on attachment 141537
Patch

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

&gt; Source/WebCore/platform/PlatformKeyboardEvent.h:205
&gt; +#if PLATFORM(CHROMIUM)
&gt; +        static bool m_shiftKey;
&gt; +        static bool m_ctrlKey;
&gt; +        static bool m_altKey;
&gt; +        static bool m_metaKey;
&gt; +#endif

This doesn&apos;t seem right.  It seems unlikely that Chromium would need to store static information in this class if other port don&apos;t need do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622175</commentid>
    <comment_count>11</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-11 18:23:35 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 141537 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141537&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/PlatformKeyboardEvent.h:205
&gt; &gt; +#if PLATFORM(CHROMIUM)
&gt; &gt; +        static bool m_shiftKey;
&gt; &gt; +        static bool m_ctrlKey;
&gt; &gt; +        static bool m_altKey;
&gt; &gt; +        static bool m_metaKey;
&gt; &gt; +#endif
&gt; 
&gt; This doesn&apos;t seem right.  It seems unlikely that Chromium would need to store static information in this class if other port don&apos;t need do.

Hi Adam..
this will be a global state... so I can store all these fields in PlatformKeyboardEventChromium.cpp hidden in an anonymous namespace. Would that be acceptable? Also, I am looking for comments on if this is the right way to get the state of these fields.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622177</commentid>
    <comment_count>12</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-11 18:29:20 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 141537 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141537&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/PlatformKeyboardEvent.h:205
&gt; &gt; +#if PLATFORM(CHROMIUM)
&gt; &gt; +        static bool m_shiftKey;
&gt; &gt; +        static bool m_ctrlKey;
&gt; &gt; +        static bool m_altKey;
&gt; &gt; +        static bool m_metaKey;
&gt; &gt; +#endif
&gt; 
&gt; This doesn&apos;t seem right.  It seems unlikely that Chromium would need to store static information in this class if other port don&apos;t need do.

Also note that the getCurrentModifierState() function is not implemented on any other platform (it is implemented only in PlatformKeyboardEventGtk in which it directly gets the state from a gtk_ call, which we have already decided will not work in the chromium case). So perhaps thats why they do not have any static fields.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622179</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-11 18:42:53 -0700</bug_when>
    <thetext>I&apos;m sorry that I don&apos;t have more time to engage in this discussion, but the approach of keeping static state in WebKit does not seem correct.  Other approaches that might work:

1) The embedder supplies this information when creating PlatformKeyboardEvents.  If the embedder wants to have some complicated IPC/caching mechanism, that&apos;s fine, but it&apos;s not a concern of WebKit.

2) WebKit can query the embedder via the Platform API to determine the modifier state.  Again, how the embedder answers this question is likely to be platform-specific, but is not a concern of WebKit.

My guess is that (1) is the better approach, but I haven&apos;t studied the problem in detail, so I can&apos;t be sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622199</commentid>
    <comment_count>14</comment_count>
      <attachid>141537</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 19:19:50 -0700</bug_when>
    <thetext>Comment on attachment 141537
Patch

Attachment 141537 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12673448</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623216</commentid>
    <comment_count>15</comment_count>
      <attachid>141768</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-14 12:33:58 -0700</bug_when>
    <thetext>Created attachment 141768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623219</commentid>
    <comment_count>16</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-14 12:39:14 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; I&apos;m sorry that I don&apos;t have more time to engage in this discussion, but the approach of keeping static state in WebKit does not seem correct.  Other approaches that might work:
&gt; 
&gt; 1) The embedder supplies this information when creating PlatformKeyboardEvents.  If the embedder wants to have some complicated IPC/caching mechanism, that&apos;s fine, but it&apos;s not a concern of WebKit.
&gt; 

Hi Adam, I have re-done the CL taking inspiration from your option #1. The issue I was trying to fix was the lack of modifier key (shift/alt/ctrl) information in drag/drop events. In my current patch, the embedder supplies the relevant information in the Drag event so that the DragController can directly get it from the event instead of asking the embedder. PTAL


&gt; 2) WebKit can query the embedder via the Platform API to determine the modifier state.  Again, how the embedder answers this question is likely to be platform-specific, but is not a concern of WebKit.
&gt; 
&gt; My guess is that (1) is the better approach, but I haven&apos;t studied the problem in detail, so I can&apos;t be sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623261</commentid>
    <comment_count>17</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-14 13:38:06 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=141768&amp;action=review

&gt; Source/WebCore/ChangeLog:3
&gt; +        [chromium] Implement PlatformKeyboardEvent::getCurrentModifierState for non win/mac

This isn&apos;t really accurate anymore.  It would be better to mention that you&apos;re trying to fix modifiers during drag&amp;drop.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * page/DragController.cpp:

What happened to the tests line?  You should explain why you don&apos;t have automated tests (specifically, we mock the d&amp;d events so an automated test wouldn&apos;t work).  You could also add a manual test to ManualTests.

&gt; Source/WebCore/platform/DragData.h:126
&gt; +#if PLATFORM(CHROMIUM)
&gt; +    int modifierKeyState() { return m_modifierKeyState; }
&gt; +#endif

I think it would be OK to add a method to DragData for all platforms.  On Chromium Linux, we would use the extra state we stored, on other platforms, it would just call PlatformKeyboardEvent::getCurrentModifierState.  This would simplify DragController.cpp and keep the chromium specific code in DragDataChromium.cpp.

&gt; Source/WebCore/platform/DragData.h:155
&gt; +#if PLATFORM(CHROMIUM)
&gt; +    int m_modifierKeyState;
&gt; +#endif

Would it be possible to add this to m_platformDragData instead?  We could convert DragDataRef to a pointer to a struct or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623263</commentid>
    <comment_count>18</comment_count>
      <attachid>141768</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-14 13:38:33 -0700</bug_when>
    <thetext>Comment on attachment 141768
Patch

r- for no mention of tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623301</commentid>
    <comment_count>19</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2012-05-14 13:58:36 -0700</bug_when>
    <thetext>On Windows, ::GetKeyState doesn&apos;t appear to work in the sandbox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623406</commentid>
    <comment_count>20</comment_count>
      <attachid>141803</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-14 16:14:28 -0700</bug_when>
    <thetext>Created attachment 141803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623407</commentid>
    <comment_count>21</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-14 16:15:13 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141768&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        [chromium] Implement PlatformKeyboardEvent::getCurrentModifierState for non win/mac
&gt; 
&gt; This isn&apos;t really accurate anymore.  It would be better to mention that you&apos;re trying to fix modifiers during drag&amp;drop.

Done.

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        * page/DragController.cpp:
&gt; 
&gt; What happened to the tests line?  You should explain why you don&apos;t have automated tests (specifically, we mock the d&amp;d events so an automated test wouldn&apos;t work).  You could also add a manual test to ManualTests.

Added manual test.

&gt; 
&gt; &gt; Source/WebCore/platform/DragData.h:126
&gt; &gt; +#if PLATFORM(CHROMIUM)
&gt; &gt; +    int modifierKeyState() { return m_modifierKeyState; }
&gt; &gt; +#endif
&gt; 
&gt; I think it would be OK to add a method to DragData for all platforms.  On Chromium Linux, we would use the extra state we stored, on other platforms, it would just call PlatformKeyboardEvent::getCurrentModifierState.  This would simplify DragController.cpp and keep the chromium specific code in DragDataChromium.cpp.

Done.

&gt; 
&gt; &gt; Source/WebCore/platform/DragData.h:155
&gt; &gt; +#if PLATFORM(CHROMIUM)
&gt; &gt; +    int m_modifierKeyState;
&gt; &gt; +#endif
&gt; 
&gt; Would it be possible to add this to m_platformDragData instead?  We could convert DragDataRef to a pointer to a struct or something.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623409</commentid>
    <comment_count>22</comment_count>
      <attachid>141805</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-14 16:18:42 -0700</bug_when>
    <thetext>Created attachment 141805
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623411</commentid>
    <comment_count>23</comment_count>
      <attachid>141805</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2012-05-14 16:20:00 -0700</bug_when>
    <thetext>Comment on attachment 141805
Patch

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

&gt; Source/WebCore/page/DragController.cpp:86
&gt; +    metaKey = altKey | (keyState &amp; PlatformEvent::MetaKey);

Shouldn&apos;t this be metaKey?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623424</commentid>
    <comment_count>24</comment_count>
      <attachid>141805</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-14 16:30:09 -0700</bug_when>
    <thetext>Comment on attachment 141805
Patch

Attachment 141805 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12707002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623427</commentid>
    <comment_count>25</comment_count>
      <attachid>141805</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-14 16:30:48 -0700</bug_when>
    <thetext>Comment on attachment 141805
Patch

Attachment 141805 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12701199</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623431</commentid>
    <comment_count>26</comment_count>
      <attachid>141805</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-14 16:33:57 -0700</bug_when>
    <thetext>Comment on attachment 141805
Patch

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

r- for Daniel&apos;s comment and the broken mac/win build.

&gt; Source/WebCore/page/DragController.cpp:80
&gt;      PlatformKeyboardEvent::getCurrentModifierState(shiftKey, ctrlKey, altKey, metaKey);

You could maybe remove this call and implement the !CHROMIUM getModifierKeyState in DragData.cpp.  It would just call this function and construct the right keyState.

&gt; Source/WebCore/platform/gtk/DragDataGtk.cpp:51
&gt; +int DragData::getModifierKeyState() const
&gt; +{
&gt; +    return 0;

You could just put this in DragData.cpp behind an #if !PLATFORM(CHROMIUM).  E.g., You forgot DragDataMac.mm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623434</commentid>
    <comment_count>27</comment_count>
      <attachid>141805</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-14 16:35:18 -0700</bug_when>
    <thetext>Comment on attachment 141805
Patch

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

&gt; Source/WebCore/platform/chromium/ChromiumDataObject.h:89
&gt; +    int getModifierKeyState() const { return m_modifierKeyState; }

Nit: WebKit naming normally doesn&apos;t include get.  getModifierKeyState -&gt; modifierKeyState.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624143</commentid>
    <comment_count>28</comment_count>
      <attachid>141982</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-15 08:47:27 -0700</bug_when>
    <thetext>Created attachment 141982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624145</commentid>
    <comment_count>29</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-15 08:47:57 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 141805 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141805&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/DragController.cpp:86
&gt; &gt; +    metaKey = altKey | (keyState &amp; PlatformEvent::MetaKey);
&gt; 
&gt; Shouldn&apos;t this be metaKey?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624146</commentid>
    <comment_count>30</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-15 08:48:16 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 141805 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141805&amp;action=review
&gt; 
&gt; r- for Daniel&apos;s comment and the broken mac/win build.
&gt; 
&gt; &gt; Source/WebCore/page/DragController.cpp:80
&gt; &gt;      PlatformKeyboardEvent::getCurrentModifierState(shiftKey, ctrlKey, altKey, metaKey);
&gt; 
&gt; You could maybe remove this call and implement the !CHROMIUM getModifierKeyState in DragData.cpp.  It would just call this function and construct the right keyState.

Done.

&gt; 
&gt; &gt; Source/WebCore/platform/gtk/DragDataGtk.cpp:51
&gt; &gt; +int DragData::getModifierKeyState() const
&gt; &gt; +{
&gt; &gt; +    return 0;
&gt; 
&gt; You could just put this in DragData.cpp behind an #if !PLATFORM(CHROMIUM).  E.g., You forgot DragDataMac.mm.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624147</commentid>
    <comment_count>31</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-15 08:48:28 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 141805 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141805&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/ChromiumDataObject.h:89
&gt; &gt; +    int getModifierKeyState() const { return m_modifierKeyState; }
&gt; 
&gt; Nit: WebKit naming normally doesn&apos;t include get.  getModifierKeyState -&gt; modifierKeyState.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624483</commentid>
    <comment_count>32</comment_count>
      <attachid>141982</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-15 13:28:58 -0700</bug_when>
    <thetext>Comment on attachment 141982
Patch

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

&gt; Source/WebCore/platform/DragData.cpp:28
&gt; +#if !PLATFORM(CHROMIUM) || (!OS(CHROMEOS) &amp;&amp; !OS(LINUX))

I would remove this #if.  It&apos;s harmless to include these files on Chromium.

&gt; Source/WebCore/platform/DragData.cpp:58
&gt; +#if !PLATFORM(CHROMIUM) || (!OS(CHROMEOS) &amp;&amp; !OS(LINUX))

I would make this just !PLATFORM(CHROMIUM).  We can use the m_modifierKeyState on all version of Chromium, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624614</commentid>
    <comment_count>33</comment_count>
      <attachid>142068</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-15 15:00:24 -0700</bug_when>
    <thetext>Created attachment 142068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624616</commentid>
    <comment_count>34</comment_count>
      <attachid>141982</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-05-15 15:00:43 -0700</bug_when>
    <thetext>Comment on attachment 141982
Patch

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

&gt;&gt; Source/WebCore/platform/DragData.cpp:28
&gt;&gt; +#if !PLATFORM(CHROMIUM) || (!OS(CHROMEOS) &amp;&amp; !OS(LINUX))
&gt; 
&gt; I would remove this #if.  It&apos;s harmless to include these files on Chromium.

Done.

&gt;&gt; Source/WebCore/platform/DragData.cpp:58
&gt;&gt; +#if !PLATFORM(CHROMIUM) || (!OS(CHROMEOS) &amp;&amp; !OS(LINUX))
&gt; 
&gt; I would make this just !PLATFORM(CHROMIUM).  We can use the m_modifierKeyState on all version of Chromium, right?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625771</commentid>
    <comment_count>35</comment_count>
      <attachid>142068</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-16 13:03:53 -0700</bug_when>
    <thetext>Comment on attachment 142068
Patch

Clearing flags on attachment: 142068

Committed r117327: &lt;http://trac.webkit.org/changeset/117327&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625772</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-16 13:04:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141455</attachid>
            <date>2012-05-11 11:23:10 -0700</date>
            <delta_ts>2012-05-11 18:07:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86236-20120511142309.patch</filename>
            <type>text/plain</type>
            <size>2697</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2Njk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBhNWFlY2Q3Y2ZiMjk4
ODJhNTM0ZjMzZGIzZjM2MjJmNjM5MmQ4YS4uNjE1OTZmOTJkNzU3Y2MyNDUxMDlmYTAwMmUxYTQz
ZDQ4NDVkOTRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA1LTExICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBJbXBs
ZW1lbnQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZSBmb3Ig
bm9uIHdpbi9tYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2Rp
ZmllclN0YXRlKToKKwogMjAxMi0wNS0xMCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgTWFrZSBJRlJBTUVfU0VBTUxFU1MgY2hpbGQgZG9jdW1lbnRzIGluaGVyaXQg
c3R5bGVzIGZyb20gdGhlaXIgcGFyZW50IGlmcmFtZSBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRDaHJvbWl1
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybUtleWJvYXJk
RXZlbnRDaHJvbWl1bS5jcHAKaW5kZXggNzI5NGNmNDljOWRmNzcxMGM0NjlkOWFlZWFkMjliMjk3
MjA1MzA3ZS4uNmIxYTU0MGVlN2JkYzZjMmNjMTY5MDAwNWJiNTU5ODMwZWU1NDVkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1LZXlib2FyZEV2
ZW50Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudENocm9taXVtLmNwcApAQCAtMzMsMTAgKzMzLDI4IEBACiAjaW1w
b3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjZWxzZQogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CisjaW5jbHVkZSA8WDExL1hsaWIuaD4KKyNpbmNsdWRlIDxYMTEva2V5c3ltLmg+CiAjZW5kaWYK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCituYW1lc3BhY2UgeworCisjaWYgIU9TKFdJTkRPV1Mp
ICYmICFPUyhEQVJXSU4pCitib29sIElzS2V5UHJlc3NlZChEaXNwbGF5KiB4ZGlzcGxheSwgS2V5
U3ltIGtleVN5bSwgY2hhcioga2V5cykKK3sKKyAgICBLZXlDb2RlIGtleUNvZGUgPSBYS2V5c3lt
VG9LZXljb2RlKHhkaXNwbGF5LCBrZXlTeW0pOworICAgIC8vIFdlIHdhbnQgdG8gY2hlY2sgdGhl
IGtleUNvZGUndGggYml0IGluIHxrZXlzfC4KKyAgICBpbnQgc2tpcHBlZEJ5dGVzID0ga2V5Q29k
ZSAvIDg7CisgICAgY2hhciBpbnRlcmVzdGluZ0J5dGUgPSBrZXlzW3NraXBwZWRCeXRlc107Cisg
ICAgaW50IGJpdFBvcyA9IGtleUNvZGUgLSBza2lwcGVkQnl0ZXMgKiA4OworICAgIHJldHVybiBp
bnRlcmVzdGluZ0J5dGUgJiAoMSA8PCBiaXRQb3MpOworfQorI2VuZGlmCisKK30KKwogI2lmIE9T
KFdJTkRPV1MpCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgSElHSF9CSVRfTUFTS19TSE9S
VCA9IDB4ODAwMDsKICNlbmRpZgpAQCAtMTAwLDExICsxMTgsMTQgQEAgdm9pZCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29s
JiBjdHJsS2UKICAgICBhbHRLZXkgPSBjdXJyZW50TW9kaWZpZXJzICYgOjpvcHRpb25LZXk7CiAg
ICAgbWV0YUtleSA9IGN1cnJlbnRNb2RpZmllcnMgJiA6OmNtZEtleTsKICNlbHNlCi0gICAgc2hp
ZnRLZXkgPSBmYWxzZTsKLSAgICBjdHJsS2V5ID0gZmFsc2U7Ci0gICAgYWx0S2V5ID0gZmFsc2U7
Ci0gICAgbWV0YUtleSA9IGZhbHNlOwotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgRGlzcGxh
eSogeGRpc3BsYXkgPSBYT3BlbkRpc3BsYXkoMCk7CisgICAgY2hhciBrZXlzWzMyXTsKKyAgICBY
UXVlcnlLZXltYXAoeGRpc3BsYXksIGtleXMpOworICAgIHNoaWZ0S2V5ID0gSXNLZXlQcmVzc2Vk
KHhkaXNwbGF5LCBYS19TaGlmdF9MLCBrZXlzKSB8fCBJc0tleVByZXNzZWQoeGRpc3BsYXksIFhL
X1NoaWZ0X1IsIGtleXMpOworICAgIGN0cmxLZXkgPSBJc0tleVByZXNzZWQoeGRpc3BsYXksIFhL
X0NvbnRyb2xfTCwga2V5cykgfHwgSXNLZXlQcmVzc2VkKHhkaXNwbGF5LCBYS19Db250cm9sX1Is
IGtleXMpOworICAgIGFsdEtleSA9IElzS2V5UHJlc3NlZCh4ZGlzcGxheSwgWEtfQWx0X0wsIGtl
eXMpIHx8IElzS2V5UHJlc3NlZCh4ZGlzcGxheSwgWEtfQWx0X1IsIGtleXMpOworICAgIG1ldGFL
ZXkgPSBJc0tleVByZXNzZWQoeGRpc3BsYXksIFhLX01ldGFfTCwga2V5cykgfHwgSXNLZXlQcmVz
c2VkKHhkaXNwbGF5LCBYS19NZXRhX1IsIGtleXMpOworICAgIFhDbG9zZURpc3BsYXkoeGRpc3Bs
YXkpOwogI2VuZGlmCiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141537</attachid>
            <date>2012-05-11 18:07:52 -0700</date>
            <delta_ts>2012-05-14 12:33:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86236-20120511210751.patch</filename>
            <type>text/plain</type>
            <size>10523</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2Njk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBhNWFlY2Q3Y2ZiMjk4
ODJhNTM0ZjMzZGIzZjM2MjJmNjM5MmQ4YS4uZjYwNGUxMjFmNDgxNDYyYzk3MWNkZjdkN2ViNzQ3
ZWYxOThiMzUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA1LTExICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBJbXBs
ZW1lbnQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZSBmb3Ig
bm9uIHdpbi9tYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaDoKKyAgICAgICAgKFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1LZXli
b2FyZEV2ZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2Fy
ZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUtleWJvYXJkRXZlbnQ6OnNldEN1cnJlbnRNb2RpZmllclN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorCiAyMDEyLTA1LTEwICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBNYWtlIElGUkFNRV9TRUFNTEVTUyBjaGlsZCBkb2N1bWVudHMgaW5oZXJpdCBzdHls
ZXMgZnJvbSB0aGVpciBwYXJlbnQgaWZyYW1lIGVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggYTBlNmE1ODEyYmJmYWQ5ZGU4MTcyMzBmNDk5YWFkZGE0OGRkMTE0Zi4uZjIyZGNm
YjI1NGQ1NDM4N2U2MWM3YzNiMmJmOTA4YmYxYjlmZWQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wNS0xMSAgVmFydW4gSmFpbiAgPHZhcnVuamFp
bkBnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gSW1wbGVtZW50IFBsYXRmb3JtS2V5
Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUgZm9yIG5vbiB3aW4vbWFjCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjIzNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYlZp
ZXcuaDoKKyAgICAgICAgKFdlYlZpZXcpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyYWdPdmVyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcm9wKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMi0wNS0xMCAgTWFyayBQaWxncmlt
ICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBDYWxsIGFkZFRy
YWNlRXZlbnQgYW5kIGdldFRyYWNlQ2F0ZWdvcnlFbmFibGVkRmxhZyBkaXJlY3RseQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAppbmRleCA0MjU3
N2Y5ZTZhZTU2OTI5ZTNhNjIwODFmNGM0YzY0NzZmNDVkNTA5Li5iZDA1MjJmMmY2MGViNWE0Y2E1
NmZkYTJiNWE3NzFhOTgwYjE1YTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybUtleWJvYXJkRXZlbnQuaApAQCAtMTM5LDYgKzEzOSwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHN0YXRpYyBib29sIGN1cnJlbnRDYXBzTG9ja1N0YXRlKCk7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIGdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBi
b29sJiBjdHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wmIG1ldGFLZXkpOwogCisjaWYgUExBVEZP
Uk0oQ0hST01JVU0pCisgICAgICAgIHN0YXRpYyB2b2lkIHNldEN1cnJlbnRNb2RpZmllclN0YXRl
KGNvbnN0IGJvb2wmIHNoaWZ0S2V5LCBjb25zdCBib29sJiBjdHJsS2V5LCBjb25zdCBib29sJiBh
bHRLZXksIGNvbnN0IGJvb2wmIG1ldGFLZXkpOworI2VuZGlmCisKICNpZiBQTEFURk9STShCTEFD
S0JFUlJZKQogICAgICAgICB1bnNpZ25lZCBzaG9ydCB1bm1vZGlmaWVkQ2hhcmFjdGVyKCkgY29u
c3QgeyByZXR1cm4gbV91bm1vZGlmaWVkQ2hhcmFjdGVyOyB9CiAjZW5kaWYKQEAgLTE5Myw2ICsx
OTcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1faXNLZXlwYWQ7CiAg
ICAgICAgIGJvb2wgbV9pc1N5c3RlbUtleTsKIAorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAg
ICAgICBzdGF0aWMgYm9vbCBtX3NoaWZ0S2V5OworICAgICAgICBzdGF0aWMgYm9vbCBtX2N0cmxL
ZXk7CisgICAgICAgIHN0YXRpYyBib29sIG1fYWx0S2V5OworICAgICAgICBzdGF0aWMgYm9vbCBt
X21ldGFLZXk7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCiAgICAgICAgIHVu
c2lnbmVkIHNob3J0IG1fdW5tb2RpZmllZENoYXJhY3RlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Q2hy
b21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1LZXli
b2FyZEV2ZW50Q2hyb21pdW0uY3BwCmluZGV4IDcyOTRjZjQ5YzlkZjc3MTBjNDY5ZDlhZWVhZDI5
YjI5NzIwNTMwN2UuLjY1NjZiN2FkN2Y5YzQ1Y2Y0NzFiMGZlYTRlMWQ2NWJlOTkzZjhhMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRDaHJvbWl1bS5jcHAKQEAgLTEwMCwxMiArMTAwLDI0IEBA
IHZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29s
JiBzaGlmdEtleSwgYm9vbCYgY3RybEtlCiAgICAgYWx0S2V5ID0gY3VycmVudE1vZGlmaWVycyAm
IDo6b3B0aW9uS2V5OwogICAgIG1ldGFLZXkgPSBjdXJyZW50TW9kaWZpZXJzICYgOjpjbWRLZXk7
CiAjZWxzZQotICAgIHNoaWZ0S2V5ID0gZmFsc2U7Ci0gICAgY3RybEtleSA9IGZhbHNlOwotICAg
IGFsdEtleSA9IGZhbHNlOwotICAgIG1ldGFLZXkgPSBmYWxzZTsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHNoaWZ0S2V5ID0gbV9zaGlmdEtleTsKKyAgICBjdHJsS2V5ID0gbV9jdHJsS2V5
OworICAgIGFsdEtleSA9IG1fYWx0S2V5OworICAgIG1ldGFLZXkgPSBtX21ldGFLZXk7CiAjZW5k
aWYKIH0KIAordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNldEN1cnJlbnRNb2RpZmllclN0
YXRlKGNvbnN0IGJvb2wmIHNoaWZ0S2V5LCBjb25zdCBib29sJiBjdHJsS2V5LCBjb25zdCBib29s
JiBhbHRLZXksIGNvbnN0IGJvb2wmIG1ldGFLZXkpCit7CisgICAgbV9zaGlmdEtleSA9IHNoaWZ0
S2V5OworICAgIG1fY3RybEtleSA9IGN0cmxLZXk7CisgICAgbV9hbHRLZXkgPSBhbHRLZXk7Cisg
ICAgbV9tZXRhS2V5ID0gbWV0YUtleTsKK30KKworYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
Om1fc2hpZnRLZXkgPSBmYWxzZTsKK2Jvb2wgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjptX2N0cmxL
ZXkgPSBmYWxzZTsKK2Jvb2wgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjptX2FsdEtleSA9IGZhbHNl
OworYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Om1fbWV0YUtleSA9IGZhbHNlOworCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgK
aW5kZXggMTExZWNjNjQxODIxMjNiM2ViM2I5OTdjZGI2NTZmYmZlYjBhN2U1Ny4uNzQxY2YwNGJm
YmYyZWUxYWY1MDkyYWY1YjczZjIxMWQ3OWQ0NmI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaApAQCAtMzEwLDEzICszMTAsMTYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJhZ0VudGVyKAogICAgICAgICBjb25zdCBX
ZWJEcmFnRGF0YSYsCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3Qg
V2ViUG9pbnQmIHNjcmVlblBvaW50LAotICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3Bl
cmF0aW9uc0FsbG93ZWQpID0gMDsKKyAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJh
dGlvbnNBbGxvd2VkLAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKSA9IDA7CiAgICAgdmlydHVh
bCBXZWJEcmFnT3BlcmF0aW9uIGRyYWdUYXJnZXREcmFnT3ZlcigKICAgICAgICAgY29uc3QgV2Vi
UG9pbnQmIGNsaWVudFBvaW50LCBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCi0gICAgICAg
IFdlYkRyYWdPcGVyYXRpb25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCkgPSAwOworICAgICAgICBX
ZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQsCisgICAgICAgIGludCBrZXlN
b2RpZmllcnMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhZ1RhcmdldERyYWdMZWF2ZSgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhZ1RhcmdldERyb3AoCi0gICAgICAgIGNvbnN0IFdlYlBv
aW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50KSA9IDA7CisgICAg
ICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBv
aW50LAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKSA9IDA7CiAKIAogICAgIC8vIFN1cHBvcnQg
Zm9yIHJlc291cmNlIGxvYWRpbmcgaW5pdGlhdGVkIGJ5IHBsdWdpbnMgLS0tLS0tLS0tLS0tLS0t
LS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDU0
ZTRkNTAwZTZkNWU1MTY5MGNiYWVmN2ZhYTAzZDlkOTBhYmNmZGIuLmNjNGE5MjBiMTM1ODExY2U0
OTViMGYzYzE1YTIyNDI3NGIzY2ZhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKQEAgLTE2MzksNiArMTYzOSwxMSBAQCBjb25zdCBXZWJJbnB1dEV2ZW50
KiBXZWJWaWV3SW1wbDo6bV9jdXJyZW50SW5wdXRFdmVudCA9IDA7CiAKIGJvb2wgV2ViVmlld0lt
cGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgaW5wdXRFdmVudCkKIHsK
KyAgICBXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNldEN1cnJlbnRNb2RpZmllclN0
YXRlKGlucHV0RXZlbnQubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6U2hpZnRLZXksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnB1dEV2ZW50Lm1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OkNvbnRyb2xLZXksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1
dEV2ZW50Lm1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OkFsdEtleSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0RXZlbnQu
bW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6TWV0YUtleSk7CisKICAgICBVc2VyR2VzdHVyZUlu
ZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKFdlYklucHV0RXZlbnQ6OmlzVXNlckdlc3R1cmVFdmVu
dFR5cGUoaW5wdXRFdmVudC50eXBlKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUg
OiBQb3NzaWJseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CiAKICAgICAvLyBJZiB3ZSd2ZSBzdGFy
dGVkIGEgZHJhZyBhbmQgZHJvcCBvcGVyYXRpb24sIGlnbm9yZSBpbnB1dCBldmVudHMgdW50aWwK
QEAgLTI1ODEsMTAgKzI1ODYsMTYgQEAgV2ViRHJhZ09wZXJhdGlvbiBXZWJWaWV3SW1wbDo6ZHJh
Z1RhcmdldERyYWdFbnRlcigKICAgICBjb25zdCBXZWJEcmFnRGF0YSYgd2ViRHJhZ0RhdGEsCiAg
ICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAogICAgIGNvbnN0IFdlYlBvaW50JiBzY3Jl
ZW5Qb2ludCwKLSAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpCisg
ICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkLAorICAgIGludCBrZXlN
b2RpZmllcnMpCiB7CiAgICAgQVNTRVJUKCFtX2N1cnJlbnREcmFnRGF0YSk7CiAKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNldEN1cnJlbnRNb2RpZmllclN0YXRlKGtleU1v
ZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OlNoaWZ0S2V5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5TW9kaWZpZXJzICYgV2Vi
SW5wdXRFdmVudDo6Q29udHJvbEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleU1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6
OkFsdEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGtleU1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6Ok1ldGFLZXkpOworCiAg
ICAgbV9jdXJyZW50RHJhZ0RhdGEgPSB3ZWJEcmFnRGF0YTsKICAgICBtX29wZXJhdGlvbnNBbGxv
d2VkID0gb3BlcmF0aW9uc0FsbG93ZWQ7CiAKQEAgLTI1OTQsOCArMjYwNSwxNCBAQCBXZWJEcmFn
T3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyKAogV2ViRHJhZ09wZXJh
dGlvbiBXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyYWdPdmVyKAogICAgIGNvbnN0IFdlYlBvaW50
JiBjbGllbnRQb2ludCwKICAgICBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCi0gICAgV2Vi
RHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkKQorICAgIFdlYkRyYWdPcGVyYXRp
b25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCwKKyAgICBpbnQga2V5TW9kaWZpZXJzKQogeworICAg
IFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2V0Q3VycmVudE1vZGlmaWVyU3RhdGUo
a2V5TW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6U2hpZnRLZXksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlNb2RpZmllcnMg
JiBXZWJJbnB1dEV2ZW50OjpDb250cm9sS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5TW9kaWZpZXJzICYgV2ViSW5wdXRF
dmVudDo6QWx0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga2V5TW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6TWV0YUtleSk7
CisKICAgICBtX29wZXJhdGlvbnNBbGxvd2VkID0gb3BlcmF0aW9uc0FsbG93ZWQ7CiAKICAgICBy
ZXR1cm4gZHJhZ1RhcmdldERyYWdFbnRlck9yT3ZlcihjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQs
IERyYWdPdmVyKTsKQEAgLTI2MjAsMTAgKzI2MzcsMTYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZHJh
Z1RhcmdldERyYWdMZWF2ZSgpCiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcm9w
KGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCBrZXlNb2RpZmllcnMpCiB7CiAgICAgQVNTRVJUKG1fY3Vy
cmVudERyYWdEYXRhKTsKIAorICAgIFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2V0
Q3VycmVudE1vZGlmaWVyU3RhdGUoa2V5TW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6U2hpZnRL
ZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBrZXlNb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpDb250cm9sS2V5LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5
TW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6QWx0S2V5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5TW9kaWZpZXJzICYgV2Vi
SW5wdXRFdmVudDo6TWV0YUtleSk7CisKICAgICAvLyBJZiB0aGlzIHdlYnZpZXcgdHJhbnNpdGlv
bnMgZnJvbSB0aGUgImRyb3AgYWNjZXB0aW5nIiBzdGF0ZSB0byB0aGUgIm5vdAogICAgIC8vIGFj
Y2VwdGluZyIgc3RhdGUsIHRoZW4gb3VyIElQQyBtZXNzYWdlIHJlcGx5IGluZGljYXRpbmcgdGhh
dCBtYXkgYmUgaW4tCiAgICAgLy8gZmxpZ2h0LCBvciBlbHNlIGRlbGF5ZWQgYnkgamF2YXNjcmlw
dCBwcm9jZXNzaW5nIGluIHRoaXMgd2Vidmlldy4gIElmIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDkzODNiYTI4ZDk2MDhiYTJkYzVkMGE3ZmQyNDE3YTg4
MjRlMDk0ZDcuLjRjMjNhNTkwYjk5NDA1ZGJjNWY5Nzg4MWEzMTFlNDM5ZjFjYjFlYWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMjI3LDE1ICsyMjcsMTgg
QEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYsCiAgICAgICAgIGNvbnN0IFdl
YlBvaW50JiBjbGllbnRQb2ludCwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50
LAotICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpOworICAg
ICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQsCisgICAgICAgIGlu
dCBrZXlNb2RpZmllcnMpOwogICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0
RHJhZ092ZXIoCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKICAgICAgICAg
Y29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAotICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01h
c2sgb3BlcmF0aW9uc0FsbG93ZWQpOworICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3Bl
cmF0aW9uc0FsbG93ZWQsCisgICAgICAgIGludCBrZXlNb2RpZmllcnMpOwogICAgIHZpcnR1YWwg
dm9pZCBkcmFnVGFyZ2V0RHJhZ0xlYXZlKCk7CiAgICAgdmlydHVhbCB2b2lkIGRyYWdUYXJnZXRE
cm9wKAogICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCi0gICAgICAgIGNvbnN0
IFdlYlBvaW50JiBzY3JlZW5Qb2ludCk7CisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Q
b2ludCwKKyAgICAgICAgaW50IGtleU1vZGlmaWVycyk7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBs
b25nIGNyZWF0ZVVuaXF1ZUlkZW50aWZpZXJGb3JSZXF1ZXN0KCk7CiAgICAgdmlydHVhbCB2b2lk
IGluc3BlY3RFbGVtZW50QXQoY29uc3QgV2ViUG9pbnQmIHBvaW50KTsKICAgICB2aXJ0dWFsIFdl
YlN0cmluZyBpbnNwZWN0b3JTZXR0aW5ncygpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141768</attachid>
            <date>2012-05-14 12:33:58 -0700</date>
            <delta_ts>2012-05-14 16:14:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86236-20120514153356.patch</filename>
            <type>text/plain</type>
            <size>14341</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZmMGI5MTQ3ZGU3Yzdl
Y2ZjZjAzYTAwOTg0MzI4MzEzNGIwZWFiZi4uZGIyMDM5ZWMyYjNjMTBlNmY5NTkyNzgyYzllOTNh
MzAyODZlNjU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA1LTE0ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBJbXBs
ZW1lbnQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZSBmb3Ig
bm9uIHdpbi9tYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1v
dXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdEYXRhLmg6CisgICAgICAgIChEcmFn
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6bW9kaWZpZXJLZXlTdGF0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnRGF0YTo6RHJhZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIw
MTItMDUtMTMgIFZpY3RvciBDYXJidW5lICA8dmNhcmJ1bmVAYWRvYmUuY29tPgogCiAgICAgICAg
IFZvbHVtZSBzbGlkZXIgbmVlZHMgdG8gYmUgZGlzcGxheWVkIGJlbG93IHRoZSBtdXRlIGJ1dHRv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmOGE1MGJjNTAzMzY5ZGNiMzg5ZjljODk3
ZjFhYmZlYjNjODA4MWJiLi42ZmYyZGM2OTg1MWY0OWQ1Yzk4ZTczMDU2NGNlYWVhMTJiMDFkYWRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTE0
ICBWYXJ1biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVt
XSBJbXBsZW1lbnQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0
ZSBmb3Igbm9uIHdpbi9tYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisgICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6d2ViSW5wdXRFdmVudEtl
eVN0YXRlVG9QbGF0Zm9ybUV2ZW50S2V5U3RhdGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyYWdPdmVyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcm9wKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXJPck92ZXIpOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTA1LTEyICBTaGVyaWZmIEJv
dCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTE2ODEyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApp
bmRleCA4OWQ3MmFlODM2MzhmNzY0Y2Q2ZGIwZmQxOGU0M2QwYjljOTRmMjVkLi5lMmIyNzViOTY1
YTIyMTYwMGVmYjdmZTAzMDJmZDZmMDAyOGQ3NWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcApAQCAtNzcsNyArNzcsMTUgQEAgc3RhdGljIFBsYXRmb3JtTW91c2VFdmVu
dCBjcmVhdGVNb3VzZUV2ZW50KERyYWdEYXRhKiBkcmFnRGF0YSkKIHsKICAgICBib29sIHNoaWZ0
S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXk7CiAgICAgc2hpZnRLZXkgPSBjdHJsS2V5ID0g
YWx0S2V5ID0gbWV0YUtleSA9IGZhbHNlOworI2lmIFBMQVRGT1JNKENIUk9NSVVNKSAmJiAoT1Mo
Q0hST01FT1MpIHx8IE9TKExJTlVYKSkKKyAgICBpbnQga2V5U3RhdGUgPSBkcmFnRGF0YS0+bW9k
aWZpZXJLZXlTdGF0ZSgpOworICAgIHNoaWZ0S2V5ID0ga2V5U3RhdGUgJiBQbGF0Zm9ybUV2ZW50
OjpTaGlmdEtleTsKKyAgICBjdHJsS2V5ID0ga2V5U3RhdGUgJiBQbGF0Zm9ybUV2ZW50OjpDdHJs
S2V5OworICAgIGFsdEtleSA9IGtleVN0YXRlICYgUGxhdGZvcm1FdmVudDo6QWx0S2V5OworICAg
IG1ldGFLZXkgPSBrZXlTdGF0ZSAmIFBsYXRmb3JtRXZlbnQ6Ok1ldGFLZXk7CisjZWxzZQogICAg
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoc2hpZnRLZXks
IGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSk7CisjZW5kaWYKICAgICByZXR1cm4gUGxhdGZvcm1N
b3VzZUV2ZW50KGRyYWdEYXRhLT5jbGllbnRQb3NpdGlvbigpLCBkcmFnRGF0YS0+Z2xvYmFsUG9z
aXRpb24oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhS2V5LCBjdXJyZW50VGltZSgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCmluZGV4IDgyM2FjNTUzZTViZmRjMTIyYjNhMmE1YzQ1M2M0
ZGZmNzgyZmI3YTcuLjcxNDdlODExMzMzNmZkNDUxMTk1NjAzNWJiYzRmNGNiMDA4YzgzODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtOTQsNiArOTQsOSBAQCBwdWJsaWM6CiAg
ICAgLy8gY2xpZW50UG9zaXRpb24gaXMgdGFrZW4gdG8gYmUgdGhlIHBvc2l0aW9uIG9mIHRoZSBk
cmFnIGV2ZW50IHdpdGhpbiB0aGUgdGFyZ2V0IHdpbmRvdywgd2l0aCAoMCwwKSBhdCB0aGUgdG9w
IGxlZnQKICAgICBEcmFnRGF0YShEcmFnRGF0YVJlZiwgY29uc3QgSW50UG9pbnQmIGNsaWVudFBv
c2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIERyYWdPcGVyYXRpb24sIERy
YWdBcHBsaWNhdGlvbkZsYWdzID0gRHJhZ0FwcGxpY2F0aW9uTm9uZSk7CiAgICAgRHJhZ0RhdGEo
Y29uc3QgU3RyaW5nJiBkcmFnU3RvcmFnZU5hbWUsIGNvbnN0IEludFBvaW50JiBjbGllbnRQb3Np
dGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBEcmFnT3BlcmF0aW9uLCBEcmFn
QXBwbGljYXRpb25GbGFncyA9IERyYWdBcHBsaWNhdGlvbk5vbmUpOworI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQorICAgIERyYWdEYXRhKERyYWdEYXRhUmVmLCBjb25zdCBJbnRQb2ludCYgY2xpZW50
UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgRHJhZ09wZXJhdGlvbiwg
aW50IG1vZGlmaWVyS2V5U3RhdGUsIERyYWdBcHBsaWNhdGlvbkZsYWdzID0gRHJhZ0FwcGxpY2F0
aW9uTm9uZSk7CisjZW5kaWYKICNpZiBQTEFURk9STShXSU4pCiAgICAgRHJhZ0RhdGEoY29uc3Qg
RHJhZ0RhdGFNYXAmLCBjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgRHJhZ09wZXJhdGlvbiBzb3VyY2VPcGVyYXRpb25NYXNrLCBE
cmFnQXBwbGljYXRpb25GbGFncyA9IERyYWdBcHBsaWNhdGlvbk5vbmUpOwogICAgIGNvbnN0IERy
YWdEYXRhTWFwJiBkcmFnRGF0YU1hcCgpOwpAQCAtMTE4LDYgKzEyMSw5IEBAIHB1YmxpYzoKICAg
ICBib29sIGNvbnRhaW5zQ29sb3IoKSBjb25zdDsKICAgICBib29sIGNvbnRhaW5zRmlsZXMoKSBj
b25zdDsKICAgICB1bnNpZ25lZCBudW1iZXJPZkZpbGVzKCkgY29uc3Q7CisjaWYgUExBVEZPUk0o
Q0hST01JVU0pCisgICAgaW50IG1vZGlmaWVyS2V5U3RhdGUoKSB7IHJldHVybiBtX21vZGlmaWVy
S2V5U3RhdGU7IH0KKyNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmROYW1lKCkgeyByZXR1cm4gbV9wYXN0ZWJvYXJkTmFtZTsgfQogI2VuZGlmCkBA
IC0xNDQsNiArMTUwLDkgQEAgcHJpdmF0ZToKICAgICBEcmFnRGF0YVJlZiBtX3BsYXRmb3JtRHJh
Z0RhdGE7CiAgICAgRHJhZ09wZXJhdGlvbiBtX2RyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzazsK
ICAgICBEcmFnQXBwbGljYXRpb25GbGFncyBtX2FwcGxpY2F0aW9uRmxhZ3M7CisjaWYgUExBVEZP
Uk0oQ0hST01JVU0pCisgICAgaW50IG1fbW9kaWZpZXJLZXlTdGF0ZTsKKyNlbmRpZgogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBTdHJpbmcgbV9wYXN0ZWJvYXJkTmFtZTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNw
cAppbmRleCAwMDlhM2EwOGFjYzBlOTJjYjk3MDNhYWZlOGZkZDkxYjkwNWQ2ZGJhLi40Y2QyZDJi
YzI3OGJkMWU1N2JiODZmZjM4MTQzN2UzODNlOTg1NTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcApAQCAtNDgsNiAr
NDgsMTcgQEAgc3RhdGljIGJvb2wgY29udGFpbnNIVE1MKGNvbnN0IENocm9taXVtRGF0YU9iamVj
dCogZHJvcERhdGEpCiAgICAgcmV0dXJuIGRyb3BEYXRhLT50eXBlcygpLmNvbnRhaW5zKG1pbWVU
eXBlVGV4dEhUTUwpOwogfQogCitEcmFnRGF0YTo6RHJhZ0RhdGEoRHJhZ0RhdGFSZWYgZGF0YSwg
Y29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9z
aXRpb24sCisgICAgRHJhZ09wZXJhdGlvbiBzb3VyY2VPcGVyYXRpb25NYXNrLCBpbnQgbW9kaWZp
ZXJLZXlTdGF0ZSwgRHJhZ0FwcGxpY2F0aW9uRmxhZ3MgZmxhZ3MpCisgICAgOiBtX2NsaWVudFBv
c2l0aW9uKGNsaWVudFBvc2l0aW9uKQorICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3Np
dGlvbikKKyAgICAsIG1fcGxhdGZvcm1EcmFnRGF0YShkYXRhKQorICAgICwgbV9kcmFnZ2luZ1Nv
dXJjZU9wZXJhdGlvbk1hc2soc291cmNlT3BlcmF0aW9uTWFzaykKKyAgICAsIG1fYXBwbGljYXRp
b25GbGFncyhmbGFncykKKyAgICAsIG1fbW9kaWZpZXJLZXlTdGF0ZShtb2RpZmllcktleVN0YXRl
KQoreworfQorCiBib29sIERyYWdEYXRhOjpjb250YWluc1VSTChGcmFtZSosIEZpbGVuYW1lQ29u
dmVyc2lvblBvbGljeSBmaWxlbmFtZVBvbGljeSkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wbGF0
Zm9ybURyYWdEYXRhLT50eXBlcygpLmNvbnRhaW5zKG1pbWVUeXBlVGV4dFVSSUxpc3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggMTExZWNjNjQxODIxMjNiM2Vi
M2I5OTdjZGI2NTZmYmZlYjBhN2U1Ny4uYWUyMzUwZDE4NzU5MWYxNGM3MDFhOGE3OTk4ZWVmZTA3
MzM3Y2Y2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMzA3
LDE2ICszMDcsMzEgQEAgcHVibGljOgogCiAgICAgLy8gQ2FsbGJhY2sgbWV0aG9kcyB3aGVuIGEg
ZHJhZy1hbmQtZHJvcCBvcGVyYXRpb24gaXMgdHJ5aW5nIHRvIGRyb3AKICAgICAvLyBzb21ldGhp
bmcgb24gdGhlIFdlYlZpZXcuCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBhZnRl
ciBjaHJvbWl1bSBjaGFuZ2VzIGNhdGNoIHVwLgogICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlv
biBkcmFnVGFyZ2V0RHJhZ0VudGVyKAogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYsCiAgICAg
ICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBv
aW50LAogICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpID0g
MDsKKyAgICB2aXJ0dWFsIFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdFbnRlcigKKyAg
ICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmLAorICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50
UG9pbnQsIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKKyAgICAgICAgV2ViRHJhZ09wZXJh
dGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkLAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKSA9
IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBhZnRlciBjaHJvbWl1bSBjaGFu
Z2VzIGNhdGNoIHVwLgogICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJh
Z092ZXIoCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9p
bnQmIHNjcmVlblBvaW50LAogICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9u
c0FsbG93ZWQpID0gMDsKKyAgICB2aXJ0dWFsIFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERy
YWdPdmVyKAorICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsIGNvbnN0IFdlYlBv
aW50JiBzY3JlZW5Qb2ludCwKKyAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlv
bnNBbGxvd2VkLAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRyYWdUYXJnZXREcmFnTGVhdmUoKSA9IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlz
IG1ldGhvZCBhZnRlciBjaHJvbWl1bSBjaGFuZ2VzIGNhdGNoIHVwLgogICAgIHZpcnR1YWwgdm9p
ZCBkcmFnVGFyZ2V0RHJvcCgKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LCBj
b25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhZ1Rh
cmdldERyb3AoCisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3QgV2Vi
UG9pbnQmIHNjcmVlblBvaW50LAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKSA9IDA7CiAKIAog
ICAgIC8vIFN1cHBvcnQgZm9yIHJlc291cmNlIGxvYWRpbmcgaW5pdGlhdGVkIGJ5IHBsdWdpbnMg
LS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCmluZGV4IDI5YzNjMDQ5YTBiOGE2Y2Q1ZWVmMmY1ZjQwMDQ2NDY1NDAwNjc5NGQuLjY4
MWM3NWE2OWEyMjI0ZGY0NjE1YThkY2U2OTM4Njg1MDExM2U2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTI0Myw2ICsyNDMsMjAgQEAgc3RhdGlj
IGNvbnN0IFBvcHVwQ29udGFpbmVyU2V0dGluZ3MgYXV0b2ZpbGxQb3B1cFNldHRpbmdzID0gewog
CiBzdGF0aWMgYm9vbCBzaG91bGRVc2VFeHRlcm5hbFBvcHVwTWVudXMgPSBmYWxzZTsKIAorc3Rh
dGljIGludCB3ZWJJbnB1dEV2ZW50S2V5U3RhdGVUb1BsYXRmb3JtRXZlbnRLZXlTdGF0ZShpbnQg
d2ViSW5wdXRFdmVudEtleVN0YXRlKQoreworICAgIGludCBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUg
PSAwOworICAgIGlmICh3ZWJJbnB1dEV2ZW50S2V5U3RhdGUgJiBXZWJJbnB1dEV2ZW50OjpTaGlm
dEtleSkKKyAgICAgICAgcGxhdGZvcm1FdmVudEtleVN0YXRlID0gcGxhdGZvcm1FdmVudEtleVN0
YXRlIHwgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6U2hpZnRLZXk7CisgICAgaWYgKHdlYklucHV0
RXZlbnRLZXlTdGF0ZSAmIFdlYklucHV0RXZlbnQ6OkNvbnRyb2xLZXkpCisgICAgICAgIHBsYXRm
b3JtRXZlbnRLZXlTdGF0ZSA9IHBsYXRmb3JtRXZlbnRLZXlTdGF0ZSB8IFdlYkNvcmU6OlBsYXRm
b3JtRXZlbnQ6OkN0cmxLZXk7CisgICAgaWYgKHdlYklucHV0RXZlbnRLZXlTdGF0ZSAmIFdlYklu
cHV0RXZlbnQ6OkFsdEtleSkKKyAgICAgICAgcGxhdGZvcm1FdmVudEtleVN0YXRlID0gcGxhdGZv
cm1FdmVudEtleVN0YXRlIHwgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6QWx0S2V5OworICAgIGlm
ICh3ZWJJbnB1dEV2ZW50S2V5U3RhdGUgJiBXZWJJbnB1dEV2ZW50OjpNZXRhS2V5KQorICAgICAg
ICBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUgPSBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUgfCBXZWJDb3Jl
OjpQbGF0Zm9ybUV2ZW50OjpNZXRhS2V5OworICAgIHJldHVybiBwbGF0Zm9ybUV2ZW50S2V5U3Rh
dGU7Cit9CisKIC8vIFdlYlZpZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBXZWJWaWV3KiBXZWJWaWV3OjpjcmVhdGUo
V2ViVmlld0NsaWVudCogY2xpZW50KQpAQCAtMjU5NSwxMiArMjYwOSwyMiBAQCBXZWJEcmFnT3Bl
cmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyKAogICAgIGNvbnN0IFdlYlBv
aW50JiBzY3JlZW5Qb2ludCwKICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0Fs
bG93ZWQpCiB7CisgICAgcmV0dXJuIGRyYWdUYXJnZXREcmFnRW50ZXIod2ViRHJhZ0RhdGEsIGNs
aWVudFBvaW50LCBzY3JlZW5Qb2ludCwgb3BlcmF0aW9uc0FsbG93ZWQsIDApOworfQorCitXZWJE
cmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyKAorICAgIGNvbnN0
IFdlYkRyYWdEYXRhJiB3ZWJEcmFnRGF0YSwKKyAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9p
bnQsCisgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAorICAgIFdlYkRyYWdPcGVyYXRp
b25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCwKKyAgICBpbnQga2V5TW9kaWZpZXJzKQorewogICAg
IEFTU0VSVCghbV9jdXJyZW50RHJhZ0RhdGEpOwogCiAgICAgbV9jdXJyZW50RHJhZ0RhdGEgPSB3
ZWJEcmFnRGF0YTsKICAgICBtX29wZXJhdGlvbnNBbGxvd2VkID0gb3BlcmF0aW9uc0FsbG93ZWQ7
CiAKLSAgICByZXR1cm4gZHJhZ1RhcmdldERyYWdFbnRlck9yT3ZlcihjbGllbnRQb2ludCwgc2Ny
ZWVuUG9pbnQsIERyYWdFbnRlcik7CisgICAgcmV0dXJuIGRyYWdUYXJnZXREcmFnRW50ZXJPck92
ZXIoY2xpZW50UG9pbnQsIHNjcmVlblBvaW50LCBEcmFnRW50ZXIsIGtleU1vZGlmaWVycyk7CiB9
CiAKIFdlYkRyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnT3ZlcigKQEAg
LTI2MDgsOSArMjYzMiwxOCBAQCBXZWJEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFy
Z2V0RHJhZ092ZXIoCiAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAogICAgIFdlYkRy
YWdPcGVyYXRpb25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCkKIHsKKyAgICByZXR1cm4gZHJhZ1Rh
cmdldERyYWdPdmVyKGNsaWVudFBvaW50LCBzY3JlZW5Qb2ludCwgb3BlcmF0aW9uc0FsbG93ZWQs
IDApOworfQorCitXZWJEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ092
ZXIoCisgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAorICAgIGNvbnN0IFdlYlBvaW50
JiBzY3JlZW5Qb2ludCwKKyAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93
ZWQsCisgICAgaW50IGtleU1vZGlmaWVycykKK3sKICAgICBtX29wZXJhdGlvbnNBbGxvd2VkID0g
b3BlcmF0aW9uc0FsbG93ZWQ7CiAKLSAgICByZXR1cm4gZHJhZ1RhcmdldERyYWdFbnRlck9yT3Zl
cihjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQsIERyYWdPdmVyKTsKKyAgICByZXR1cm4gZHJhZ1Rh
cmdldERyYWdFbnRlck9yT3ZlcihjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQsIERyYWdPdmVyLCBr
ZXlNb2RpZmllcnMpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0xlYXZl
KCkKQEAgLTI2MzQsNiArMjY2NywxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJh
Z0xlYXZlKCkKIHZvaWQgV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcm9wKGNvbnN0IFdlYlBvaW50
JiBjbGllbnRQb2ludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdl
YlBvaW50JiBzY3JlZW5Qb2ludCkKIHsKKyAgICBkcmFnVGFyZ2V0RHJvcChjbGllbnRQb2ludCwg
c2NyZWVuUG9pbnQsIDApOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJvcChj
b25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQga2V5TW9kaWZpZXJzKQorewogICAgIEFTU0VSVChtX2N1cnJlbnREcmFn
RGF0YSk7CiAKICAgICAvLyBJZiB0aGlzIHdlYnZpZXcgdHJhbnNpdGlvbnMgZnJvbSB0aGUgImRy
b3AgYWNjZXB0aW5nIiBzdGF0ZSB0byB0aGUgIm5vdApAQCAtMjY1Miw3ICsyNjkyLDggQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyb3AoY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50
LAogICAgICAgICBtX2N1cnJlbnREcmFnRGF0YS5nZXQoKSwKICAgICAgICAgY2xpZW50UG9pbnQs
CiAgICAgICAgIHNjcmVlblBvaW50LAotICAgICAgICBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9u
PihtX29wZXJhdGlvbnNBbGxvd2VkKSk7CisgICAgICAgIHN0YXRpY19jYXN0PERyYWdPcGVyYXRp
b24+KG1fb3BlcmF0aW9uc0FsbG93ZWQpLAorICAgICAgICB3ZWJJbnB1dEV2ZW50S2V5U3RhdGVU
b1BsYXRmb3JtRXZlbnRLZXlTdGF0ZShrZXlNb2RpZmllcnMpKTsKIAogICAgIG1fcGFnZS0+ZHJh
Z0NvbnRyb2xsZXIoKS0+cGVyZm9ybURyYWcoJmRyYWdEYXRhKTsKIApAQCAtMjY2Miw3ICsyNzAz
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyb3AoY29uc3QgV2ViUG9pbnQmIGNs
aWVudFBvaW50LAogICAgIG1fZHJhZ1Njcm9sbFRpbWVyLT5zdG9wKCk7CiB9CiAKLVdlYkRyYWdP
cGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXJPck92ZXIoY29uc3QgV2Vi
UG9pbnQmIGNsaWVudFBvaW50LCBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsIERyYWdBY3Rp
b24gZHJhZ0FjdGlvbikKK1dlYkRyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXRE
cmFnRW50ZXJPck92ZXIoY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LCBjb25zdCBXZWJQb2lu
dCYgc2NyZWVuUG9pbnQsIERyYWdBY3Rpb24gZHJhZ0FjdGlvbiwgaW50IGtleU1vZGlmaWVycykK
IHsKICAgICBBU1NFUlQobV9jdXJyZW50RHJhZ0RhdGEpOwogCkBAIC0yNjcwLDcgKzI3MTEsOCBA
QCBXZWJEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVy
KGNvbnN0IFdlYlBvaW50JiBjbGllbnRQbwogICAgICAgICBtX2N1cnJlbnREcmFnRGF0YS5nZXQo
KSwKICAgICAgICAgY2xpZW50UG9pbnQsCiAgICAgICAgIHNjcmVlblBvaW50LAotICAgICAgICBz
dGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihtX29wZXJhdGlvbnNBbGxvd2VkKSk7CisgICAgICAg
IHN0YXRpY19jYXN0PERyYWdPcGVyYXRpb24+KG1fb3BlcmF0aW9uc0FsbG93ZWQpLAorICAgICAg
ICB3ZWJJbnB1dEV2ZW50S2V5U3RhdGVUb1BsYXRmb3JtRXZlbnRLZXlTdGF0ZShrZXlNb2RpZmll
cnMpKTsKIAogICAgIERyYWdTZXNzaW9uIGRyYWdTZXNzaW9uOwogICAgIGlmIChkcmFnQWN0aW9u
ID09IERyYWdFbnRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmlu
ZGV4IGM5NmRhNGM2ZTk3MWNiNTg0ZjMxYjQ4YTk3YmI5ZjI3YzhiNDQ3OWUuLjdiNDkyMDMxZDA1
MzVkYmJjYTE2YTllZDAzOWI5OWQ1ZDhlOWYzMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaApAQCAtMjI5LDE0ICsyMjksMjkgQEAgcHVibGljOgogICAgICAgICBj
b25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3Jl
ZW5Qb2ludCwKICAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2Vk
KTsKKyAgICB2aXJ0dWFsIFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdFbnRlcigKKyAg
ICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmLAorICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50
UG9pbnQsCisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKKyAgICAgICAgV2Vi
RHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkLAorICAgICAgICBpbnQga2V5TW9k
aWZpZXJzKTsKICAgICB2aXJ0dWFsIFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdPdmVy
KAogICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCiAgICAgICAgIGNvbnN0IFdl
YlBvaW50JiBzY3JlZW5Qb2ludCwKICAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJh
dGlvbnNBbGxvd2VkKTsKKyAgICB2aXJ0dWFsIFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERy
YWdPdmVyKAorICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCisgICAgICAgIGNv
bnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKKyAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNr
IG9wZXJhdGlvbnNBbGxvd2VkLAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKTsKICAgICB2aXJ0
dWFsIHZvaWQgZHJhZ1RhcmdldERyYWdMZWF2ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkcmFnVGFy
Z2V0RHJvcCgKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAogICAgICAgICBj
b25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQpOworICAgIHZpcnR1YWwgdm9pZCBkcmFnVGFyZ2V0
RHJvcCgKKyAgICAgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAorICAgICAgICBjb25z
dCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCisgICAgICAgIGludCBrZXlNb2RpZmllcnMpOwogICAg
IHZpcnR1YWwgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJZGVudGlmaWVyRm9yUmVxdWVzdCgp
OwogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0RWxlbWVudEF0KGNvbnN0IFdlYlBvaW50JiBwb2lu
dCk7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgaW5zcGVjdG9yU2V0dGluZ3MoKSBjb25zdDsKQEAg
LTU4Miw3ICs1OTcsOCBAQCBwcml2YXRlOgogICAgIC8vIHNob3VsZCBiZSB0cnVlLgogICAgIFdl
YkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdFbnRlck9yT3Zlcihjb25zdCBXZWJQb2ludCYg
Y2xpZW50UG9pbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRHJhZ0FjdGlvbik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERyYWdBY3Rpb24sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBrZXlNb2RpZmllcnMpOwogCiAgICAg
dm9pZCBjb25maWd1cmVBdXRvUmVzaXplTW9kZSgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141803</attachid>
            <date>2012-05-14 16:14:28 -0700</date>
            <delta_ts>2012-05-14 16:18:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86236-20120514191427.patch</filename>
            <type>text/plain</type>
            <size>18285</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZmMGI5MTQ3ZGU3Yzdl
Y2ZjZjAzYTAwOTg0MzI4MzEzNGIwZWFiZi4uYTNiOWViODg5OGUxNmE3NTI4NzM1ZjljYjM2NjQz
ODM0ZGNhNTZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA1LTE0ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBObyBt
b2RpZmllciBmbGFncyAoc2hpZnQvY3RybC9hbHQpIGluIGRyYWcmZHJvcCBldmVudHMgb24gY2hy
b21pdW0gbGludXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFudWFsVGVzdDogTWFudWFsVGVzdHMvY2hyb21pdW0vbW9kaWZpZXJzLWR1cmluZy1kcmFn
LWFuZC1kcm9wLmh0bWwgCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL0Ry
YWdEYXRhLmg6CisgICAgICAgIChEcmFnRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0
YU9iamVjdDo6Q2hyb21pdW1EYXRhT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bURhdGFPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9i
amVjdDo6Z2V0TW9kaWZpZXJLZXlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURh
dGFPYmplY3Q6OnNldE1vZGlmaWVyS2V5U3RhdGUpOgorICAgICAgICAoQ2hyb21pdW1EYXRhT2Jq
ZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpnZXRNb2RpZmllcktleVN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6Z2V0TW9kaWZpZXJLZXlTdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvRHJhZ0RhdGFHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmdldE1vZGlmaWVyS2V5U3RhdGUpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnRGF0YTo6Z2V0TW9kaWZpZXJLZXlTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0RhdGE6OmdldE1vZGlmaWVyS2V5U3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFXaW5DRS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnRGF0YTo6Z2V0TW9kaWZpZXJLZXlTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9EcmFnRGF0YVd4LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdEYXRhOjpnZXRNb2RpZmllcktleVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmUp
OgorCiAyMDEyLTA1LTEzICBWaWN0b3IgQ2FyYnVuZSAgPHZjYXJidW5lQGFkb2JlLmNvbT4KIAog
ICAgICAgICBWb2x1bWUgc2xpZGVyIG5lZWRzIHRvIGJlIGRpc3BsYXllZCBiZWxvdyB0aGUgbXV0
ZSBidXR0b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjhhNTBiYzUwMzM2OWRjYjM4
OWY5Yzg5N2YxYWJmZWIzYzgwODFiYi4uZmU0MTg0MzVjMmQxNmM5NDIzNzM1NmJiMmY0MTRjYzFm
MmFkNTMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAx
Mi0wNS0xNCAgVmFydW4gSmFpbiAgPHZhcnVuamFpbkBnb29nbGUuY29tPgorCisgICAgICAgIFtj
aHJvbWl1bV0gTm8gbW9kaWZpZXIgZmxhZ3MgKHNoaWZ0L2N0cmwvYWx0KSBpbiBkcmFnJmRyb3Ag
ZXZlbnRzIG9uIGNocm9taXVtIGxpbnV4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NjIzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXcpOgor
ICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OndlYklucHV0
RXZlbnRLZXlTdGF0ZVRvUGxhdGZvcm1FdmVudEtleVN0YXRlKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnT3Zlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJvcCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVyKToKKyAgICAgICAgKiBzcmMv
V2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMi0wNS0xMiAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjExNjgxMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggODlkNzJhZTgzNjM4Zjc2NGNkNmRiMGZkMThlNDNkMGI5Yzk0ZjI1ZC4uODY2
ZjA2NTNmNWE5MWRmZDY4NjFhNzg3NjdmY2JlMWZjODExMmIwMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTc4LDYgKzc4LDEzIEBAIHN0YXRpYyBQbGF0Zm9ybU1v
dXNlRXZlbnQgY3JlYXRlTW91c2VFdmVudChEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgYm9vbCBz
aGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5OwogICAgIHNoaWZ0S2V5ID0gY3RybEtl
eSA9IGFsdEtleSA9IG1ldGFLZXkgPSBmYWxzZTsKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFL
ZXkpOworCisgICAgaW50IGtleVN0YXRlID0gZHJhZ0RhdGEtPmdldE1vZGlmaWVyS2V5U3RhdGUo
KTsKKyAgICBzaGlmdEtleSA9IHNoaWZ0S2V5IHwgKGtleVN0YXRlICYgUGxhdGZvcm1FdmVudDo6
U2hpZnRLZXkpOworICAgIGN0cmxLZXkgPSBjdHJsS2V5IHwgKGtleVN0YXRlICYgUGxhdGZvcm1F
dmVudDo6Q3RybEtleSk7CisgICAgYWx0S2V5ID0gYWx0S2V5IHwgKGtleVN0YXRlICYgUGxhdGZv
cm1FdmVudDo6QWx0S2V5KTsKKyAgICBtZXRhS2V5ID0gYWx0S2V5IHwgKGtleVN0YXRlICYgUGxh
dGZvcm1FdmVudDo6TWV0YUtleSk7CisKICAgICByZXR1cm4gUGxhdGZvcm1Nb3VzZUV2ZW50KGRy
YWdEYXRhLT5jbGllbnRQb3NpdGlvbigpLCBkcmFnRGF0YS0+Z2xvYmFsUG9zaXRpb24oKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXRhS2V5LCBjdXJyZW50VGltZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9E
cmFnRGF0YS5oCmluZGV4IDgyM2FjNTUzZTViZmRjMTIyYjNhMmE1YzQ1M2M0ZGZmNzgyZmI3YTcu
LjViZGNlZjY5MjM2OGRhZGJlYzBiMjJhZDM4ZDEwZjkzNjZhYzJjZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRHJhZ0RhdGEuaApAQCAtMTE4LDYgKzExOCw3IEBAIHB1YmxpYzoKICAgICBib29sIGNv
bnRhaW5zQ29sb3IoKSBjb25zdDsKICAgICBib29sIGNvbnRhaW5zRmlsZXMoKSBjb25zdDsKICAg
ICB1bnNpZ25lZCBudW1iZXJPZkZpbGVzKCkgY29uc3Q7CisgICAgaW50IGdldE1vZGlmaWVyS2V5
U3RhdGUoKSBjb25zdDsKICNpZiBQTEFURk9STShNQUMpCiAgICAgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSgpIHsgcmV0dXJuIG1fcGFzdGVib2FyZE5hbWU7IH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVj
dC5jcHAKaW5kZXggZTY1NmY0NGIyN2E4ZTFmY2FjMTZjOGYwMGZlNTRmMWQxZDU5ODQyYS4uODc2
ZWM0Mzc5NjZkZjM5NzNmZmQ3N2U4ZGE0ZTM4NjViY2YwYzI4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwCkBA
IC0yMTMsMTIgKzIxMywxNCBAQCB2b2lkIENocm9taXVtRGF0YU9iamVjdDo6YWRkU2hhcmVkQnVm
ZmVyKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxTaGFyZWRCdQogfQogCiBDaHJvbWl1
bURhdGFPYmplY3Q6OkNocm9taXVtRGF0YU9iamVjdCgpCisgICAgOiBtX21vZGlmaWVyS2V5U3Rh
dGUoMCkKIHsKIH0KIAogQ2hyb21pdW1EYXRhT2JqZWN0OjpDaHJvbWl1bURhdGFPYmplY3QoY29u
c3QgQ2hyb21pdW1EYXRhT2JqZWN0JiBvdGhlcikKICAgICA6IFJlZkNvdW50ZWQ8Q2hyb21pdW1E
YXRhT2JqZWN0PigpCiAgICAgLCBtX2l0ZW1MaXN0KG90aGVyLm1faXRlbUxpc3QpCisgICAgLCBt
X21vZGlmaWVyS2V5U3RhdGUoMCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAppbmRleCAxYTVkNzg5OGE0ZWMz
OTIyNjg3MmMzMDhmOTg1N2Y1Y2IxMWFiOThiLi5hODBmOGQxY2EyYmE4N2UxYTEyOTk2NGQ0MTA5
ZmI0MjhiYTgzZTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bURhdGFPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaApAQCAtODYsNiArODYsOSBAQCBwdWJsaWM6CiAgICAg
Ly8gVXNlZCB0byBoYW5kbGUgZmlsZXMgKGltYWdlcykgYmVpbmcgZHJhZ2dlZCBvdXQuCiAgICAg
dm9pZCBhZGRTaGFyZWRCdWZmZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4pOwogCisgICAgaW50IGdldE1vZGlmaWVyS2V5U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX21vZGlmaWVyS2V5U3RhdGU7IH0KKyAgICB2b2lkIHNldE1vZGlmaWVyS2V5U3RhdGUoaW50
IG1vZGlmaWVyS2V5U3RhdGUpIHsgbV9tb2RpZmllcktleVN0YXRlID0gbW9kaWZpZXJLZXlTdGF0
ZTsgfQorCiBwcml2YXRlOgogICAgIENocm9taXVtRGF0YU9iamVjdCgpOwogICAgIGV4cGxpY2l0
IENocm9taXVtRGF0YU9iamVjdChjb25zdCBDaHJvbWl1bURhdGFPYmplY3QmKTsKQEAgLTk1LDYg
Kzk4LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludGVybmFsQWRkRmlsZUl0ZW0oUGFzc1JlZlB0
cjxDaHJvbWl1bURhdGFPYmplY3RJdGVtPik7CiAKICAgICBWZWN0b3I8UmVmUHRyPENocm9taXVt
RGF0YU9iamVjdEl0ZW0+ID4gbV9pdGVtTGlzdDsKKworICAgIC8vIFN0YXRlIG9mIFNoaWZ0L0N0
cmwvQWx0L01ldGEga2V5cy4KKyAgICBpbnQgbV9tb2RpZmllcktleVN0YXRlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAppbmRleCAwMDlhM2EwOGFjYzBlOTJjYjk3MDNh
YWZlOGZkZDkxYjkwNWQ2ZGJhLi40YWRkODFhYWQzOGY0ZmFmNzg3N2VjZjFjYzg2YTc0OTZmMDAx
ZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0
YUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFn
RGF0YUNocm9taXVtLmNwcApAQCAtNzUsNiArNzUsMTEgQEAgdW5zaWduZWQgRHJhZ0RhdGE6Om51
bWJlck9mRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVu
YW1lcygpLnNpemUoKTsKIH0KIAoraW50IERyYWdEYXRhOjpnZXRNb2RpZmllcktleVN0YXRlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9wbGF0Zm9ybURyYWdEYXRhLT5nZXRNb2RpZmllcktleVN0
YXRlKCk7Cit9CisKIHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiBy
ZXN1bHQpIGNvbnN0CiB7CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcyA9IG1f
cGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL0RyYWdEYXRhRWZsLmNwcAppbmRleCA5ZDdlOWNhNzk1YzhmN2QxYmMzNjg4MmEzYTRhYzgx
ZjRiOGMwOTcwLi4wZDI5YWUzMTE3ZjkwNzc2NDZjOTliMDg0MTQwZmUwNDVkMTBmY2M2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAKQEAgLTQ2LDYgKzQ2
LDExIEBAIHVuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKICAgICByZXR1
cm4gMDsKIH0KIAoraW50IERyYWdEYXRhOjpnZXRNb2RpZmllcktleVN0YXRlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0
cmluZz4mIHJlc3VsdCkgY29uc3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9EcmFnRGF0YUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
RHJhZ0RhdGFHdGsuY3BwCmluZGV4IDAyYTQ3NDlkMzNjYmIyOTljOGRkNjZlMzVjMDA5MWFiMjhm
MTBhZTcuLjBhYTNjZTI1MWQ4ZjU0NWExNGFjMTA1MzA5NDRkNDQ1NjIxOTQwOGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnRGF0YUd0ay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcApAQCAtNDYsNiArNDYsMTEg
QEAgdW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBt
X3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygpLnNpemUoKTsKIH0KIAoraW50IERyYWdEYXRh
OjpnZXRNb2RpZmllcktleVN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwogdm9p
ZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29uc3QKIHsK
ICAgICByZXN1bHQgPSBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcAppbmRleCAwMzAzYWQ3YzkyNGExNWRkZGUy
ZTM0YjdmOWY4OGFlMTM3ZDhmMGNhLi4xMGJjOTlhMDMxZWIwNWFlYzczODQ5N2Q3Y2U3YWRlNjY0
ODg1ZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcApAQCAt
NjcsNiArNjcsMTEgQEAgdW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAog
ICAgIHJldHVybiAwOwogfQogCitpbnQgRHJhZ0RhdGE6OmdldE1vZGlmaWVyS2V5U3RhdGUoKSBj
b25zdAoreworICAgIHJldHVybiAwOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhW
ZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAgIGlmICghbV9wbGF0Zm9ybURyYWdE
YXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdEYXRhV2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnRGF0YVdpbi5jcHAKaW5kZXgg
NDZhOTA3M2NiZjQ1NTNiOTVmZTRkYTdlNTFjMDY5MTM5MTljZGYyYS4uN2YxMGQwYmIxOGQyMGFm
ZTI0OGFjYzVkYWFkMDBiNGQxZjI1OWRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0RyYWdEYXRhV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vRHJhZ0RhdGFXaW4uY3BwCkBAIC0xMTQsNiArMTE0LDExIEBAIHVuc2lnbmVkIERyYWdEYXRh
OjpudW1iZXJPZkZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAoraW50IERyYWdEYXRh
OjpnZXRNb2RpZmllcktleVN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwogdm9p
ZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29uc3QKIHsK
ICAgICBpZiAobV9wbGF0Zm9ybURyYWdEYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW5jZS9EcmFnRGF0YVdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbmNlL0RyYWdEYXRhV2luQ0UuY3BwCmluZGV4IGNjNWY3YTdhYWQzMWQ3NzMxMDA3ZTBh
ODBkZTk3MWI5MjNiZDg1NDcuLjY5OWU5NjI4NDRmOTQ3NGU1NmQ2YmUzZWFlODM1MjkzMjA4ZTgw
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL0RyYWdEYXRhV2lu
Q0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL0RyYWdEYXRhV2luQ0Uu
Y3BwCkBAIC01Miw2ICs1MiwxMSBAQCB1bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygp
IGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK2ludCBEcmFnRGF0YTo6Z2V0TW9kaWZpZXJLZXlT
dGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgRHJhZ0RhdGE6OmFzRmls
ZW5hbWVzKFZlY3RvcjxTdHJpbmc+JikgY29uc3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3d4L0RyYWdEYXRhV3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3gvRHJhZ0RhdGFXeC5jcHAKaW5kZXggODJlNDc0MGE0ZGQwN2I5NjYwMmQ0M2RlYTUxZDk5
OTFhNjMxZDEwMS4uMGQyZmFlYTgwNWM0OWM4OWVhZmNkNjk0OTYwM2U5NDBlMTdhYjJkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRHJhZ0RhdGFXeC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRHJhZ0RhdGFXeC5jcHAKQEAgLTUyLDYgKzUyLDEx
IEBAIHVuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKICAgICByZXR1cm4g
MDsKIH0KIAoraW50IERyYWdEYXRhOjpnZXRNb2RpZmllcktleVN0YXRlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gMDsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmlu
Zz4mIHJlc3VsdCkgY29uc3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZp
ZXcuaAppbmRleCAxMTFlY2M2NDE4MjEyM2IzZWIzYjk5N2NkYjY1NmZiZmViMGE3ZTU3Li5hZTIz
NTBkMTg3NTkxZjE0YzcwMWE4YTc5OThlZWZlMDczMzdjZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0zMDcsMTYgKzMwNywzMSBAQCBwdWJsaWM6CiAKICAg
ICAvLyBDYWxsYmFjayBtZXRob2RzIHdoZW4gYSBkcmFnLWFuZC1kcm9wIG9wZXJhdGlvbiBpcyB0
cnlpbmcgdG8gZHJvcAogICAgIC8vIHNvbWV0aGluZyBvbiB0aGUgV2ViVmlldy4KKyAgICAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGFmdGVyIGNocm9taXVtIGNoYW5nZXMgY2F0Y2ggdXAu
CiAgICAgdmlydHVhbCBXZWJEcmFnT3BlcmF0aW9uIGRyYWdUYXJnZXREcmFnRW50ZXIoCiAgICAg
ICAgIGNvbnN0IFdlYkRyYWdEYXRhJiwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBv
aW50LCBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCiAgICAgICAgIFdlYkRyYWdPcGVyYXRp
b25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCkgPSAwOworICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJh
dGlvbiBkcmFnVGFyZ2V0RHJhZ0VudGVyKAorICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYsCisg
ICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVl
blBvaW50LAorICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQs
CisgICAgICAgIGludCBrZXlNb2RpZmllcnMpID0gMDsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRo
aXMgbWV0aG9kIGFmdGVyIGNocm9taXVtIGNoYW5nZXMgY2F0Y2ggdXAuCiAgICAgdmlydHVhbCBX
ZWJEcmFnT3BlcmF0aW9uIGRyYWdUYXJnZXREcmFnT3ZlcigKICAgICAgICAgY29uc3QgV2ViUG9p
bnQmIGNsaWVudFBvaW50LCBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCiAgICAgICAgIFdl
YkRyYWdPcGVyYXRpb25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCkgPSAwOworICAgIHZpcnR1YWwg
V2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJhZ092ZXIoCisgICAgICAgIGNvbnN0IFdlYlBv
aW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAorICAgICAgICBX
ZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQsCisgICAgICAgIGludCBrZXlN
b2RpZmllcnMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhZ1RhcmdldERyYWdMZWF2ZSgpID0g
MDsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGFmdGVyIGNocm9taXVtIGNoYW5n
ZXMgY2F0Y2ggdXAuCiAgICAgdmlydHVhbCB2b2lkIGRyYWdUYXJnZXREcm9wKAogICAgICAgICBj
b25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmFnVGFyZ2V0RHJvcCgKKyAgICAgICAgY29uc3QgV2Vi
UG9pbnQmIGNsaWVudFBvaW50LCBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCisgICAgICAg
IGludCBrZXlNb2RpZmllcnMpID0gMDsKIAogCiAgICAgLy8gU3VwcG9ydCBmb3IgcmVzb3VyY2Ug
bG9hZGluZyBpbml0aWF0ZWQgYnkgcGx1Z2lucyAtLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMjljM2MwNDlhMGI4YTZj
ZDVlZWYyZjVmNDAwNDY0NjU0MDA2Nzk0ZC4uYTdjNTliODU4NGQwNWExZWFkNmFkZmRmNGU2ZGZk
MDdhZTQ2NTg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cApAQCAtMjQzLDYgKzI0MywyMCBAQCBzdGF0aWMgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5n
cyBhdXRvZmlsbFBvcHVwU2V0dGluZ3MgPSB7CiAKIHN0YXRpYyBib29sIHNob3VsZFVzZUV4dGVy
bmFsUG9wdXBNZW51cyA9IGZhbHNlOwogCitzdGF0aWMgaW50IHdlYklucHV0RXZlbnRLZXlTdGF0
ZVRvUGxhdGZvcm1FdmVudEtleVN0YXRlKGludCB3ZWJJbnB1dEV2ZW50S2V5U3RhdGUpCit7Cisg
ICAgaW50IHBsYXRmb3JtRXZlbnRLZXlTdGF0ZSA9IDA7CisgICAgaWYgKHdlYklucHV0RXZlbnRL
ZXlTdGF0ZSAmIFdlYklucHV0RXZlbnQ6OlNoaWZ0S2V5KQorICAgICAgICBwbGF0Zm9ybUV2ZW50
S2V5U3RhdGUgPSBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUgfCBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50
OjpTaGlmdEtleTsKKyAgICBpZiAod2ViSW5wdXRFdmVudEtleVN0YXRlICYgV2ViSW5wdXRFdmVu
dDo6Q29udHJvbEtleSkKKyAgICAgICAgcGxhdGZvcm1FdmVudEtleVN0YXRlID0gcGxhdGZvcm1F
dmVudEtleVN0YXRlIHwgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6Q3RybEtleTsKKyAgICBpZiAo
d2ViSW5wdXRFdmVudEtleVN0YXRlICYgV2ViSW5wdXRFdmVudDo6QWx0S2V5KQorICAgICAgICBw
bGF0Zm9ybUV2ZW50S2V5U3RhdGUgPSBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUgfCBXZWJDb3JlOjpQ
bGF0Zm9ybUV2ZW50OjpBbHRLZXk7CisgICAgaWYgKHdlYklucHV0RXZlbnRLZXlTdGF0ZSAmIFdl
YklucHV0RXZlbnQ6Ok1ldGFLZXkpCisgICAgICAgIHBsYXRmb3JtRXZlbnRLZXlTdGF0ZSA9IHBs
YXRmb3JtRXZlbnRLZXlTdGF0ZSB8IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1ldGFLZXk7Cisg
ICAgcmV0dXJuIHBsYXRmb3JtRXZlbnRLZXlTdGF0ZTsKK30KKwogLy8gV2ViVmlldyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKIFdlYlZpZXcqIFdlYlZpZXc6OmNyZWF0ZShXZWJWaWV3Q2xpZW50KiBjbGllbnQpCkBAIC0y
NTk1LDEyICsyNjA5LDIyIEBAIFdlYkRyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJn
ZXREcmFnRW50ZXIoCiAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAogICAgIFdlYkRy
YWdPcGVyYXRpb25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCkKIHsKKyAgICByZXR1cm4gZHJhZ1Rh
cmdldERyYWdFbnRlcih3ZWJEcmFnRGF0YSwgY2xpZW50UG9pbnQsIHNjcmVlblBvaW50LCBvcGVy
YXRpb25zQWxsb3dlZCwgMCk7Cit9CisKK1dlYkRyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRy
YWdUYXJnZXREcmFnRW50ZXIoCisgICAgY29uc3QgV2ViRHJhZ0RhdGEmIHdlYkRyYWdEYXRhLAor
ICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKKyAgICBjb25zdCBXZWJQb2ludCYgc2Ny
ZWVuUG9pbnQsCisgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkLAor
ICAgIGludCBrZXlNb2RpZmllcnMpCit7CiAgICAgQVNTRVJUKCFtX2N1cnJlbnREcmFnRGF0YSk7
CiAKICAgICBtX2N1cnJlbnREcmFnRGF0YSA9IHdlYkRyYWdEYXRhOwogICAgIG1fb3BlcmF0aW9u
c0FsbG93ZWQgPSBvcGVyYXRpb25zQWxsb3dlZDsKIAotICAgIHJldHVybiBkcmFnVGFyZ2V0RHJh
Z0VudGVyT3JPdmVyKGNsaWVudFBvaW50LCBzY3JlZW5Qb2ludCwgRHJhZ0VudGVyKTsKKyAgICBy
ZXR1cm4gZHJhZ1RhcmdldERyYWdFbnRlck9yT3ZlcihjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQs
IERyYWdFbnRlciwga2V5TW9kaWZpZXJzKTsKIH0KIAogV2ViRHJhZ09wZXJhdGlvbiBXZWJWaWV3
SW1wbDo6ZHJhZ1RhcmdldERyYWdPdmVyKApAQCAtMjYwOCw5ICsyNjMyLDE4IEBAIFdlYkRyYWdP
cGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnT3ZlcigKICAgICBjb25zdCBXZWJQ
b2ludCYgc2NyZWVuUG9pbnQsCiAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNB
bGxvd2VkKQogeworICAgIHJldHVybiBkcmFnVGFyZ2V0RHJhZ092ZXIoY2xpZW50UG9pbnQsIHNj
cmVlblBvaW50LCBvcGVyYXRpb25zQWxsb3dlZCwgMCk7Cit9CisKK1dlYkRyYWdPcGVyYXRpb24g
V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnT3ZlcigKKyAgICBjb25zdCBXZWJQb2ludCYgY2xp
ZW50UG9pbnQsCisgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAorICAgIFdlYkRyYWdP
cGVyYXRpb25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCwKKyAgICBpbnQga2V5TW9kaWZpZXJzKQor
ewogICAgIG1fb3BlcmF0aW9uc0FsbG93ZWQgPSBvcGVyYXRpb25zQWxsb3dlZDsKIAotICAgIHJl
dHVybiBkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVyKGNsaWVudFBvaW50LCBzY3JlZW5Qb2ludCwg
RHJhZ092ZXIpOworICAgIHJldHVybiBkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVyKGNsaWVudFBv
aW50LCBzY3JlZW5Qb2ludCwgRHJhZ092ZXIsIGtleU1vZGlmaWVycyk7CiB9CiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OmRyYWdUYXJnZXREcmFnTGVhdmUoKQpAQCAtMjYzNCw2ICsyNjY3LDEzIEBAIHZv
aWQgV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnTGVhdmUoKQogdm9pZCBXZWJWaWV3SW1wbDo6
ZHJhZ1RhcmdldERyb3AoY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50KQogeworICAg
IGRyYWdUYXJnZXREcm9wKGNsaWVudFBvaW50LCBzY3JlZW5Qb2ludCwgMCk7Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcm9wKGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Q
b2ludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBrZXlNb2RpZmllcnMp
Cit7CiAgICAgQVNTRVJUKG1fY3VycmVudERyYWdEYXRhKTsKIAogICAgIC8vIElmIHRoaXMgd2Vi
dmlldyB0cmFuc2l0aW9ucyBmcm9tIHRoZSAiZHJvcCBhY2NlcHRpbmciIHN0YXRlIHRvIHRoZSAi
bm90CkBAIC0yNjQ4LDYgKzI2ODgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJv
cChjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyAgICBtX2N1cnJlbnREcmFnRGF0YS0+c2V0TW9kaWZpZXJLZXlTdGF0ZSh3ZWJJbnB1dEV2ZW50
S2V5U3RhdGVUb1BsYXRmb3JtRXZlbnRLZXlTdGF0ZShrZXlNb2RpZmllcnMpKTsKICAgICBEcmFn
RGF0YSBkcmFnRGF0YSgKICAgICAgICAgbV9jdXJyZW50RHJhZ0RhdGEuZ2V0KCksCiAgICAgICAg
IGNsaWVudFBvaW50LApAQCAtMjY2MiwxMCArMjcwMywxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpk
cmFnVGFyZ2V0RHJvcChjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCiAgICAgbV9kcmFnU2Ny
b2xsVGltZXItPnN0b3AoKTsKIH0KIAotV2ViRHJhZ09wZXJhdGlvbiBXZWJWaWV3SW1wbDo6ZHJh
Z1RhcmdldERyYWdFbnRlck9yT3Zlcihjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsIGNvbnN0
IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwgRHJhZ0FjdGlvbiBkcmFnQWN0aW9uKQorV2ViRHJhZ09w
ZXJhdGlvbiBXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyYWdFbnRlck9yT3Zlcihjb25zdCBXZWJQ
b2ludCYgY2xpZW50UG9pbnQsIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwgRHJhZ0FjdGlv
biBkcmFnQWN0aW9uLCBpbnQga2V5TW9kaWZpZXJzKQogewogICAgIEFTU0VSVChtX2N1cnJlbnRE
cmFnRGF0YSk7CiAKKyAgICBtX2N1cnJlbnREcmFnRGF0YS0+c2V0TW9kaWZpZXJLZXlTdGF0ZSh3
ZWJJbnB1dEV2ZW50S2V5U3RhdGVUb1BsYXRmb3JtRXZlbnRLZXlTdGF0ZShrZXlNb2RpZmllcnMp
KTsKICAgICBEcmFnRGF0YSBkcmFnRGF0YSgKICAgICAgICAgbV9jdXJyZW50RHJhZ0RhdGEuZ2V0
KCksCiAgICAgICAgIGNsaWVudFBvaW50LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKaW5kZXggYzk2ZGE0YzZlOTcxY2I1ODRmMzFiNDhhOTdiYjlmMjdjOGI0NDc5ZS4u
N2I0OTIwMzFkMDUzNWRiYmNhMTZhOWVkMDM5Yjk5ZDVkOGU5ZjMxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0yMjksMTQgKzIyOSwyOSBAQCBwdWJsaWM6
CiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKICAgICAgICAgY29uc3QgV2Vi
UG9pbnQmIHNjcmVlblBvaW50LAogICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0
aW9uc0FsbG93ZWQpOworICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJh
Z0VudGVyKAorICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYsCisgICAgICAgIGNvbnN0IFdlYlBv
aW50JiBjbGllbnRQb2ludCwKKyAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAor
ICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQsCisgICAgICAg
IGludCBrZXlNb2RpZmllcnMpOwogICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFy
Z2V0RHJhZ092ZXIoCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKICAgICAg
ICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAogICAgICAgICBXZWJEcmFnT3BlcmF0aW9u
c01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpOworICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBk
cmFnVGFyZ2V0RHJhZ092ZXIoCisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwK
KyAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAorICAgICAgICBXZWJEcmFnT3Bl
cmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQsCisgICAgICAgIGludCBrZXlNb2RpZmllcnMp
OwogICAgIHZpcnR1YWwgdm9pZCBkcmFnVGFyZ2V0RHJhZ0xlYXZlKCk7CiAgICAgdmlydHVhbCB2
b2lkIGRyYWdUYXJnZXREcm9wKAogICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQs
CiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCk7CisgICAgdmlydHVhbCB2b2lk
IGRyYWdUYXJnZXREcm9wKAorICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCisg
ICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKKyAgICAgICAgaW50IGtleU1vZGlm
aWVycyk7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1ZUlkZW50aWZpZXJG
b3JSZXF1ZXN0KCk7CiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RFbGVtZW50QXQoY29uc3QgV2Vi
UG9pbnQmIHBvaW50KTsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBpbnNwZWN0b3JTZXR0aW5ncygp
IGNvbnN0OwpAQCAtNTgyLDcgKzU5Nyw4IEBAIHByaXZhdGU6CiAgICAgLy8gc2hvdWxkIGJlIHRy
dWUuCiAgICAgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVyKGNvbnN0
IFdlYlBvaW50JiBjbGllbnRQb2ludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEcmFnQWN0aW9uKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJhZ0FjdGlvbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGtleU1vZGlmaWVy
cyk7CiAKICAgICB2b2lkIGNvbmZpZ3VyZUF1dG9SZXNpemVNb2RlKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141805</attachid>
            <date>2012-05-14 16:18:42 -0700</date>
            <delta_ts>2012-05-15 08:47:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86236-20120514191841.patch</filename>
            <type>text/plain</type>
            <size>20127</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZmMGI5MTQ3ZGU3Yzdl
Y2ZjZjAzYTAwOTg0MzI4MzEzNGIwZWFiZi4uZjUyN2VlZTM3MzJhOTUxMzg1Y2I2MmZmZDNmMjRi
MmUyZWE1MTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA1LTE0ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBObyBt
b2RpZmllciBmbGFncyAoc2hpZnQvY3RybC9hbHQpIGluIGRyYWcmZHJvcCBldmVudHMgb24gY2hy
b21pdW0gbGludXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFudWFsVGVzdHM6IE1hbnVhbFRlc3RzL2Nocm9taXVtL21vZGlmaWVycy1kdXJpbmctZHJh
Zy1hbmQtZHJvcC5odG1sCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL0Ry
YWdEYXRhLmg6CisgICAgICAgIChEcmFnRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0
YU9iamVjdDo6Q2hyb21pdW1EYXRhT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bURhdGFPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9i
amVjdDo6Z2V0TW9kaWZpZXJLZXlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURh
dGFPYmplY3Q6OnNldE1vZGlmaWVyS2V5U3RhdGUpOgorICAgICAgICAoQ2hyb21pdW1EYXRhT2Jq
ZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpnZXRNb2RpZmllcktleVN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6Z2V0TW9kaWZpZXJLZXlTdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvRHJhZ0RhdGFHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmdldE1vZGlmaWVyS2V5U3RhdGUpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnRGF0YTo6Z2V0TW9kaWZpZXJLZXlTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0RhdGE6OmdldE1vZGlmaWVyS2V5U3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFXaW5DRS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnRGF0YTo6Z2V0TW9kaWZpZXJLZXlTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9EcmFnRGF0YVd4LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdEYXRhOjpnZXRNb2RpZmllcktleVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmUp
OgorCiAyMDEyLTA1LTEzICBWaWN0b3IgQ2FyYnVuZSAgPHZjYXJidW5lQGFkb2JlLmNvbT4KIAog
ICAgICAgICBWb2x1bWUgc2xpZGVyIG5lZWRzIHRvIGJlIGRpc3BsYXllZCBiZWxvdyB0aGUgbXV0
ZSBidXR0b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjhhNTBiYzUwMzM2OWRjYjM4
OWY5Yzg5N2YxYWJmZWIzYzgwODFiYi4uZmU0MTg0MzVjMmQxNmM5NDIzNzM1NmJiMmY0MTRjYzFm
MmFkNTMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAx
Mi0wNS0xNCAgVmFydW4gSmFpbiAgPHZhcnVuamFpbkBnb29nbGUuY29tPgorCisgICAgICAgIFtj
aHJvbWl1bV0gTm8gbW9kaWZpZXIgZmxhZ3MgKHNoaWZ0L2N0cmwvYWx0KSBpbiBkcmFnJmRyb3Ag
ZXZlbnRzIG9uIGNocm9taXVtIGxpbnV4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NjIzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXcpOgor
ICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OndlYklucHV0
RXZlbnRLZXlTdGF0ZVRvUGxhdGZvcm1FdmVudEtleVN0YXRlKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnT3Zlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJvcCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVyKToKKyAgICAgICAgKiBzcmMv
V2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMi0wNS0xMiAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjExNjgxMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggODlkNzJhZTgzNjM4Zjc2NGNkNmRiMGZkMThlNDNkMGI5Yzk0ZjI1ZC4uODY2
ZjA2NTNmNWE5MWRmZDY4NjFhNzg3NjdmY2JlMWZjODExMmIwMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTc4LDYgKzc4LDEzIEBAIHN0YXRpYyBQbGF0Zm9ybU1v
dXNlRXZlbnQgY3JlYXRlTW91c2VFdmVudChEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgYm9vbCBz
aGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5OwogICAgIHNoaWZ0S2V5ID0gY3RybEtl
eSA9IGFsdEtleSA9IG1ldGFLZXkgPSBmYWxzZTsKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFL
ZXkpOworCisgICAgaW50IGtleVN0YXRlID0gZHJhZ0RhdGEtPmdldE1vZGlmaWVyS2V5U3RhdGUo
KTsKKyAgICBzaGlmdEtleSA9IHNoaWZ0S2V5IHwgKGtleVN0YXRlICYgUGxhdGZvcm1FdmVudDo6
U2hpZnRLZXkpOworICAgIGN0cmxLZXkgPSBjdHJsS2V5IHwgKGtleVN0YXRlICYgUGxhdGZvcm1F
dmVudDo6Q3RybEtleSk7CisgICAgYWx0S2V5ID0gYWx0S2V5IHwgKGtleVN0YXRlICYgUGxhdGZv
cm1FdmVudDo6QWx0S2V5KTsKKyAgICBtZXRhS2V5ID0gYWx0S2V5IHwgKGtleVN0YXRlICYgUGxh
dGZvcm1FdmVudDo6TWV0YUtleSk7CisKICAgICByZXR1cm4gUGxhdGZvcm1Nb3VzZUV2ZW50KGRy
YWdEYXRhLT5jbGllbnRQb3NpdGlvbigpLCBkcmFnRGF0YS0+Z2xvYmFsUG9zaXRpb24oKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXRhS2V5LCBjdXJyZW50VGltZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9E
cmFnRGF0YS5oCmluZGV4IDgyM2FjNTUzZTViZmRjMTIyYjNhMmE1YzQ1M2M0ZGZmNzgyZmI3YTcu
LjViZGNlZjY5MjM2OGRhZGJlYzBiMjJhZDM4ZDEwZjkzNjZhYzJjZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRHJhZ0RhdGEuaApAQCAtMTE4LDYgKzExOCw3IEBAIHB1YmxpYzoKICAgICBib29sIGNv
bnRhaW5zQ29sb3IoKSBjb25zdDsKICAgICBib29sIGNvbnRhaW5zRmlsZXMoKSBjb25zdDsKICAg
ICB1bnNpZ25lZCBudW1iZXJPZkZpbGVzKCkgY29uc3Q7CisgICAgaW50IGdldE1vZGlmaWVyS2V5
U3RhdGUoKSBjb25zdDsKICNpZiBQTEFURk9STShNQUMpCiAgICAgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSgpIHsgcmV0dXJuIG1fcGFzdGVib2FyZE5hbWU7IH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVj
dC5jcHAKaW5kZXggZTY1NmY0NGIyN2E4ZTFmY2FjMTZjOGYwMGZlNTRmMWQxZDU5ODQyYS4uODc2
ZWM0Mzc5NjZkZjM5NzNmZmQ3N2U4ZGE0ZTM4NjViY2YwYzI4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwCkBA
IC0yMTMsMTIgKzIxMywxNCBAQCB2b2lkIENocm9taXVtRGF0YU9iamVjdDo6YWRkU2hhcmVkQnVm
ZmVyKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxTaGFyZWRCdQogfQogCiBDaHJvbWl1
bURhdGFPYmplY3Q6OkNocm9taXVtRGF0YU9iamVjdCgpCisgICAgOiBtX21vZGlmaWVyS2V5U3Rh
dGUoMCkKIHsKIH0KIAogQ2hyb21pdW1EYXRhT2JqZWN0OjpDaHJvbWl1bURhdGFPYmplY3QoY29u
c3QgQ2hyb21pdW1EYXRhT2JqZWN0JiBvdGhlcikKICAgICA6IFJlZkNvdW50ZWQ8Q2hyb21pdW1E
YXRhT2JqZWN0PigpCiAgICAgLCBtX2l0ZW1MaXN0KG90aGVyLm1faXRlbUxpc3QpCisgICAgLCBt
X21vZGlmaWVyS2V5U3RhdGUoMCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAppbmRleCAxYTVkNzg5OGE0ZWMz
OTIyNjg3MmMzMDhmOTg1N2Y1Y2IxMWFiOThiLi5hODBmOGQxY2EyYmE4N2UxYTEyOTk2NGQ0MTA5
ZmI0MjhiYTgzZTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bURhdGFPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaApAQCAtODYsNiArODYsOSBAQCBwdWJsaWM6CiAgICAg
Ly8gVXNlZCB0byBoYW5kbGUgZmlsZXMgKGltYWdlcykgYmVpbmcgZHJhZ2dlZCBvdXQuCiAgICAg
dm9pZCBhZGRTaGFyZWRCdWZmZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4pOwogCisgICAgaW50IGdldE1vZGlmaWVyS2V5U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX21vZGlmaWVyS2V5U3RhdGU7IH0KKyAgICB2b2lkIHNldE1vZGlmaWVyS2V5U3RhdGUoaW50
IG1vZGlmaWVyS2V5U3RhdGUpIHsgbV9tb2RpZmllcktleVN0YXRlID0gbW9kaWZpZXJLZXlTdGF0
ZTsgfQorCiBwcml2YXRlOgogICAgIENocm9taXVtRGF0YU9iamVjdCgpOwogICAgIGV4cGxpY2l0
IENocm9taXVtRGF0YU9iamVjdChjb25zdCBDaHJvbWl1bURhdGFPYmplY3QmKTsKQEAgLTk1LDYg
Kzk4LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludGVybmFsQWRkRmlsZUl0ZW0oUGFzc1JlZlB0
cjxDaHJvbWl1bURhdGFPYmplY3RJdGVtPik7CiAKICAgICBWZWN0b3I8UmVmUHRyPENocm9taXVt
RGF0YU9iamVjdEl0ZW0+ID4gbV9pdGVtTGlzdDsKKworICAgIC8vIFN0YXRlIG9mIFNoaWZ0L0N0
cmwvQWx0L01ldGEga2V5cy4KKyAgICBpbnQgbV9tb2RpZmllcktleVN0YXRlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAppbmRleCAwMDlhM2EwOGFjYzBlOTJjYjk3MDNh
YWZlOGZkZDkxYjkwNWQ2ZGJhLi40YWRkODFhYWQzOGY0ZmFmNzg3N2VjZjFjYzg2YTc0OTZmMDAx
ZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0
YUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFn
RGF0YUNocm9taXVtLmNwcApAQCAtNzUsNiArNzUsMTEgQEAgdW5zaWduZWQgRHJhZ0RhdGE6Om51
bWJlck9mRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVu
YW1lcygpLnNpemUoKTsKIH0KIAoraW50IERyYWdEYXRhOjpnZXRNb2RpZmllcktleVN0YXRlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9wbGF0Zm9ybURyYWdEYXRhLT5nZXRNb2RpZmllcktleVN0
YXRlKCk7Cit9CisKIHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiBy
ZXN1bHQpIGNvbnN0CiB7CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcyA9IG1f
cGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL0RyYWdEYXRhRWZsLmNwcAppbmRleCA5ZDdlOWNhNzk1YzhmN2QxYmMzNjg4MmEzYTRhYzgx
ZjRiOGMwOTcwLi4wZDI5YWUzMTE3ZjkwNzc2NDZjOTliMDg0MTQwZmUwNDVkMTBmY2M2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAKQEAgLTQ2LDYgKzQ2
LDExIEBAIHVuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKICAgICByZXR1
cm4gMDsKIH0KIAoraW50IERyYWdEYXRhOjpnZXRNb2RpZmllcktleVN0YXRlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0
cmluZz4mIHJlc3VsdCkgY29uc3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9EcmFnRGF0YUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
RHJhZ0RhdGFHdGsuY3BwCmluZGV4IDAyYTQ3NDlkMzNjYmIyOTljOGRkNjZlMzVjMDA5MWFiMjhm
MTBhZTcuLjBhYTNjZTI1MWQ4ZjU0NWExNGFjMTA1MzA5NDRkNDQ1NjIxOTQwOGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnRGF0YUd0ay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcApAQCAtNDYsNiArNDYsMTEg
QEAgdW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBt
X3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygpLnNpemUoKTsKIH0KIAoraW50IERyYWdEYXRh
OjpnZXRNb2RpZmllcktleVN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwogdm9p
ZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29uc3QKIHsK
ICAgICByZXN1bHQgPSBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcAppbmRleCAwMzAzYWQ3YzkyNGExNWRkZGUy
ZTM0YjdmOWY4OGFlMTM3ZDhmMGNhLi4xMGJjOTlhMDMxZWIwNWFlYzczODQ5N2Q3Y2U3YWRlNjY0
ODg1ZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcApAQCAt
NjcsNiArNjcsMTEgQEAgdW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAog
ICAgIHJldHVybiAwOwogfQogCitpbnQgRHJhZ0RhdGE6OmdldE1vZGlmaWVyS2V5U3RhdGUoKSBj
b25zdAoreworICAgIHJldHVybiAwOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhW
ZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAgIGlmICghbV9wbGF0Zm9ybURyYWdE
YXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdEYXRhV2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnRGF0YVdpbi5jcHAKaW5kZXgg
NDZhOTA3M2NiZjQ1NTNiOTVmZTRkYTdlNTFjMDY5MTM5MTljZGYyYS4uN2YxMGQwYmIxOGQyMGFm
ZTI0OGFjYzVkYWFkMDBiNGQxZjI1OWRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0RyYWdEYXRhV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vRHJhZ0RhdGFXaW4uY3BwCkBAIC0xMTQsNiArMTE0LDExIEBAIHVuc2lnbmVkIERyYWdEYXRh
OjpudW1iZXJPZkZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAoraW50IERyYWdEYXRh
OjpnZXRNb2RpZmllcktleVN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwogdm9p
ZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29uc3QKIHsK
ICAgICBpZiAobV9wbGF0Zm9ybURyYWdEYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW5jZS9EcmFnRGF0YVdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbmNlL0RyYWdEYXRhV2luQ0UuY3BwCmluZGV4IGNjNWY3YTdhYWQzMWQ3NzMxMDA3ZTBh
ODBkZTk3MWI5MjNiZDg1NDcuLjY5OWU5NjI4NDRmOTQ3NGU1NmQ2YmUzZWFlODM1MjkzMjA4ZTgw
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL0RyYWdEYXRhV2lu
Q0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL0RyYWdEYXRhV2luQ0Uu
Y3BwCkBAIC01Miw2ICs1MiwxMSBAQCB1bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygp
IGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK2ludCBEcmFnRGF0YTo6Z2V0TW9kaWZpZXJLZXlT
dGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgRHJhZ0RhdGE6OmFzRmls
ZW5hbWVzKFZlY3RvcjxTdHJpbmc+JikgY29uc3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3d4L0RyYWdEYXRhV3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3gvRHJhZ0RhdGFXeC5jcHAKaW5kZXggODJlNDc0MGE0ZGQwN2I5NjYwMmQ0M2RlYTUxZDk5
OTFhNjMxZDEwMS4uMGQyZmFlYTgwNWM0OWM4OWVhZmNkNjk0OTYwM2U5NDBlMTdhYjJkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRHJhZ0RhdGFXeC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRHJhZ0RhdGFXeC5jcHAKQEAgLTUyLDYgKzUyLDEx
IEBAIHVuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKICAgICByZXR1cm4g
MDsKIH0KIAoraW50IERyYWdEYXRhOjpnZXRNb2RpZmllcktleVN0YXRlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gMDsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmlu
Zz4mIHJlc3VsdCkgY29uc3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZp
ZXcuaAppbmRleCAxMTFlY2M2NDE4MjEyM2IzZWIzYjk5N2NkYjY1NmZiZmViMGE3ZTU3Li5hZTIz
NTBkMTg3NTkxZjE0YzcwMWE4YTc5OThlZWZlMDczMzdjZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0zMDcsMTYgKzMwNywzMSBAQCBwdWJsaWM6CiAKICAg
ICAvLyBDYWxsYmFjayBtZXRob2RzIHdoZW4gYSBkcmFnLWFuZC1kcm9wIG9wZXJhdGlvbiBpcyB0
cnlpbmcgdG8gZHJvcAogICAgIC8vIHNvbWV0aGluZyBvbiB0aGUgV2ViVmlldy4KKyAgICAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGFmdGVyIGNocm9taXVtIGNoYW5nZXMgY2F0Y2ggdXAu
CiAgICAgdmlydHVhbCBXZWJEcmFnT3BlcmF0aW9uIGRyYWdUYXJnZXREcmFnRW50ZXIoCiAgICAg
ICAgIGNvbnN0IFdlYkRyYWdEYXRhJiwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBv
aW50LCBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCiAgICAgICAgIFdlYkRyYWdPcGVyYXRp
b25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCkgPSAwOworICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJh
dGlvbiBkcmFnVGFyZ2V0RHJhZ0VudGVyKAorICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYsCisg
ICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVl
blBvaW50LAorICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQs
CisgICAgICAgIGludCBrZXlNb2RpZmllcnMpID0gMDsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRo
aXMgbWV0aG9kIGFmdGVyIGNocm9taXVtIGNoYW5nZXMgY2F0Y2ggdXAuCiAgICAgdmlydHVhbCBX
ZWJEcmFnT3BlcmF0aW9uIGRyYWdUYXJnZXREcmFnT3ZlcigKICAgICAgICAgY29uc3QgV2ViUG9p
bnQmIGNsaWVudFBvaW50LCBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCiAgICAgICAgIFdl
YkRyYWdPcGVyYXRpb25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCkgPSAwOworICAgIHZpcnR1YWwg
V2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJhZ092ZXIoCisgICAgICAgIGNvbnN0IFdlYlBv
aW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAorICAgICAgICBX
ZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQsCisgICAgICAgIGludCBrZXlN
b2RpZmllcnMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhZ1RhcmdldERyYWdMZWF2ZSgpID0g
MDsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGFmdGVyIGNocm9taXVtIGNoYW5n
ZXMgY2F0Y2ggdXAuCiAgICAgdmlydHVhbCB2b2lkIGRyYWdUYXJnZXREcm9wKAogICAgICAgICBj
b25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmFnVGFyZ2V0RHJvcCgKKyAgICAgICAgY29uc3QgV2Vi
UG9pbnQmIGNsaWVudFBvaW50LCBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCisgICAgICAg
IGludCBrZXlNb2RpZmllcnMpID0gMDsKIAogCiAgICAgLy8gU3VwcG9ydCBmb3IgcmVzb3VyY2Ug
bG9hZGluZyBpbml0aWF0ZWQgYnkgcGx1Z2lucyAtLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMjljM2MwNDlhMGI4YTZj
ZDVlZWYyZjVmNDAwNDY0NjU0MDA2Nzk0ZC4uYTdjNTliODU4NGQwNWExZWFkNmFkZmRmNGU2ZGZk
MDdhZTQ2NTg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cApAQCAtMjQzLDYgKzI0MywyMCBAQCBzdGF0aWMgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5n
cyBhdXRvZmlsbFBvcHVwU2V0dGluZ3MgPSB7CiAKIHN0YXRpYyBib29sIHNob3VsZFVzZUV4dGVy
bmFsUG9wdXBNZW51cyA9IGZhbHNlOwogCitzdGF0aWMgaW50IHdlYklucHV0RXZlbnRLZXlTdGF0
ZVRvUGxhdGZvcm1FdmVudEtleVN0YXRlKGludCB3ZWJJbnB1dEV2ZW50S2V5U3RhdGUpCit7Cisg
ICAgaW50IHBsYXRmb3JtRXZlbnRLZXlTdGF0ZSA9IDA7CisgICAgaWYgKHdlYklucHV0RXZlbnRL
ZXlTdGF0ZSAmIFdlYklucHV0RXZlbnQ6OlNoaWZ0S2V5KQorICAgICAgICBwbGF0Zm9ybUV2ZW50
S2V5U3RhdGUgPSBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUgfCBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50
OjpTaGlmdEtleTsKKyAgICBpZiAod2ViSW5wdXRFdmVudEtleVN0YXRlICYgV2ViSW5wdXRFdmVu
dDo6Q29udHJvbEtleSkKKyAgICAgICAgcGxhdGZvcm1FdmVudEtleVN0YXRlID0gcGxhdGZvcm1F
dmVudEtleVN0YXRlIHwgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6Q3RybEtleTsKKyAgICBpZiAo
d2ViSW5wdXRFdmVudEtleVN0YXRlICYgV2ViSW5wdXRFdmVudDo6QWx0S2V5KQorICAgICAgICBw
bGF0Zm9ybUV2ZW50S2V5U3RhdGUgPSBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUgfCBXZWJDb3JlOjpQ
bGF0Zm9ybUV2ZW50OjpBbHRLZXk7CisgICAgaWYgKHdlYklucHV0RXZlbnRLZXlTdGF0ZSAmIFdl
YklucHV0RXZlbnQ6Ok1ldGFLZXkpCisgICAgICAgIHBsYXRmb3JtRXZlbnRLZXlTdGF0ZSA9IHBs
YXRmb3JtRXZlbnRLZXlTdGF0ZSB8IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1ldGFLZXk7Cisg
ICAgcmV0dXJuIHBsYXRmb3JtRXZlbnRLZXlTdGF0ZTsKK30KKwogLy8gV2ViVmlldyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKIFdlYlZpZXcqIFdlYlZpZXc6OmNyZWF0ZShXZWJWaWV3Q2xpZW50KiBjbGllbnQpCkBAIC0y
NTk1LDEyICsyNjA5LDIyIEBAIFdlYkRyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJn
ZXREcmFnRW50ZXIoCiAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAogICAgIFdlYkRy
YWdPcGVyYXRpb25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCkKIHsKKyAgICByZXR1cm4gZHJhZ1Rh
cmdldERyYWdFbnRlcih3ZWJEcmFnRGF0YSwgY2xpZW50UG9pbnQsIHNjcmVlblBvaW50LCBvcGVy
YXRpb25zQWxsb3dlZCwgMCk7Cit9CisKK1dlYkRyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRy
YWdUYXJnZXREcmFnRW50ZXIoCisgICAgY29uc3QgV2ViRHJhZ0RhdGEmIHdlYkRyYWdEYXRhLAor
ICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKKyAgICBjb25zdCBXZWJQb2ludCYgc2Ny
ZWVuUG9pbnQsCisgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkLAor
ICAgIGludCBrZXlNb2RpZmllcnMpCit7CiAgICAgQVNTRVJUKCFtX2N1cnJlbnREcmFnRGF0YSk7
CiAKICAgICBtX2N1cnJlbnREcmFnRGF0YSA9IHdlYkRyYWdEYXRhOwogICAgIG1fb3BlcmF0aW9u
c0FsbG93ZWQgPSBvcGVyYXRpb25zQWxsb3dlZDsKIAotICAgIHJldHVybiBkcmFnVGFyZ2V0RHJh
Z0VudGVyT3JPdmVyKGNsaWVudFBvaW50LCBzY3JlZW5Qb2ludCwgRHJhZ0VudGVyKTsKKyAgICBy
ZXR1cm4gZHJhZ1RhcmdldERyYWdFbnRlck9yT3ZlcihjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQs
IERyYWdFbnRlciwga2V5TW9kaWZpZXJzKTsKIH0KIAogV2ViRHJhZ09wZXJhdGlvbiBXZWJWaWV3
SW1wbDo6ZHJhZ1RhcmdldERyYWdPdmVyKApAQCAtMjYwOCw5ICsyNjMyLDE4IEBAIFdlYkRyYWdP
cGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnT3ZlcigKICAgICBjb25zdCBXZWJQ
b2ludCYgc2NyZWVuUG9pbnQsCiAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNB
bGxvd2VkKQogeworICAgIHJldHVybiBkcmFnVGFyZ2V0RHJhZ092ZXIoY2xpZW50UG9pbnQsIHNj
cmVlblBvaW50LCBvcGVyYXRpb25zQWxsb3dlZCwgMCk7Cit9CisKK1dlYkRyYWdPcGVyYXRpb24g
V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnT3ZlcigKKyAgICBjb25zdCBXZWJQb2ludCYgY2xp
ZW50UG9pbnQsCisgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAorICAgIFdlYkRyYWdP
cGVyYXRpb25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCwKKyAgICBpbnQga2V5TW9kaWZpZXJzKQor
ewogICAgIG1fb3BlcmF0aW9uc0FsbG93ZWQgPSBvcGVyYXRpb25zQWxsb3dlZDsKIAotICAgIHJl
dHVybiBkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVyKGNsaWVudFBvaW50LCBzY3JlZW5Qb2ludCwg
RHJhZ092ZXIpOworICAgIHJldHVybiBkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVyKGNsaWVudFBv
aW50LCBzY3JlZW5Qb2ludCwgRHJhZ092ZXIsIGtleU1vZGlmaWVycyk7CiB9CiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OmRyYWdUYXJnZXREcmFnTGVhdmUoKQpAQCAtMjYzNCw2ICsyNjY3LDEzIEBAIHZv
aWQgV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnTGVhdmUoKQogdm9pZCBXZWJWaWV3SW1wbDo6
ZHJhZ1RhcmdldERyb3AoY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50KQogeworICAg
IGRyYWdUYXJnZXREcm9wKGNsaWVudFBvaW50LCBzY3JlZW5Qb2ludCwgMCk7Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcm9wKGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Q
b2ludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBrZXlNb2RpZmllcnMp
Cit7CiAgICAgQVNTRVJUKG1fY3VycmVudERyYWdEYXRhKTsKIAogICAgIC8vIElmIHRoaXMgd2Vi
dmlldyB0cmFuc2l0aW9ucyBmcm9tIHRoZSAiZHJvcCBhY2NlcHRpbmciIHN0YXRlIHRvIHRoZSAi
bm90CkBAIC0yNjQ4LDYgKzI2ODgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJv
cChjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyAgICBtX2N1cnJlbnREcmFnRGF0YS0+c2V0TW9kaWZpZXJLZXlTdGF0ZSh3ZWJJbnB1dEV2ZW50
S2V5U3RhdGVUb1BsYXRmb3JtRXZlbnRLZXlTdGF0ZShrZXlNb2RpZmllcnMpKTsKICAgICBEcmFn
RGF0YSBkcmFnRGF0YSgKICAgICAgICAgbV9jdXJyZW50RHJhZ0RhdGEuZ2V0KCksCiAgICAgICAg
IGNsaWVudFBvaW50LApAQCAtMjY2MiwxMCArMjcwMywxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpk
cmFnVGFyZ2V0RHJvcChjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCiAgICAgbV9kcmFnU2Ny
b2xsVGltZXItPnN0b3AoKTsKIH0KIAotV2ViRHJhZ09wZXJhdGlvbiBXZWJWaWV3SW1wbDo6ZHJh
Z1RhcmdldERyYWdFbnRlck9yT3Zlcihjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsIGNvbnN0
IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwgRHJhZ0FjdGlvbiBkcmFnQWN0aW9uKQorV2ViRHJhZ09w
ZXJhdGlvbiBXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyYWdFbnRlck9yT3Zlcihjb25zdCBXZWJQ
b2ludCYgY2xpZW50UG9pbnQsIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwgRHJhZ0FjdGlv
biBkcmFnQWN0aW9uLCBpbnQga2V5TW9kaWZpZXJzKQogewogICAgIEFTU0VSVChtX2N1cnJlbnRE
cmFnRGF0YSk7CiAKKyAgICBtX2N1cnJlbnREcmFnRGF0YS0+c2V0TW9kaWZpZXJLZXlTdGF0ZSh3
ZWJJbnB1dEV2ZW50S2V5U3RhdGVUb1BsYXRmb3JtRXZlbnRLZXlTdGF0ZShrZXlNb2RpZmllcnMp
KTsKICAgICBEcmFnRGF0YSBkcmFnRGF0YSgKICAgICAgICAgbV9jdXJyZW50RHJhZ0RhdGEuZ2V0
KCksCiAgICAgICAgIGNsaWVudFBvaW50LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKaW5kZXggYzk2ZGE0YzZlOTcxY2I1ODRmMzFiNDhhOTdiYjlmMjdjOGI0NDc5ZS4u
N2I0OTIwMzFkMDUzNWRiYmNhMTZhOWVkMDM5Yjk5ZDVkOGU5ZjMxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0yMjksMTQgKzIyOSwyOSBAQCBwdWJsaWM6
CiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKICAgICAgICAgY29uc3QgV2Vi
UG9pbnQmIHNjcmVlblBvaW50LAogICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0
aW9uc0FsbG93ZWQpOworICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJh
Z0VudGVyKAorICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYsCisgICAgICAgIGNvbnN0IFdlYlBv
aW50JiBjbGllbnRQb2ludCwKKyAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAor
ICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQsCisgICAgICAg
IGludCBrZXlNb2RpZmllcnMpOwogICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFy
Z2V0RHJhZ092ZXIoCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKICAgICAg
ICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAogICAgICAgICBXZWJEcmFnT3BlcmF0aW9u
c01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpOworICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBk
cmFnVGFyZ2V0RHJhZ092ZXIoCisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwK
KyAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAorICAgICAgICBXZWJEcmFnT3Bl
cmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQsCisgICAgICAgIGludCBrZXlNb2RpZmllcnMp
OwogICAgIHZpcnR1YWwgdm9pZCBkcmFnVGFyZ2V0RHJhZ0xlYXZlKCk7CiAgICAgdmlydHVhbCB2
b2lkIGRyYWdUYXJnZXREcm9wKAogICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQs
CiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCk7CisgICAgdmlydHVhbCB2b2lk
IGRyYWdUYXJnZXREcm9wKAorICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCisg
ICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKKyAgICAgICAgaW50IGtleU1vZGlm
aWVycyk7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1ZUlkZW50aWZpZXJG
b3JSZXF1ZXN0KCk7CiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RFbGVtZW50QXQoY29uc3QgV2Vi
UG9pbnQmIHBvaW50KTsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBpbnNwZWN0b3JTZXR0aW5ncygp
IGNvbnN0OwpAQCAtNTgyLDcgKzU5Nyw4IEBAIHByaXZhdGU6CiAgICAgLy8gc2hvdWxkIGJlIHRy
dWUuCiAgICAgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVyKGNvbnN0
IFdlYlBvaW50JiBjbGllbnRQb2ludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEcmFnQWN0aW9uKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJhZ0FjdGlvbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGtleU1vZGlmaWVy
cyk7CiAKICAgICB2b2lkIGNvbmZpZ3VyZUF1dG9SZXNpemVNb2RlKCk7CiAKZGlmZiAtLWdpdCBh
L0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBiZDJmYjkxYThmYWM4ZTEwMTBmMmY0NzdjMzYx
MzEyZjg2ZjA5ZDlmLi41M2Y0MDQ2YWYyOWNmYWQzNGFiN2EzNDU1ZTZiZGY0N2Y0ZDhiY2YwIDEw
MDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MTItMDUtMTQgIFZhcnVuIEphaW4gIDx2YXJ1bmphaW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBb
Y2hyb21pdW1dIE5vIG1vZGlmaWVyIGZsYWdzIChzaGlmdC9jdHJsL2FsdCkgaW4gZHJhZyZkcm9w
IGV2ZW50cyBvbiBjaHJvbWl1bSBsaW51eAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODYyMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIE1hbnVhbFRlc3RzL2Nocm9taXVtL21vZGlmaWVycy1kdXJpbmct
ZHJhZy1hbmQtZHJvcC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0xMSAgSmVmZnJleSBQZmF1ICA8
anBmYXVAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxMTQxNzApOiBTY3JvbGwg
YXJlYXMgaW4gbmVzdGVkIGZyYW1lcyBpbXByb3Blcmx5IHBsYWNlZCB3aGVuIHRpbGVkIGRyYXdp
bmcgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvTWFudWFsVGVzdHMvY2hyb21pdW0vbW9kaWZpZXJz
LWR1cmluZy1kcmFnLWFuZC1kcm9wLmh0bWwgYi9NYW51YWxUZXN0cy9jaHJvbWl1bS9tb2RpZmll
cnMtZHVyaW5nLWRyYWctYW5kLWRyb3AuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjlhNjE2NGY0ZDBhMTBl
YzUyMGM4MTVjYWEyMDViMWU3YTM1NjJjCi0tLSAvZGV2L251bGwKKysrIGIvTWFudWFsVGVzdHMv
Y2hyb21pdW0vbW9kaWZpZXJzLWR1cmluZy1kcmFnLWFuZC1kcm9wLmh0bWwKQEAgLTAsMCArMSwy
NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gbG9nRHJhZyhlKSB7
CisgICAgICAgIHZhciBsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOworICAgICAg
ICBsLmlubmVySFRNTCArPSAnc2hpZnRLZXk9JyArIGUuc2hpZnRLZXkgKyAnIGN0cmxLZXk9JyAr
IGUuY3RybEtleSArICcgYWx0S2V5PScgKyBlLmFsdEtleSArICdcbic7CisgICAgICAgIGUucHJl
dmVudERlZmF1bHQoKTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdE
T01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoJ2RyYWdlbnRlcicsIGxvZ0RyYWcsIGZhbHNlKTsKKyAgICAgICAgZG9jdW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBsb2dEcmFnLCBmYWxzZSk7CisgICAgICAgIGRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIGxvZ0RyYWcsIGZhbHNlKTsKKyAg
ICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIGxvZ0RyYWcsIGZhbHNlKTsK
KyAgICB9KTsKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8cD5EcmFnIHRoZSAi
RHJhZyBtZSIgd2l0aCBhbnkgbW9kaWZpZXIga2V5cyBwcmVzc2VkIChTaGlmdC9DdHJsL0FsdCkg
YW5kIHNlZSBpZiB0aGUgbG9nIG1lc3NhZ2VzIGhhdmUgdGhlIGNvcnJlY3QgbW9kaWZpZXIgc3Rh
dGU8L3A+CisgICAgPGRpdiBkcmFnZ2FibGU9J3RydWUnIGlkPSdkcmFnbWUnPgorICAgICAgICBE
cmFnIG1lCisgICAgPC9kaXY+CisgICAgPHByZSBpZD0nbG9nJz48L3ByZT4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141982</attachid>
            <date>2012-05-15 08:47:27 -0700</date>
            <delta_ts>2012-05-15 15:00:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86236-20120515114726.patch</filename>
            <type>text/plain</type>
            <size>17787</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZmMGI5MTQ3ZGU3Yzdl
Y2ZjZjAzYTAwOTg0MzI4MzEzNGIwZWFiZi4uODRjZWIzMzE5MzQzMmUyNzBhNGM4MTI5ZDMwZGZk
YjMyNjhkY2JkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA1LTE1ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBObyBt
b2RpZmllciBmbGFncyAoc2hpZnQvY3RybC9hbHQpIGluIGRyYWcmZHJvcCBldmVudHMgb24gY2hy
b21pdW0gbGludXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFudWFsVGVzdDogTWFudWFsVGVzdHMvY2hyb21pdW0vbW9kaWZpZXJzLWR1cmluZy1kcmFn
LWFuZC1kcm9wLmh0bWwKKworICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlTW91c2VFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vRHJh
Z0RhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0
YTo6bW9kaWZpZXJLZXlTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuaDoKKyAg
ICAgICAgKERyYWdEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURh
dGFPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpDaHJv
bWl1bURhdGFPYmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0
YU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0Ojptb2RpZmll
cktleVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6c2V0TW9k
aWZpZXJLZXlTdGF0ZSk6CisgICAgICAgIChDaHJvbWl1bURhdGFPYmplY3QpOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6bW9kaWZpZXJLZXlTdGF0ZSk6CisKIDIw
MTItMDUtMTMgIFZpY3RvciBDYXJidW5lICA8dmNhcmJ1bmVAYWRvYmUuY29tPgogCiAgICAgICAg
IFZvbHVtZSBzbGlkZXIgbmVlZHMgdG8gYmUgZGlzcGxheWVkIGJlbG93IHRoZSBtdXRlIGJ1dHRv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmOGE1MGJjNTAzMzY5ZGNiMzg5ZjljODk3
ZjFhYmZlYjNjODA4MWJiLi5iMDE2ODk3OTNhZDVjNDRmMzY2MmU3MmQ3OThjYmMxYmU5NDkzZDM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTE1
ICBWYXJ1biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVt
XSBObyBtb2RpZmllciBmbGFncyAoc2hpZnQvY3RybC9hbHQpIGluIGRyYWcmZHJvcCBldmVudHMg
b24gY2hyb21pdW0gbGludXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisgICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6d2ViSW5wdXRFdmVudEtl
eVN0YXRlVG9QbGF0Zm9ybUV2ZW50S2V5U3RhdGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyYWdPdmVyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcm9wKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXJPck92ZXIpOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTA1LTEyICBTaGVyaWZmIEJv
dCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTE2ODEyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApp
bmRleCA4OWQ3MmFlODM2MzhmNzY0Y2Q2ZGIwZmQxOGU0M2QwYjljOTRmMjVkLi4xMzU0NDZjZjQw
ODg1NzZmNDE1OWVlNDlhZWU4NDg2M2IzMjIxM2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcApAQCAtNzcsNyArNzcsMTIgQEAgc3RhdGljIFBsYXRmb3JtTW91c2VFdmVu
dCBjcmVhdGVNb3VzZUV2ZW50KERyYWdEYXRhKiBkcmFnRGF0YSkKIHsKICAgICBib29sIHNoaWZ0
S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXk7CiAgICAgc2hpZnRLZXkgPSBjdHJsS2V5ID0g
YWx0S2V5ID0gbWV0YUtleSA9IGZhbHNlOwotICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0
Q3VycmVudE1vZGlmaWVyU3RhdGUoc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSk7
CisgICAgaW50IGtleVN0YXRlID0gZHJhZ0RhdGEtPm1vZGlmaWVyS2V5U3RhdGUoKTsKKyAgICBz
aGlmdEtleSA9IHN0YXRpY19jYXN0PGJvb2w+KGtleVN0YXRlICYgUGxhdGZvcm1FdmVudDo6U2hp
ZnRLZXkpOworICAgIGN0cmxLZXkgPSBzdGF0aWNfY2FzdDxib29sPihrZXlTdGF0ZSAmIFBsYXRm
b3JtRXZlbnQ6OkN0cmxLZXkpOworICAgIGFsdEtleSA9IHN0YXRpY19jYXN0PGJvb2w+KGtleVN0
YXRlICYgUGxhdGZvcm1FdmVudDo6QWx0S2V5KTsKKyAgICBtZXRhS2V5ID0gc3RhdGljX2Nhc3Q8
Ym9vbD4oa2V5U3RhdGUgJiBQbGF0Zm9ybUV2ZW50OjpNZXRhS2V5KTsKKwogICAgIHJldHVybiBQ
bGF0Zm9ybU1vdXNlRXZlbnQoZHJhZ0RhdGEtPmNsaWVudFBvc2l0aW9uKCksIGRyYWdEYXRhLT5n
bG9iYWxQb3NpdGlvbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRv
biwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtl
eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIGN1cnJlbnRUaW1lKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwCmluZGV4IGE2MWZlYWI1YWIzYzBmOTAy
YTg1OGZhNDcxYmM3MGIxOTBlYTRmN2YuLjY0MWVmMWE1NWU1ZWEwYzFkYjNlOTY0MmU3Yjc2MTBk
NTcwMDkyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5jcHAKQEAgLTI1LDYgKzI1
LDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgorI2lm
ICFQTEFURk9STShDSFJPTUlVTSkgfHwgKCFPUyhDSFJPTUVPUykgJiYgIU9TKExJTlVYKSkKKyNp
bmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50
LmgiCisjZW5kaWYKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC01MSw2ICs1NSwyNiBAQCBEcmFnRGF0YTo6RHJhZ0RhdGEoY29uc3QgU3RyaW5nJiwg
Y29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogfQogI2VuZGlm
CiAKKyNpZiAhUExBVEZPUk0oQ0hST01JVU0pIHx8ICghT1MoQ0hST01FT1MpICYmICFPUyhMSU5V
WCkpCitpbnQgRHJhZ0RhdGE6Om1vZGlmaWVyS2V5U3RhdGUoKSBjb25zdAoreworICAgIGJvb2wg
c2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleTsKKyAgICBzaGlmdEtleSA9IGN0cmxL
ZXkgPSBhbHRLZXkgPSBtZXRhS2V5ID0gZmFsc2U7CisgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50
OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRh
S2V5KTsKKyAgICBpbnQga2V5U3RhdGUgPSAwOworICAgIGlmIChzaGlmdEtleSkKKyAgICAgIGtl
eVN0YXRlID0ga2V5U3RhdGUgfCBQbGF0Zm9ybUV2ZW50OjpTaGlmdEtleTsKKyAgICBpZiAoY3Ry
bEtleSkKKyAgICAgIGtleVN0YXRlID0ga2V5U3RhdGUgfCBQbGF0Zm9ybUV2ZW50OjpDdHJsS2V5
OworICAgIGlmIChhbHRLZXkpCisgICAgICBrZXlTdGF0ZSA9IGtleVN0YXRlIHwgUGxhdGZvcm1F
dmVudDo6QWx0S2V5OworICAgIGlmIChtZXRhS2V5KQorICAgICAga2V5U3RhdGUgPSBrZXlTdGF0
ZSB8IFBsYXRmb3JtRXZlbnQ6Ok1ldGFLZXk7CisgICAgcmV0dXJuIGtleVN0YXRlOworfQorI2Vu
ZGlmCisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdf
U1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCmluZGV4IDgyM2FjNTUzZTViZmRj
MTIyYjNhMmE1YzQ1M2M0ZGZmNzgyZmI3YTcuLmUxMzMzM2UzM2ZkYTBlNTkwY2IwMjNiOTI1ODRi
M2M0MmNmYzAwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtMTE4LDYgKzEx
OCw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRhaW5zQ29sb3IoKSBjb25zdDsKICAgICBib29s
IGNvbnRhaW5zRmlsZXMoKSBjb25zdDsKICAgICB1bnNpZ25lZCBudW1iZXJPZkZpbGVzKCkgY29u
c3Q7CisgICAgaW50IG1vZGlmaWVyS2V5U3RhdGUoKSBjb25zdDsKICNpZiBQTEFURk9STShNQUMp
CiAgICAgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSgpIHsgcmV0dXJuIG1fcGFzdGVib2Fy
ZE5hbWU7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAKaW5kZXggZTY1NmY0NGIyN2E4ZTFmY2FjMTZj
OGYwMGZlNTRmMWQxZDU5ODQyYS4uODc2ZWM0Mzc5NjZkZjM5NzNmZmQ3N2U4ZGE0ZTM4NjViY2Yw
YzI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21p
dW1EYXRhT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9D
aHJvbWl1bURhdGFPYmplY3QuY3BwCkBAIC0yMTMsMTIgKzIxMywxNCBAQCB2b2lkIENocm9taXVt
RGF0YU9iamVjdDo6YWRkU2hhcmVkQnVmZmVyKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0
cjxTaGFyZWRCdQogfQogCiBDaHJvbWl1bURhdGFPYmplY3Q6OkNocm9taXVtRGF0YU9iamVjdCgp
CisgICAgOiBtX21vZGlmaWVyS2V5U3RhdGUoMCkKIHsKIH0KIAogQ2hyb21pdW1EYXRhT2JqZWN0
OjpDaHJvbWl1bURhdGFPYmplY3QoY29uc3QgQ2hyb21pdW1EYXRhT2JqZWN0JiBvdGhlcikKICAg
ICA6IFJlZkNvdW50ZWQ8Q2hyb21pdW1EYXRhT2JqZWN0PigpCiAgICAgLCBtX2l0ZW1MaXN0KG90
aGVyLm1faXRlbUxpc3QpCisgICAgLCBtX21vZGlmaWVyS2V5U3RhdGUoMCkKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmpl
Y3QuaAppbmRleCAxYTVkNzg5OGE0ZWMzOTIyNjg3MmMzMDhmOTg1N2Y1Y2IxMWFiOThiLi4xZWZi
NGRmZWM3ZDExMDBjN2RhYjVhMjFjOWMwNWFlNzQ3YWY1Njg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaApAQCAtODYs
NiArODYsOSBAQCBwdWJsaWM6CiAgICAgLy8gVXNlZCB0byBoYW5kbGUgZmlsZXMgKGltYWdlcykg
YmVpbmcgZHJhZ2dlZCBvdXQuCiAgICAgdm9pZCBhZGRTaGFyZWRCdWZmZXIoY29uc3QgU3RyaW5n
JiBuYW1lLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4pOwogCisgICAgaW50IG1vZGlmaWVyS2V5
U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVyS2V5U3RhdGU7IH0KKyAgICB2b2lkIHNl
dE1vZGlmaWVyS2V5U3RhdGUoaW50IG1vZGlmaWVyS2V5U3RhdGUpIHsgbV9tb2RpZmllcktleVN0
YXRlID0gbW9kaWZpZXJLZXlTdGF0ZTsgfQorCiBwcml2YXRlOgogICAgIENocm9taXVtRGF0YU9i
amVjdCgpOwogICAgIGV4cGxpY2l0IENocm9taXVtRGF0YU9iamVjdChjb25zdCBDaHJvbWl1bURh
dGFPYmplY3QmKTsKQEAgLTk1LDYgKzk4LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludGVybmFs
QWRkRmlsZUl0ZW0oUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmplY3RJdGVtPik7CiAKICAgICBW
ZWN0b3I8UmVmUHRyPENocm9taXVtRGF0YU9iamVjdEl0ZW0+ID4gbV9pdGVtTGlzdDsKKworICAg
IC8vIFN0YXRlIG9mIFNoaWZ0L0N0cmwvQWx0L01ldGEga2V5cy4KKyAgICBpbnQgbV9tb2RpZmll
cktleVN0YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAppbmRleCAw
MDlhM2EwOGFjYzBlOTJjYjk3MDNhYWZlOGZkZDkxYjkwNWQ2ZGJhLi44ODQ3OTRjYmE1OTAxNTg2
ZDZhZDQ1Y2MxZmEzYmM5ZmZjYTQ4ZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcApAQCAtNzUsNiArNzUsMTMgQEAg
dW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBtX3Bs
YXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygpLnNpemUoKTsKIH0KIAorI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKSAmJiAoT1MoQ0hST01FT1MpIHx8IE9TKExJTlVYKSkKK2ludCBEcmFnRGF0YTo6bW9k
aWZpZXJLZXlTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGxhdGZvcm1EcmFnRGF0YS0+
bW9kaWZpZXJLZXlTdGF0ZSgpOworfQorI2VuZGlmCisKIHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5h
bWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7CiAgICAgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGZpbGVuYW1lcyA9IG1fcGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggMTExZWNjNjQxODIxMjNiM2Vi
M2I5OTdjZGI2NTZmYmZlYjBhN2U1Ny4uYWUyMzUwZDE4NzU5MWYxNGM3MDFhOGE3OTk4ZWVmZTA3
MzM3Y2Y2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMzA3
LDE2ICszMDcsMzEgQEAgcHVibGljOgogCiAgICAgLy8gQ2FsbGJhY2sgbWV0aG9kcyB3aGVuIGEg
ZHJhZy1hbmQtZHJvcCBvcGVyYXRpb24gaXMgdHJ5aW5nIHRvIGRyb3AKICAgICAvLyBzb21ldGhp
bmcgb24gdGhlIFdlYlZpZXcuCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBhZnRl
ciBjaHJvbWl1bSBjaGFuZ2VzIGNhdGNoIHVwLgogICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlv
biBkcmFnVGFyZ2V0RHJhZ0VudGVyKAogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYsCiAgICAg
ICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBv
aW50LAogICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpID0g
MDsKKyAgICB2aXJ0dWFsIFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdFbnRlcigKKyAg
ICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmLAorICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50
UG9pbnQsIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKKyAgICAgICAgV2ViRHJhZ09wZXJh
dGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkLAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKSA9
IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBhZnRlciBjaHJvbWl1bSBjaGFu
Z2VzIGNhdGNoIHVwLgogICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJh
Z092ZXIoCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9p
bnQmIHNjcmVlblBvaW50LAogICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9u
c0FsbG93ZWQpID0gMDsKKyAgICB2aXJ0dWFsIFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERy
YWdPdmVyKAorICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsIGNvbnN0IFdlYlBv
aW50JiBzY3JlZW5Qb2ludCwKKyAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlv
bnNBbGxvd2VkLAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRyYWdUYXJnZXREcmFnTGVhdmUoKSA9IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlz
IG1ldGhvZCBhZnRlciBjaHJvbWl1bSBjaGFuZ2VzIGNhdGNoIHVwLgogICAgIHZpcnR1YWwgdm9p
ZCBkcmFnVGFyZ2V0RHJvcCgKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LCBj
b25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhZ1Rh
cmdldERyb3AoCisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3QgV2Vi
UG9pbnQmIHNjcmVlblBvaW50LAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKSA9IDA7CiAKIAog
ICAgIC8vIFN1cHBvcnQgZm9yIHJlc291cmNlIGxvYWRpbmcgaW5pdGlhdGVkIGJ5IHBsdWdpbnMg
LS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCmluZGV4IDI5YzNjMDQ5YTBiOGE2Y2Q1ZWVmMmY1ZjQwMDQ2NDY1NDAwNjc5NGQuLmE3
YzU5Yjg1ODRkMDVhMWVhZDZhZGZkZjRlNmRmZDA3YWU0NjU4NTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTI0Myw2ICsyNDMsMjAgQEAgc3RhdGlj
IGNvbnN0IFBvcHVwQ29udGFpbmVyU2V0dGluZ3MgYXV0b2ZpbGxQb3B1cFNldHRpbmdzID0gewog
CiBzdGF0aWMgYm9vbCBzaG91bGRVc2VFeHRlcm5hbFBvcHVwTWVudXMgPSBmYWxzZTsKIAorc3Rh
dGljIGludCB3ZWJJbnB1dEV2ZW50S2V5U3RhdGVUb1BsYXRmb3JtRXZlbnRLZXlTdGF0ZShpbnQg
d2ViSW5wdXRFdmVudEtleVN0YXRlKQoreworICAgIGludCBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUg
PSAwOworICAgIGlmICh3ZWJJbnB1dEV2ZW50S2V5U3RhdGUgJiBXZWJJbnB1dEV2ZW50OjpTaGlm
dEtleSkKKyAgICAgICAgcGxhdGZvcm1FdmVudEtleVN0YXRlID0gcGxhdGZvcm1FdmVudEtleVN0
YXRlIHwgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6U2hpZnRLZXk7CisgICAgaWYgKHdlYklucHV0
RXZlbnRLZXlTdGF0ZSAmIFdlYklucHV0RXZlbnQ6OkNvbnRyb2xLZXkpCisgICAgICAgIHBsYXRm
b3JtRXZlbnRLZXlTdGF0ZSA9IHBsYXRmb3JtRXZlbnRLZXlTdGF0ZSB8IFdlYkNvcmU6OlBsYXRm
b3JtRXZlbnQ6OkN0cmxLZXk7CisgICAgaWYgKHdlYklucHV0RXZlbnRLZXlTdGF0ZSAmIFdlYklu
cHV0RXZlbnQ6OkFsdEtleSkKKyAgICAgICAgcGxhdGZvcm1FdmVudEtleVN0YXRlID0gcGxhdGZv
cm1FdmVudEtleVN0YXRlIHwgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6QWx0S2V5OworICAgIGlm
ICh3ZWJJbnB1dEV2ZW50S2V5U3RhdGUgJiBXZWJJbnB1dEV2ZW50OjpNZXRhS2V5KQorICAgICAg
ICBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUgPSBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUgfCBXZWJDb3Jl
OjpQbGF0Zm9ybUV2ZW50OjpNZXRhS2V5OworICAgIHJldHVybiBwbGF0Zm9ybUV2ZW50S2V5U3Rh
dGU7Cit9CisKIC8vIFdlYlZpZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBXZWJWaWV3KiBXZWJWaWV3OjpjcmVhdGUo
V2ViVmlld0NsaWVudCogY2xpZW50KQpAQCAtMjU5NSwxMiArMjYwOSwyMiBAQCBXZWJEcmFnT3Bl
cmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyKAogICAgIGNvbnN0IFdlYlBv
aW50JiBzY3JlZW5Qb2ludCwKICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0Fs
bG93ZWQpCiB7CisgICAgcmV0dXJuIGRyYWdUYXJnZXREcmFnRW50ZXIod2ViRHJhZ0RhdGEsIGNs
aWVudFBvaW50LCBzY3JlZW5Qb2ludCwgb3BlcmF0aW9uc0FsbG93ZWQsIDApOworfQorCitXZWJE
cmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyKAorICAgIGNvbnN0
IFdlYkRyYWdEYXRhJiB3ZWJEcmFnRGF0YSwKKyAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9p
bnQsCisgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAorICAgIFdlYkRyYWdPcGVyYXRp
b25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCwKKyAgICBpbnQga2V5TW9kaWZpZXJzKQorewogICAg
IEFTU0VSVCghbV9jdXJyZW50RHJhZ0RhdGEpOwogCiAgICAgbV9jdXJyZW50RHJhZ0RhdGEgPSB3
ZWJEcmFnRGF0YTsKICAgICBtX29wZXJhdGlvbnNBbGxvd2VkID0gb3BlcmF0aW9uc0FsbG93ZWQ7
CiAKLSAgICByZXR1cm4gZHJhZ1RhcmdldERyYWdFbnRlck9yT3ZlcihjbGllbnRQb2ludCwgc2Ny
ZWVuUG9pbnQsIERyYWdFbnRlcik7CisgICAgcmV0dXJuIGRyYWdUYXJnZXREcmFnRW50ZXJPck92
ZXIoY2xpZW50UG9pbnQsIHNjcmVlblBvaW50LCBEcmFnRW50ZXIsIGtleU1vZGlmaWVycyk7CiB9
CiAKIFdlYkRyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnT3ZlcigKQEAg
LTI2MDgsOSArMjYzMiwxOCBAQCBXZWJEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFy
Z2V0RHJhZ092ZXIoCiAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAogICAgIFdlYkRy
YWdPcGVyYXRpb25zTWFzayBvcGVyYXRpb25zQWxsb3dlZCkKIHsKKyAgICByZXR1cm4gZHJhZ1Rh
cmdldERyYWdPdmVyKGNsaWVudFBvaW50LCBzY3JlZW5Qb2ludCwgb3BlcmF0aW9uc0FsbG93ZWQs
IDApOworfQorCitXZWJEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ092
ZXIoCisgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAorICAgIGNvbnN0IFdlYlBvaW50
JiBzY3JlZW5Qb2ludCwKKyAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93
ZWQsCisgICAgaW50IGtleU1vZGlmaWVycykKK3sKICAgICBtX29wZXJhdGlvbnNBbGxvd2VkID0g
b3BlcmF0aW9uc0FsbG93ZWQ7CiAKLSAgICByZXR1cm4gZHJhZ1RhcmdldERyYWdFbnRlck9yT3Zl
cihjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQsIERyYWdPdmVyKTsKKyAgICByZXR1cm4gZHJhZ1Rh
cmdldERyYWdFbnRlck9yT3ZlcihjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQsIERyYWdPdmVyLCBr
ZXlNb2RpZmllcnMpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0xlYXZl
KCkKQEAgLTI2MzQsNiArMjY2NywxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJh
Z0xlYXZlKCkKIHZvaWQgV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcm9wKGNvbnN0IFdlYlBvaW50
JiBjbGllbnRQb2ludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdl
YlBvaW50JiBzY3JlZW5Qb2ludCkKIHsKKyAgICBkcmFnVGFyZ2V0RHJvcChjbGllbnRQb2ludCwg
c2NyZWVuUG9pbnQsIDApOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJvcChj
b25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQga2V5TW9kaWZpZXJzKQorewogICAgIEFTU0VSVChtX2N1cnJlbnREcmFn
RGF0YSk7CiAKICAgICAvLyBJZiB0aGlzIHdlYnZpZXcgdHJhbnNpdGlvbnMgZnJvbSB0aGUgImRy
b3AgYWNjZXB0aW5nIiBzdGF0ZSB0byB0aGUgIm5vdApAQCAtMjY0OCw2ICsyNjg4LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyb3AoY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50
LAogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgbV9jdXJyZW50RHJhZ0RhdGEtPnNldE1v
ZGlmaWVyS2V5U3RhdGUod2ViSW5wdXRFdmVudEtleVN0YXRlVG9QbGF0Zm9ybUV2ZW50S2V5U3Rh
dGUoa2V5TW9kaWZpZXJzKSk7CiAgICAgRHJhZ0RhdGEgZHJhZ0RhdGEoCiAgICAgICAgIG1fY3Vy
cmVudERyYWdEYXRhLmdldCgpLAogICAgICAgICBjbGllbnRQb2ludCwKQEAgLTI2NjIsMTAgKzI3
MDMsMTEgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyb3AoY29uc3QgV2ViUG9pbnQm
IGNsaWVudFBvaW50LAogICAgIG1fZHJhZ1Njcm9sbFRpbWVyLT5zdG9wKCk7CiB9CiAKLVdlYkRy
YWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXJPck92ZXIoY29uc3Qg
V2ViUG9pbnQmIGNsaWVudFBvaW50LCBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsIERyYWdB
Y3Rpb24gZHJhZ0FjdGlvbikKK1dlYkRyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJn
ZXREcmFnRW50ZXJPck92ZXIoY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LCBjb25zdCBXZWJQ
b2ludCYgc2NyZWVuUG9pbnQsIERyYWdBY3Rpb24gZHJhZ0FjdGlvbiwgaW50IGtleU1vZGlmaWVy
cykKIHsKICAgICBBU1NFUlQobV9jdXJyZW50RHJhZ0RhdGEpOwogCisgICAgbV9jdXJyZW50RHJh
Z0RhdGEtPnNldE1vZGlmaWVyS2V5U3RhdGUod2ViSW5wdXRFdmVudEtleVN0YXRlVG9QbGF0Zm9y
bUV2ZW50S2V5U3RhdGUoa2V5TW9kaWZpZXJzKSk7CiAgICAgRHJhZ0RhdGEgZHJhZ0RhdGEoCiAg
ICAgICAgIG1fY3VycmVudERyYWdEYXRhLmdldCgpLAogICAgICAgICBjbGllbnRQb2ludCwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGM5NmRhNGM2ZTk3MWNi
NTg0ZjMxYjQ4YTk3YmI5ZjI3YzhiNDQ3OWUuLjdiNDkyMDMxZDA1MzVkYmJjYTE2YTllZDAzOWI5
OWQ1ZDhlOWYzMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApA
QCAtMjI5LDE0ICsyMjksMjkgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xp
ZW50UG9pbnQsCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKICAgICAgICAg
V2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkKTsKKyAgICB2aXJ0dWFsIFdl
YkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdFbnRlcigKKyAgICAgICAgY29uc3QgV2ViRHJh
Z0RhdGEmLAorICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCisgICAgICAgIGNv
bnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKKyAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNr
IG9wZXJhdGlvbnNBbGxvd2VkLAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKTsKICAgICB2aXJ0
dWFsIFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdPdmVyKAogICAgICAgICBjb25zdCBX
ZWJQb2ludCYgY2xpZW50UG9pbnQsCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2lu
dCwKICAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkKTsKKyAg
ICB2aXJ0dWFsIFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdPdmVyKAorICAgICAgICBj
b25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3Jl
ZW5Qb2ludCwKKyAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2Vk
LAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhZ1Rhcmdl
dERyYWdMZWF2ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkcmFnVGFyZ2V0RHJvcCgKICAgICAgICAg
Y29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAogICAgICAgICBjb25zdCBXZWJQb2ludCYgc2Ny
ZWVuUG9pbnQpOworICAgIHZpcnR1YWwgdm9pZCBkcmFnVGFyZ2V0RHJvcCgKKyAgICAgICAgY29u
c3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAorICAgICAgICBjb25zdCBXZWJQb2ludCYgc2NyZWVu
UG9pbnQsCisgICAgICAgIGludCBrZXlNb2RpZmllcnMpOwogICAgIHZpcnR1YWwgdW5zaWduZWQg
bG9uZyBjcmVhdGVVbmlxdWVJZGVudGlmaWVyRm9yUmVxdWVzdCgpOwogICAgIHZpcnR1YWwgdm9p
ZCBpbnNwZWN0RWxlbWVudEF0KGNvbnN0IFdlYlBvaW50JiBwb2ludCk7CiAgICAgdmlydHVhbCBX
ZWJTdHJpbmcgaW5zcGVjdG9yU2V0dGluZ3MoKSBjb25zdDsKQEAgLTU4Miw3ICs1OTcsOCBAQCBw
cml2YXRlOgogICAgIC8vIHNob3VsZCBiZSB0cnVlLgogICAgIFdlYkRyYWdPcGVyYXRpb24gZHJh
Z1RhcmdldERyYWdFbnRlck9yT3Zlcihjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlBvaW50
JiBzY3JlZW5Qb2ludCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRHJhZ0FjdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIERyYWdBY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCBrZXlNb2RpZmllcnMpOwogCiAgICAgdm9pZCBjb25maWd1cmVBdXRv
UmVzaXplTW9kZSgpOwogCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXgg
YmQyZmI5MWE4ZmFjOGUxMDEwZjJmNDc3YzM2MTMxMmY4NmYwOWQ5Zi4uMjIwNDRlYmNmNWIxMTZj
ZGZhZmNkYTRjNDZmOWI3NGY5N2I4ODE3OCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA1LTE1ICBWYXJ1biBKYWluICA8dmFydW5q
YWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBObyBtb2RpZmllciBmbGFncyAo
c2hpZnQvY3RybC9hbHQpIGluIGRyYWcmZHJvcCBldmVudHMgb24gY2hyb21pdW0gbGludXgKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MjM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNYW51YWxUZXN0
cy9jaHJvbWl1bS9tb2RpZmllcnMtZHVyaW5nLWRyYWctYW5kLWRyb3AuaHRtbDogQWRkZWQuCisK
IDIwMTItMDUtMTEgIEplZmZyZXkgUGZhdSAgPGpwZmF1QGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMTE0MTcwKTogU2Nyb2xsIGFyZWFzIGluIG5lc3RlZCBmcmFtZXMgaW1wcm9w
ZXJseSBwbGFjZWQgd2hlbiB0aWxlZCBkcmF3aW5nIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBhL01h
bnVhbFRlc3RzL2Nocm9taXVtL21vZGlmaWVycy1kdXJpbmctZHJhZy1hbmQtZHJvcC5odG1sIGIv
TWFudWFsVGVzdHMvY2hyb21pdW0vbW9kaWZpZXJzLWR1cmluZy1kcmFnLWFuZC1kcm9wLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzIxMzZiYmQwMGUzMjJhN2MzYjI5OTY4N2NjOTIzN2Q0NmY1YzNhZQotLS0g
L2Rldi9udWxsCisrKyBiL01hbnVhbFRlc3RzL2Nocm9taXVtL21vZGlmaWVycy1kdXJpbmctZHJh
Zy1hbmQtZHJvcC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
PgorICAgIGZ1bmN0aW9uIGxvZ0RyYWcoZSkgeworICAgICAgICB2YXIgbCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsb2cnKTsKKyAgICAgICAgbC5pbm5lckhUTUwgKz0gJ3NoaWZ0S2V5PScg
KyBlLnNoaWZ0S2V5ICsgJyBjdHJsS2V5PScgKyBlLmN0cmxLZXkgKyAnIGFsdEtleT0nICsgZS5h
bHRLZXkgKyAnIG1ldGFLZXk9JyArIGUubWV0YUtleSArICdcbic7CisgICAgICAgIGUucHJldmVu
dERlZmF1bHQoKTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01D
b250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoJ2RyYWdlbnRlcicsIGxvZ0RyYWcsIGZhbHNlKTsKKyAgICAgICAgZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBsb2dEcmFnLCBmYWxzZSk7CisgICAgICAgIGRvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIGxvZ0RyYWcsIGZhbHNlKTsKKyAgICAg
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIGxvZ0RyYWcsIGZhbHNlKTsKKyAg
ICB9KTsKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8cD5EcmFnIHRoZSAiRHJh
ZyBtZSIgd2l0aCBhbnkgbW9kaWZpZXIga2V5cyBwcmVzc2VkIChTaGlmdC9DdHJsL0FsdCkgYW5k
IHNlZSBpZiB0aGUgbG9nIG1lc3NhZ2VzIGhhdmUgdGhlIGNvcnJlY3QgbW9kaWZpZXIgc3RhdGU8
L3A+CisgICAgPGRpdiBkcmFnZ2FibGU9J3RydWUnIGlkPSdkcmFnbWUnPgorICAgICAgICBEcmFn
IG1lCisgICAgPC9kaXY+CisgICAgPHByZSBpZD0nbG9nJz48L3ByZT4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142068</attachid>
            <date>2012-05-15 15:00:24 -0700</date>
            <delta_ts>2012-05-16 13:03:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86236-20120515180022.patch</filename>
            <type>text/plain</type>
            <size>17647</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzg4MmJhNGMwZjg1ODNm
MDAyZmNlZWIzZDIxZGIxMzZjN2JjZWRjNi4uYmMwYmQ0OWQxYzNjMDY3YTRhMWEzM2I3MGM4YzA5
ZmQ3OGFjZDY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA1LTE1ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBObyBt
b2RpZmllciBmbGFncyAoc2hpZnQvY3RybC9hbHQpIGluIGRyYWcmZHJvcCBldmVudHMgb24gY2hy
b21pdW0gbGludXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFudWFsVGVzdHM6IE1hbnVhbFRlc3RzL2Nocm9taXVtL21vZGlmaWVycy1kdXJpbmctZHJh
Zy1hbmQtZHJvcC5odG1sCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL0Ry
YWdEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0Rh
dGE6Om1vZGlmaWVyS2V5U3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdEYXRhLmg6Cisg
ICAgICAgIChEcmFnRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1E
YXRhT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6Q2hy
b21pdW1EYXRhT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURh
dGFPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6bW9kaWZp
ZXJLZXlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OnNldE1v
ZGlmaWVyS2V5U3RhdGUpOgorICAgICAgICAoQ2hyb21pdW1EYXRhT2JqZWN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdEYXRhOjptb2RpZmllcktleVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAy
MDEyLTA1LTE1ICBSb2IgQnVpcyAgPHJidWlzQHJpbS5jb20+CiAKICAgICAgICAgUmVmYWN0b3Ig
U1ZHIHBhcnRzIG9mIE5vZGU6OmFkZEV2ZW50TGlzdGVuZXIvcmVtb3ZlRXZlbnRMaXN0ZW5lcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1ZGFhZjk2NjczOGJhYjYxYmM4MmVkYjJhN2Vj
OWNlNTQ0NzI3ZDFjLi45YTBmNWI3YzMzNzk2Yjc0MWRhODVhMzA1MmRiNDc5MWY2NzZlYTEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTE1ICBW
YXJ1biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBO
byBtb2RpZmllciBmbGFncyAoc2hpZnQvY3RybC9hbHQpIGluIGRyYWcmZHJvcCBldmVudHMgb24g
Y2hyb21pdW0gbGludXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6d2ViSW5wdXRFdmVudEtleVN0
YXRlVG9QbGF0Zm9ybUV2ZW50S2V5U3RhdGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyYWdPdmVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcm9wKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmRyYWdUYXJnZXREcmFnRW50ZXJPck92ZXIpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1w
bC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTA1LTE1ICBIYW5zIFdlbm5ib3Jn
ICA8aGFuc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3BlZWNoIEphdmFTY3JpcHQgQVBJOiBJ
bnRyb2R1Y2UgZXJyb3IgY29kZSBlbnVtIGluIENocm9taXVtIHBsdW1iaW5nCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDg5ZDcyYWU4MzYzOGY3NjRjZDZkYjBmZDE4
ZTQzZDBiOWM5NGYyNWQuLjEzNTQ0NmNmNDA4ODU3NmY0MTU5ZWU0OWFlZTg0ODYzYjMyMjEzZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC03Nyw3ICs3NywxMiBA
QCBzdGF0aWMgUGxhdGZvcm1Nb3VzZUV2ZW50IGNyZWF0ZU1vdXNlRXZlbnQoRHJhZ0RhdGEqIGRy
YWdEYXRhKQogewogICAgIGJvb2wgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleTsK
ICAgICBzaGlmdEtleSA9IGN0cmxLZXkgPSBhbHRLZXkgPSBtZXRhS2V5ID0gZmFsc2U7Ci0gICAg
UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlmdEtleSwg
Y3RybEtleSwgYWx0S2V5LCBtZXRhS2V5KTsKKyAgICBpbnQga2V5U3RhdGUgPSBkcmFnRGF0YS0+
bW9kaWZpZXJLZXlTdGF0ZSgpOworICAgIHNoaWZ0S2V5ID0gc3RhdGljX2Nhc3Q8Ym9vbD4oa2V5
U3RhdGUgJiBQbGF0Zm9ybUV2ZW50OjpTaGlmdEtleSk7CisgICAgY3RybEtleSA9IHN0YXRpY19j
YXN0PGJvb2w+KGtleVN0YXRlICYgUGxhdGZvcm1FdmVudDo6Q3RybEtleSk7CisgICAgYWx0S2V5
ID0gc3RhdGljX2Nhc3Q8Ym9vbD4oa2V5U3RhdGUgJiBQbGF0Zm9ybUV2ZW50OjpBbHRLZXkpOwor
ICAgIG1ldGFLZXkgPSBzdGF0aWNfY2FzdDxib29sPihrZXlTdGF0ZSAmIFBsYXRmb3JtRXZlbnQ6
Ok1ldGFLZXkpOworCiAgICAgcmV0dXJuIFBsYXRmb3JtTW91c2VFdmVudChkcmFnRGF0YS0+Y2xp
ZW50UG9zaXRpb24oKSwgZHJhZ0RhdGEtPmdsb2JhbFBvc2l0aW9uKCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAw
LCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWV0YUtleSwgY3VycmVudFRpbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EcmFnRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5j
cHAKaW5kZXggYTYxZmVhYjVhYjNjMGY5MDJhODU4ZmE0NzFiYzcwYjE5MGVhNGY3Zi4uZWZiNzA1
YTQ2YjUyNGMwNGVmZTVlNDFhYjRjZjEwZWI3ZTRhMWQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdEYXRhLmNwcApAQCAtMjUsNiArMjUsOCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRHJhZ0RhdGEuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTEsNiArNTMsMjYgQEAgRHJhZ0RhdGE6OkRyYWdEYXRh
KGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgSW50
UG9pbnQKIH0KICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQoraW50IERyYWdEYXRh
Ojptb2RpZmllcktleVN0YXRlKCkgY29uc3QKK3sKKyAgICBib29sIHNoaWZ0S2V5LCBjdHJsS2V5
LCBhbHRLZXksIG1ldGFLZXk7CisgICAgc2hpZnRLZXkgPSBjdHJsS2V5ID0gYWx0S2V5ID0gbWV0
YUtleSA9IGZhbHNlOworICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlm
aWVyU3RhdGUoc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSk7CisgICAgaW50IGtl
eVN0YXRlID0gMDsKKyAgICBpZiAoc2hpZnRLZXkpCisgICAgICAgIGtleVN0YXRlID0ga2V5U3Rh
dGUgfCBQbGF0Zm9ybUV2ZW50OjpTaGlmdEtleTsKKyAgICBpZiAoY3RybEtleSkKKyAgICAgICAg
a2V5U3RhdGUgPSBrZXlTdGF0ZSB8IFBsYXRmb3JtRXZlbnQ6OkN0cmxLZXk7CisgICAgaWYgKGFs
dEtleSkKKyAgICAgICAga2V5U3RhdGUgPSBrZXlTdGF0ZSB8IFBsYXRmb3JtRXZlbnQ6OkFsdEtl
eTsKKyAgICBpZiAobWV0YUtleSkKKyAgICAgICAga2V5U3RhdGUgPSBrZXlTdGF0ZSB8IFBsYXRm
b3JtRXZlbnQ6Ok1ldGFLZXk7CisgICAgcmV0dXJuIGtleVN0YXRlOworfQorI2VuZGlmCisKKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCmluZGV4IDgyM2FjNTUzZTViZmRjMTIyYjNhMmE1
YzQ1M2M0ZGZmNzgyZmI3YTcuLmUxMzMzM2UzM2ZkYTBlNTkwY2IwMjNiOTI1ODRiM2M0MmNmYzAw
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtMTE4LDYgKzExOCw3IEBAIHB1
YmxpYzoKICAgICBib29sIGNvbnRhaW5zQ29sb3IoKSBjb25zdDsKICAgICBib29sIGNvbnRhaW5z
RmlsZXMoKSBjb25zdDsKICAgICB1bnNpZ25lZCBudW1iZXJPZkZpbGVzKCkgY29uc3Q7CisgICAg
aW50IG1vZGlmaWVyS2V5U3RhdGUoKSBjb25zdDsKICNpZiBQTEFURk9STShNQUMpCiAgICAgY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSgpIHsgcmV0dXJuIG1fcGFzdGVib2FyZE5hbWU7IH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hy
b21pdW1EYXRhT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0No
cm9taXVtRGF0YU9iamVjdC5jcHAKaW5kZXggZTY1NmY0NGIyN2E4ZTFmY2FjMTZjOGYwMGZlNTRm
MWQxZDU5ODQyYS4uODc2ZWM0Mzc5NjZkZjM5NzNmZmQ3N2U4ZGE0ZTM4NjViY2YwYzI4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURh
dGFPYmplY3QuY3BwCkBAIC0yMTMsMTIgKzIxMywxNCBAQCB2b2lkIENocm9taXVtRGF0YU9iamVj
dDo6YWRkU2hhcmVkQnVmZmVyKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxTaGFyZWRC
dQogfQogCiBDaHJvbWl1bURhdGFPYmplY3Q6OkNocm9taXVtRGF0YU9iamVjdCgpCisgICAgOiBt
X21vZGlmaWVyS2V5U3RhdGUoMCkKIHsKIH0KIAogQ2hyb21pdW1EYXRhT2JqZWN0OjpDaHJvbWl1
bURhdGFPYmplY3QoY29uc3QgQ2hyb21pdW1EYXRhT2JqZWN0JiBvdGhlcikKICAgICA6IFJlZkNv
dW50ZWQ8Q2hyb21pdW1EYXRhT2JqZWN0PigpCiAgICAgLCBtX2l0ZW1MaXN0KG90aGVyLm1faXRl
bUxpc3QpCisgICAgLCBtX21vZGlmaWVyS2V5U3RhdGUoMCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAppbmRl
eCAxYTVkNzg5OGE0ZWMzOTIyNjg3MmMzMDhmOTg1N2Y1Y2IxMWFiOThiLi4xZWZiNGRmZWM3ZDEx
MDBjN2RhYjVhMjFjOWMwNWFlNzQ3YWY1Njg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaApAQCAtODYsNiArODYsOSBA
QCBwdWJsaWM6CiAgICAgLy8gVXNlZCB0byBoYW5kbGUgZmlsZXMgKGltYWdlcykgYmVpbmcgZHJh
Z2dlZCBvdXQuCiAgICAgdm9pZCBhZGRTaGFyZWRCdWZmZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4pOwogCisgICAgaW50IG1vZGlmaWVyS2V5U3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX21vZGlmaWVyS2V5U3RhdGU7IH0KKyAgICB2b2lkIHNldE1vZGlmaWVy
S2V5U3RhdGUoaW50IG1vZGlmaWVyS2V5U3RhdGUpIHsgbV9tb2RpZmllcktleVN0YXRlID0gbW9k
aWZpZXJLZXlTdGF0ZTsgfQorCiBwcml2YXRlOgogICAgIENocm9taXVtRGF0YU9iamVjdCgpOwog
ICAgIGV4cGxpY2l0IENocm9taXVtRGF0YU9iamVjdChjb25zdCBDaHJvbWl1bURhdGFPYmplY3Qm
KTsKQEAgLTk1LDYgKzk4LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludGVybmFsQWRkRmlsZUl0
ZW0oUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmplY3RJdGVtPik7CiAKICAgICBWZWN0b3I8UmVm
UHRyPENocm9taXVtRGF0YU9iamVjdEl0ZW0+ID4gbV9pdGVtTGlzdDsKKworICAgIC8vIFN0YXRl
IG9mIFNoaWZ0L0N0cmwvQWx0L01ldGEga2V5cy4KKyAgICBpbnQgbV9tb2RpZmllcktleVN0YXRl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAppbmRleCAwMDlhM2EwOGFj
YzBlOTJjYjk3MDNhYWZlOGZkZDkxYjkwNWQ2ZGJhLi5hMDRhMzBmMmY0NjFlYjI1YzFiNjI1OGM2
M2Y4ZGZjMmE1NWNjNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcApAQCAtNzUsNiArNzUsMTEgQEAgdW5zaWduZWQg
RHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBtX3BsYXRmb3JtRHJh
Z0RhdGEtPmZpbGVuYW1lcygpLnNpemUoKTsKIH0KIAoraW50IERyYWdEYXRhOjptb2RpZmllcktl
eVN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wbGF0Zm9ybURyYWdEYXRhLT5tb2RpZmll
cktleVN0YXRlKCk7Cit9CisKIHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJp
bmc+JiByZXN1bHQpIGNvbnN0CiB7CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1l
cyA9IG1fcGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggYzFhMjljZWQ5OThlZDAzMmRlMTg4MmIwNWI2ODE1MzA5
NDE1OWQ0ZS4uMGY3MDkzYWM0ZmRjMDg2MTU0NjQ1YTMwYzAxZWEzMzQyOTBmYzVkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMzA1LDE2ICszMDUsMzEgQEAg
cHVibGljOgogCiAgICAgLy8gQ2FsbGJhY2sgbWV0aG9kcyB3aGVuIGEgZHJhZy1hbmQtZHJvcCBv
cGVyYXRpb24gaXMgdHJ5aW5nIHRvIGRyb3AKICAgICAvLyBzb21ldGhpbmcgb24gdGhlIFdlYlZp
ZXcuCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBhZnRlciBjaHJvbWl1bSBjaGFu
Z2VzIGNhdGNoIHVwLgogICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJh
Z0VudGVyKAogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYsCiAgICAgICAgIGNvbnN0IFdlYlBv
aW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAogICAgICAgICBX
ZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpID0gMDsKKyAgICB2aXJ0dWFs
IFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdFbnRlcigKKyAgICAgICAgY29uc3QgV2Vi
RHJhZ0RhdGEmLAorICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsIGNvbnN0IFdl
YlBvaW50JiBzY3JlZW5Qb2ludCwKKyAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJh
dGlvbnNBbGxvd2VkLAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKSA9IDA7CisgICAgLy8gRklY
TUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBhZnRlciBjaHJvbWl1bSBjaGFuZ2VzIGNhdGNoIHVwLgog
ICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJhZ092ZXIoCiAgICAgICAg
IGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50
LAogICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpID0gMDsK
KyAgICB2aXJ0dWFsIFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdPdmVyKAorICAgICAg
ICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2lu
dCwKKyAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkLAorICAg
ICAgICBpbnQga2V5TW9kaWZpZXJzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYWdUYXJnZXRE
cmFnTGVhdmUoKSA9IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBhZnRlciBj
aHJvbWl1bSBjaGFuZ2VzIGNhdGNoIHVwLgogICAgIHZpcnR1YWwgdm9pZCBkcmFnVGFyZ2V0RHJv
cCgKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LCBjb25zdCBXZWJQb2ludCYg
c2NyZWVuUG9pbnQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhZ1RhcmdldERyb3AoCisgICAg
ICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBv
aW50LAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKSA9IDA7CiAKIAogICAgIC8vIFN1cHBvcnQg
Zm9yIHJlc291cmNlIGxvYWRpbmcgaW5pdGlhdGVkIGJ5IHBsdWdpbnMgLS0tLS0tLS0tLS0tLS0t
LS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDBh
MjJmNmQxNGQ3NTdhYWIxYjI2ZThlY2QyNjViZWI3MThjY2JkNzEuLjVlNzFiMDcxY2Y4NjliMWUw
OWI4OTljZDcxNmU4YjA2YzUyMDVkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKQEAgLTI0NCw2ICsyNDQsMjAgQEAgc3RhdGljIGNvbnN0IFBvcHVwQ29u
dGFpbmVyU2V0dGluZ3MgYXV0b2ZpbGxQb3B1cFNldHRpbmdzID0gewogCiBzdGF0aWMgYm9vbCBz
aG91bGRVc2VFeHRlcm5hbFBvcHVwTWVudXMgPSBmYWxzZTsKIAorc3RhdGljIGludCB3ZWJJbnB1
dEV2ZW50S2V5U3RhdGVUb1BsYXRmb3JtRXZlbnRLZXlTdGF0ZShpbnQgd2ViSW5wdXRFdmVudEtl
eVN0YXRlKQoreworICAgIGludCBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUgPSAwOworICAgIGlmICh3
ZWJJbnB1dEV2ZW50S2V5U3RhdGUgJiBXZWJJbnB1dEV2ZW50OjpTaGlmdEtleSkKKyAgICAgICAg
cGxhdGZvcm1FdmVudEtleVN0YXRlID0gcGxhdGZvcm1FdmVudEtleVN0YXRlIHwgV2ViQ29yZTo6
UGxhdGZvcm1FdmVudDo6U2hpZnRLZXk7CisgICAgaWYgKHdlYklucHV0RXZlbnRLZXlTdGF0ZSAm
IFdlYklucHV0RXZlbnQ6OkNvbnRyb2xLZXkpCisgICAgICAgIHBsYXRmb3JtRXZlbnRLZXlTdGF0
ZSA9IHBsYXRmb3JtRXZlbnRLZXlTdGF0ZSB8IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OkN0cmxL
ZXk7CisgICAgaWYgKHdlYklucHV0RXZlbnRLZXlTdGF0ZSAmIFdlYklucHV0RXZlbnQ6OkFsdEtl
eSkKKyAgICAgICAgcGxhdGZvcm1FdmVudEtleVN0YXRlID0gcGxhdGZvcm1FdmVudEtleVN0YXRl
IHwgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6QWx0S2V5OworICAgIGlmICh3ZWJJbnB1dEV2ZW50
S2V5U3RhdGUgJiBXZWJJbnB1dEV2ZW50OjpNZXRhS2V5KQorICAgICAgICBwbGF0Zm9ybUV2ZW50
S2V5U3RhdGUgPSBwbGF0Zm9ybUV2ZW50S2V5U3RhdGUgfCBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50
OjpNZXRhS2V5OworICAgIHJldHVybiBwbGF0Zm9ybUV2ZW50S2V5U3RhdGU7Cit9CisKIC8vIFdl
YlZpZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCiBXZWJWaWV3KiBXZWJWaWV3OjpjcmVhdGUoV2ViVmlld0NsaWVudCog
Y2xpZW50KQpAQCAtMjYwMSwxMiArMjYxNSwyMiBAQCBXZWJEcmFnT3BlcmF0aW9uIFdlYlZpZXdJ
bXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyKAogICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2lu
dCwKICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpCiB7CisgICAg
cmV0dXJuIGRyYWdUYXJnZXREcmFnRW50ZXIod2ViRHJhZ0RhdGEsIGNsaWVudFBvaW50LCBzY3Jl
ZW5Qb2ludCwgb3BlcmF0aW9uc0FsbG93ZWQsIDApOworfQorCitXZWJEcmFnT3BlcmF0aW9uIFdl
YlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyKAorICAgIGNvbnN0IFdlYkRyYWdEYXRhJiB3
ZWJEcmFnRGF0YSwKKyAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCisgICAgY29uc3Qg
V2ViUG9pbnQmIHNjcmVlblBvaW50LAorICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBvcGVyYXRp
b25zQWxsb3dlZCwKKyAgICBpbnQga2V5TW9kaWZpZXJzKQorewogICAgIEFTU0VSVCghbV9jdXJy
ZW50RHJhZ0RhdGEpOwogCiAgICAgbV9jdXJyZW50RHJhZ0RhdGEgPSB3ZWJEcmFnRGF0YTsKICAg
ICBtX29wZXJhdGlvbnNBbGxvd2VkID0gb3BlcmF0aW9uc0FsbG93ZWQ7CiAKLSAgICByZXR1cm4g
ZHJhZ1RhcmdldERyYWdFbnRlck9yT3ZlcihjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQsIERyYWdF
bnRlcik7CisgICAgcmV0dXJuIGRyYWdUYXJnZXREcmFnRW50ZXJPck92ZXIoY2xpZW50UG9pbnQs
IHNjcmVlblBvaW50LCBEcmFnRW50ZXIsIGtleU1vZGlmaWVycyk7CiB9CiAKIFdlYkRyYWdPcGVy
YXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnT3ZlcigKQEAgLTI2MTQsOSArMjYzOCwx
OCBAQCBXZWJEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ092ZXIoCiAg
ICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAogICAgIFdlYkRyYWdPcGVyYXRpb25zTWFz
ayBvcGVyYXRpb25zQWxsb3dlZCkKIHsKKyAgICByZXR1cm4gZHJhZ1RhcmdldERyYWdPdmVyKGNs
aWVudFBvaW50LCBzY3JlZW5Qb2ludCwgb3BlcmF0aW9uc0FsbG93ZWQsIDApOworfQorCitXZWJE
cmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ092ZXIoCisgICAgY29uc3Qg
V2ViUG9pbnQmIGNsaWVudFBvaW50LAorICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwK
KyAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQsCisgICAgaW50IGtl
eU1vZGlmaWVycykKK3sKICAgICBtX29wZXJhdGlvbnNBbGxvd2VkID0gb3BlcmF0aW9uc0FsbG93
ZWQ7CiAKLSAgICByZXR1cm4gZHJhZ1RhcmdldERyYWdFbnRlck9yT3ZlcihjbGllbnRQb2ludCwg
c2NyZWVuUG9pbnQsIERyYWdPdmVyKTsKKyAgICByZXR1cm4gZHJhZ1RhcmdldERyYWdFbnRlck9y
T3ZlcihjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQsIERyYWdPdmVyLCBrZXlNb2RpZmllcnMpOwog
fQogCiB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0xlYXZlKCkKQEAgLTI2NDAsNiAr
MjY3MywxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0xlYXZlKCkKIHZvaWQg
V2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcm9wKGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Q
b2ludCkKIHsKKyAgICBkcmFnVGFyZ2V0RHJvcChjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQsIDAp
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJvcChjb25zdCBXZWJQb2ludCYg
Y2xpZW50UG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJQ
b2ludCYgc2NyZWVuUG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
a2V5TW9kaWZpZXJzKQorewogICAgIEFTU0VSVChtX2N1cnJlbnREcmFnRGF0YSk7CiAKICAgICAv
LyBJZiB0aGlzIHdlYnZpZXcgdHJhbnNpdGlvbnMgZnJvbSB0aGUgImRyb3AgYWNjZXB0aW5nIiBz
dGF0ZSB0byB0aGUgIm5vdApAQCAtMjY1NCw2ICsyNjk0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6
ZHJhZ1RhcmdldERyb3AoY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAogICAgICAgICByZXR1
cm47CiAgICAgfQogCisgICAgbV9jdXJyZW50RHJhZ0RhdGEtPnNldE1vZGlmaWVyS2V5U3RhdGUo
d2ViSW5wdXRFdmVudEtleVN0YXRlVG9QbGF0Zm9ybUV2ZW50S2V5U3RhdGUoa2V5TW9kaWZpZXJz
KSk7CiAgICAgRHJhZ0RhdGEgZHJhZ0RhdGEoCiAgICAgICAgIG1fY3VycmVudERyYWdEYXRhLmdl
dCgpLAogICAgICAgICBjbGllbnRQb2ludCwKQEAgLTI2NjgsMTAgKzI3MDksMTEgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyb3AoY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAog
ICAgIG1fZHJhZ1Njcm9sbFRpbWVyLT5zdG9wKCk7CiB9CiAKLVdlYkRyYWdPcGVyYXRpb24gV2Vi
Vmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXJPck92ZXIoY29uc3QgV2ViUG9pbnQmIGNsaWVu
dFBvaW50LCBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsIERyYWdBY3Rpb24gZHJhZ0FjdGlv
bikKK1dlYkRyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXJPck92
ZXIoY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LCBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9p
bnQsIERyYWdBY3Rpb24gZHJhZ0FjdGlvbiwgaW50IGtleU1vZGlmaWVycykKIHsKICAgICBBU1NF
UlQobV9jdXJyZW50RHJhZ0RhdGEpOwogCisgICAgbV9jdXJyZW50RHJhZ0RhdGEtPnNldE1vZGlm
aWVyS2V5U3RhdGUod2ViSW5wdXRFdmVudEtleVN0YXRlVG9QbGF0Zm9ybUV2ZW50S2V5U3RhdGUo
a2V5TW9kaWZpZXJzKSk7CiAgICAgRHJhZ0RhdGEgZHJhZ0RhdGEoCiAgICAgICAgIG1fY3VycmVu
dERyYWdEYXRhLmdldCgpLAogICAgICAgICBjbGllbnRQb2ludCwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDM3NzUzNmVhZGNkZWU3ODBiMTAxNzJlOGFmMjhm
ZTNmYTdjMmU5NTUuLjNhNTAxN2ZiY2M2MzJmMTA2ODRlYTk5OTBjYzI4MWYwMThhOTc1MzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMjMyLDE0ICsyMzIs
MjkgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCiAgICAg
ICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKICAgICAgICAgV2ViRHJhZ09wZXJhdGlv
bnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkKTsKKyAgICB2aXJ0dWFsIFdlYkRyYWdPcGVyYXRpb24g
ZHJhZ1RhcmdldERyYWdFbnRlcigKKyAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmLAorICAgICAg
ICBjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBz
Y3JlZW5Qb2ludCwKKyAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxv
d2VkLAorICAgICAgICBpbnQga2V5TW9kaWZpZXJzKTsKICAgICB2aXJ0dWFsIFdlYkRyYWdPcGVy
YXRpb24gZHJhZ1RhcmdldERyYWdPdmVyKAogICAgICAgICBjb25zdCBXZWJQb2ludCYgY2xpZW50
UG9pbnQsCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKICAgICAgICAgV2Vi
RHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkKTsKKyAgICB2aXJ0dWFsIFdlYkRy
YWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdPdmVyKAorICAgICAgICBjb25zdCBXZWJQb2ludCYg
Y2xpZW50UG9pbnQsCisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKKyAgICAg
ICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkLAorICAgICAgICBpbnQg
a2V5TW9kaWZpZXJzKTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhZ1RhcmdldERyYWdMZWF2ZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBkcmFnVGFyZ2V0RHJvcCgKICAgICAgICAgY29uc3QgV2ViUG9pbnQm
IGNsaWVudFBvaW50LAogICAgICAgICBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQpOworICAg
IHZpcnR1YWwgdm9pZCBkcmFnVGFyZ2V0RHJvcCgKKyAgICAgICAgY29uc3QgV2ViUG9pbnQmIGNs
aWVudFBvaW50LAorICAgICAgICBjb25zdCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCisgICAgICAg
IGludCBrZXlNb2RpZmllcnMpOwogICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlx
dWVJZGVudGlmaWVyRm9yUmVxdWVzdCgpOwogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0RWxlbWVu
dEF0KGNvbnN0IFdlYlBvaW50JiBwb2ludCk7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgaW5zcGVj
dG9yU2V0dGluZ3MoKSBjb25zdDsKQEAgLTU4NSw3ICs2MDAsOCBAQCBwcml2YXRlOgogICAgIC8v
IHNob3VsZCBiZSB0cnVlLgogICAgIFdlYkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdFbnRl
ck9yT3Zlcihjb25zdCBXZWJQb2ludCYgY2xpZW50UG9pbnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJhZ0FjdGlv
bik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERyYWdB
Y3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBrZXlNb2RpZmllcnMpOwogCiAgICAgdm9pZCBjb25maWd1cmVBdXRvUmVzaXplTW9kZSgpOwog
CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMGNhOWZmNDk0MDU5YzJl
OGMyZTJmZDkwZWY3Y2JlYTkzNWNlMzlkOC4uMTU1NmQ4ODAxNTVlOWNmMWI1MjcxNTQ0OWQxYzA3
ODgwNDlkZDgyYiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDEyLTA1LTE1ICBWYXJ1biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+
CisKKyAgICAgICAgW2Nocm9taXVtXSBObyBtb2RpZmllciBmbGFncyAoc2hpZnQvY3RybC9hbHQp
IGluIGRyYWcmZHJvcCBldmVudHMgb24gY2hyb21pdW0gbGludXgKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNYW51YWxUZXN0cy9jaHJvbWl1bS9tb2Rp
ZmllcnMtZHVyaW5nLWRyYWctYW5kLWRyb3AuaHRtbDogQWRkZWQuCisKIDIwMTItMDUtMTQgIFNo
aW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGRvY3VtZW50
LmV4ZWNDb21tYW5kKCdJbmRlbnQnKSBpbiB0aGUgZGlyZWN0IGNoaWxkIG9mIFNoYWRvd1Jvb3Qg
Y2F1c2VzIGEgY3Jhc2guCmRpZmYgLS1naXQgYS9NYW51YWxUZXN0cy9jaHJvbWl1bS9tb2RpZmll
cnMtZHVyaW5nLWRyYWctYW5kLWRyb3AuaHRtbCBiL01hbnVhbFRlc3RzL2Nocm9taXVtL21vZGlm
aWVycy1kdXJpbmctZHJhZy1hbmQtZHJvcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyMTM2YmJkMDBlMzIy
YTdjM2IyOTk2ODdjYzkyMzdkNDZmNWMzYWUKLS0tIC9kZXYvbnVsbAorKysgYi9NYW51YWxUZXN0
cy9jaHJvbWl1bS9tb2RpZmllcnMtZHVyaW5nLWRyYWctYW5kLWRyb3AuaHRtbApAQCAtMCwwICsx
LDI2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBsb2dEcmFnKGUp
IHsKKyAgICAgICAgdmFyIGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7CisgICAg
ICAgIGwuaW5uZXJIVE1MICs9ICdzaGlmdEtleT0nICsgZS5zaGlmdEtleSArICcgY3RybEtleT0n
ICsgZS5jdHJsS2V5ICsgJyBhbHRLZXk9JyArIGUuYWx0S2V5ICsgJyBtZXRhS2V5PScgKyBlLm1l
dGFLZXkgKyAnXG4nOworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgfQorCisgICAg
ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkg
eworICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnZW50ZXInLCBsb2dEcmFn
LCBmYWxzZSk7CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywg
bG9nRHJhZywgZmFsc2UpOworICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFn
bGVhdmUnLCBsb2dEcmFnLCBmYWxzZSk7CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoJ2Ryb3AnLCBsb2dEcmFnLCBmYWxzZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4K
KworPGJvZHk+CisgICAgPHA+RHJhZyB0aGUgIkRyYWcgbWUiIHdpdGggYW55IG1vZGlmaWVyIGtl
eXMgcHJlc3NlZCAoU2hpZnQvQ3RybC9BbHQpIGFuZCBzZWUgaWYgdGhlIGxvZyBtZXNzYWdlcyBo
YXZlIHRoZSBjb3JyZWN0IG1vZGlmaWVyIHN0YXRlPC9wPgorICAgIDxkaXYgZHJhZ2dhYmxlPSd0
cnVlJyBpZD0nZHJhZ21lJz4KKyAgICAgICAgRHJhZyBtZQorICAgIDwvZGl2PgorICAgIDxwcmUg
aWQ9J2xvZyc+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>