<?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>61728</bug_id>
          
          <creation_ts>2011-05-30 06:47:57 -0700</creation_ts>
          <short_desc>[Qt] Implement fullscreen support on Mac with the QuickTime backend.</short_desc>
          <delta_ts>2011-07-29 11:52:33 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>61522</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexis Menard (darktears)">menard</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>ademar</cc>
    
    <cc>benjamin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>hausmann</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kling</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>412209</commentid>
    <comment_count>0</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-30 06:47:57 -0700</bug_when>
    <thetext>[Qt] Implement fullscreen support on Mac with the QuickTime backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412255</commentid>
    <comment_count>1</comment_count>
      <attachid>95347</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-30 09:28:11 -0700</bug_when>
    <thetext>Created attachment 95347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423872</commentid>
    <comment_count>2</comment_count>
      <attachid>95347</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-20 12:45:18 -0700</bug_when>
    <thetext>Comment on attachment 95347
Patch

Needs to be rebased after patch 1 of https://bugs.webkit.org/show_bug.cgi?id=61843</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424708</commentid>
    <comment_count>3</comment_count>
      <attachid>98050</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-21 13:31:36 -0700</bug_when>
    <thetext>Created attachment 98050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426171</commentid>
    <comment_count>4</comment_count>
      <attachid>98050</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-06-23 07:53:24 -0700</bug_when>
    <thetext>Comment on attachment 98050
Patch

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

You use &quot;FullScreen&quot; (inner-caps) rather than &quot;Fullscreen&quot; everywhere, but just a year ago we went through and changed everything over to &quot;Fullscreen&quot; (https://bugs.webkit.org/show_bug.cgi?id=34942). I see that a fair amount of the former has crept back in, but I think it would be better to use &quot;Fullscreen&quot; whenever possible for file names and in code.

&gt; Source/WebCore/platform/mac/WebVideoFullscreenHUDWindowController.mm:36
&gt;  #import &quot;FloatConversion.h&quot;
&gt;  #import &quot;WebCoreSystemInterface.h&quot;
&gt; -#import &lt;JavaScriptCore/RetainPtr.h&gt;
&gt; -#import &lt;JavaScriptCore/UnusedParam.h&gt;
&gt; +#import &lt;wtf/RetainPtr.h&gt;
&gt; +#import &lt;wtf/UnusedParam.h&gt;
&gt;  #import &lt;WebCore/HTMLMediaElement.h&gt;
&gt;  #import &lt;WebKitSystemInterface.h&gt;

The sort order is wrong now.

&gt; Source/WebCore/platform/qt/WebCoreSystemInterface.h:46
&gt;  @class NSURL;
&gt; +@class NSWindow;
&gt; +@class NSView;
&gt;  @class QTMovie;

Ditto.

&gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.h:37
&gt; +private:
&gt; +    Private* priv;
&gt; +};

&quot;Private&quot; is probably not the best class name, it doesn&apos;t tell me anything about what it does.

&gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:41
&gt; +QTKitFullScreenVideoHandler::QTKitFullScreenVideoHandler()
&gt; +    : priv (new Private)
&gt; +{
&gt; +    priv-&gt;m_fullScreenController = nil;
&gt; +}

Doesn&apos;t &quot;priv&quot; leak here? Is there any reason not to use an OwnPtr to avoid this?

&gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:51
&gt; +        // First exit Fullscreen for the old mediaElement.

Nit: does &quot;Fullscreen&quot; need to be capitalized?

&gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:55
&gt; +        // This previous call has to trigger exitFullScreen,
&gt; +        // which has to clear priv-&gt;m_fullScreenController.
&gt; +        ASSERT(!priv-&gt;m_fullScreenController);

I don&apos;t think this comment is correct - you are calling exitFullScreen directly, which clears priv-&gt;m_fullScreenController.

&gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:61
&gt; +        NSScreen* currentScreen = [NSScreen mainScreen];
&gt; +        [priv-&gt;m_fullScreenController enterFullscreen:currentScreen];

Why limit it to the main screen? Your users will not thank you!

&gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:65
&gt; +    }
&gt; +    else
&gt; +        [priv-&gt;m_fullScreenController setMediaElement:videoElement];
&gt; +}

How can you hit this else? You always call exitFullScreen() if m_fullScreenController is non-NULL above, and then ASSERT if it was not cleared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426175</commentid>
    <comment_count>5</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-23 07:58:30 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 98050 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=98050&amp;action=review
&gt; 
&gt; You use &quot;FullScreen&quot; (inner-caps) rather than &quot;Fullscreen&quot; everywhere, but just a year ago we went through and changed everything over to &quot;Fullscreen&quot; (https://bugs.webkit.org/show_bug.cgi?id=34942). I see that a fair amount of the former has crept back in, but I think it would be better to use &quot;Fullscreen&quot; whenever possible for file names and in code.

Will do.

&gt; 
&gt; &gt; Source/WebCore/platform/mac/WebVideoFullscreenHUDWindowController.mm:36
&gt; &gt;  #import &quot;FloatConversion.h&quot;
&gt; &gt;  #import &quot;WebCoreSystemInterface.h&quot;
&gt; &gt; -#import &lt;JavaScriptCore/RetainPtr.h&gt;
&gt; &gt; -#import &lt;JavaScriptCore/UnusedParam.h&gt;
&gt; &gt; +#import &lt;wtf/RetainPtr.h&gt;
&gt; &gt; +#import &lt;wtf/UnusedParam.h&gt;
&gt; &gt;  #import &lt;WebCore/HTMLMediaElement.h&gt;
&gt; &gt;  #import &lt;WebKitSystemInterface.h&gt;
&gt; 
&gt; The sort order is wrong now.

True, will fix.

&gt; 
&gt; &gt; Source/WebCore/platform/qt/WebCoreSystemInterface.h:46
&gt; &gt;  @class NSURL;
&gt; &gt; +@class NSWindow;
&gt; &gt; +@class NSView;
&gt; &gt;  @class QTMovie;
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.h:37
&gt; &gt; +private:
&gt; &gt; +    Private* priv;
&gt; &gt; +};
&gt; 
&gt; &quot;Private&quot; is probably not the best class name, it doesn&apos;t tell me anything about what it does.
&gt; 

d?

&gt; &gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:41
&gt; &gt; +QTKitFullScreenVideoHandler::QTKitFullScreenVideoHandler()
&gt; &gt; +    : priv (new Private)
&gt; &gt; +{
&gt; &gt; +    priv-&gt;m_fullScreenController = nil;
&gt; &gt; +}
&gt; 
&gt; Doesn&apos;t &quot;priv&quot; leak here? Is there any reason not to use an OwnPtr to avoid this?

Well I can, just didn&apos;t though about it.

&gt; 
&gt; &gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:51
&gt; &gt; +        // First exit Fullscreen for the old mediaElement.
&gt; 
&gt; Nit: does &quot;Fullscreen&quot; need to be capitalized?

No.

&gt; 
&gt; &gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:55
&gt; &gt; +        // This previous call has to trigger exitFullScreen,
&gt; &gt; +        // which has to clear priv-&gt;m_fullScreenController.
&gt; &gt; +        ASSERT(!priv-&gt;m_fullScreenController);
&gt; 
&gt; I don&apos;t think this comment is correct - you are calling exitFullScreen directly, which clears priv-&gt;m_fullScreenController.
&gt; 
&gt; &gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:61
&gt; &gt; +        NSScreen* currentScreen = [NSScreen mainScreen];
&gt; &gt; +        [priv-&gt;m_fullScreenController enterFullscreen:currentScreen];
&gt; 
&gt; Why limit it to the main screen? Your users will not thank you!

Is there a way to get the current screen? It seems the mainScreen behaves like it should, I have a multiple monitor setup and it always go fullscreen on the screen where the browser runs.

&gt; 
&gt; &gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:65
&gt; &gt; +    }
&gt; &gt; +    else
&gt; &gt; +        [priv-&gt;m_fullScreenController setMediaElement:videoElement];
&gt; &gt; +}
&gt; 
&gt; How can you hit this else? You always call exitFullScreen() if m_fullScreenController is non-NULL above, and then ASSERT if it was not cleared.

Ok let me remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426265</commentid>
    <comment_count>6</comment_count>
      <attachid>98365</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-23 10:22:41 -0700</bug_when>
    <thetext>Created attachment 98365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426291</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-06-23 10:44:16 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 98050 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=98050&amp;action=review
&gt; &gt; 
&gt; &gt; You use &quot;FullScreen&quot; (inner-caps) rather than &quot;Fullscreen&quot; everywhere, but just a year ago we went through and changed everything over to &quot;Fullscreen&quot; (https://bugs.webkit.org/show_bug.cgi?id=34942). I see that a fair amount of the former has crept back in, but I think it would be better to use &quot;Fullscreen&quot; whenever possible for file names and in code.
&gt; 
&gt; Will do.

The proposed Mozilla Full-Screen API has uses &quot;full-screen&quot; and &quot;FullScreen&quot;.  At the time when we fixed that bug above, it could have gone either way, and now that there&apos;s a proposed spec that standardizes on the capital-S, we should probably be consistent with that.

&gt; &gt; &gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.h:37
&gt; &gt; &gt; +private:
&gt; &gt; &gt; +    Private* priv;
&gt; &gt; &gt; +};
&gt; &gt; 
&gt; &gt; &quot;Private&quot; is probably not the best class name, it doesn&apos;t tell me anything about what it does.
&gt; &gt; 
&gt; 
&gt; d?

This is a standard Pimpl idiom, but it could probably be &quot;PrivateData&quot;.

&gt; &gt; &gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:41
&gt; &gt; &gt; Source/WebKit/qt/WebCoreSupport/QTKitFullScreenVideoHandler.mm:61
&gt; &gt; &gt; +        NSScreen* currentScreen = [NSScreen mainScreen];
&gt; &gt; &gt; +        [priv-&gt;m_fullScreenController enterFullscreen:currentScreen];
&gt; &gt; 
&gt; &gt; Why limit it to the main screen? Your users will not thank you!
&gt; 
&gt; Is there a way to get the current screen? It seems the mainScreen behaves like it should, I have a multiple monitor setup and it always go fullscreen on the screen where the browser runs.

-[NSWindow screen] will return the screen on which the window resides.  If you could get a handle on the WebView, this could be: 

NSScreen* currentScreen = [[webView window] screen];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426322</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-06-23 11:28:17 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; (From update of attachment 98050 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=98050&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; You use &quot;FullScreen&quot; (inner-caps) rather than &quot;Fullscreen&quot; everywhere, but just a year ago we went through and changed everything over to &quot;Fullscreen&quot; (https://bugs.webkit.org/show_bug.cgi?id=34942). I see that a fair amount of the former has crept back in, but I think it would be better to use &quot;Fullscreen&quot; whenever possible for file names and in code.
&gt; &gt; 
&gt; &gt; Will do.
&gt; 
&gt; The proposed Mozilla Full-Screen API has uses &quot;full-screen&quot; and &quot;FullScreen&quot;.  At the time when we fixed that bug above, it could have gone either way, and now that there&apos;s a proposed spec that standardizes on the capital-S, we should probably be consistent with that.
&gt; 

So you will file a bug about making them consistent ;-)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426326</commentid>
    <comment_count>9</comment_count>
      <attachid>98374</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-23 11:32:13 -0700</bug_when>
    <thetext>Created attachment 98374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426327</commentid>
    <comment_count>10</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-23 11:32:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; &gt; (From update of attachment 98050 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=98050&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; You use &quot;FullScreen&quot; (inner-caps) rather than &quot;Fullscreen&quot; everywhere, but just a year ago we went through and changed everything over to &quot;Fullscreen&quot; (https://bugs.webkit.org/show_bug.cgi?id=34942). I see that a fair amount of the former has crept back in, but I think it would be better to use &quot;Fullscreen&quot; whenever possible for file names and in code.
&gt; &gt; &gt; 
&gt; &gt; &gt; Will do.
&gt; &gt; 
&gt; &gt; The proposed Mozilla Full-Screen API has uses &quot;full-screen&quot; and &quot;FullScreen&quot;.  At the time when we fixed that bug above, it could have gone either way, and now that there&apos;s a proposed spec that standardizes on the capital-S, we should probably be consistent with that.
&gt; &gt; 
&gt; 
&gt; So you will file a bug about making them consistent ;-)?

At least they are consistent in the Qt part :D. My last patch put back FullScreen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426332</commentid>
    <comment_count>11</comment_count>
      <attachid>98374</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-06-23 11:48:57 -0700</bug_when>
    <thetext>Comment on attachment 98374
Patch

Attachment 98374 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/8933168</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426457</commentid>
    <comment_count>12</comment_count>
      <attachid>98374</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-23 14:19:10 -0700</bug_when>
    <thetext>Comment on attachment 98374
Patch

I&apos;ll put cq+ again the ews efl seems bogus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426488</commentid>
    <comment_count>13</comment_count>
      <attachid>98374</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-23 14:43:05 -0700</bug_when>
    <thetext>Comment on attachment 98374
Patch

Clearing flags on attachment: 98374

Committed r89617: &lt;http://trac.webkit.org/changeset/89617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426489</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-23 14:43:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444036</commentid>
    <comment_count>15</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-07-29 11:52:33 -0700</bug_when>
    <thetext>Revision r89617 cherry-picked into qtwebkit-2.2 with commit a086be9 &lt;http://gitorious.org/webkit/qtwebkit/commit/a086be9&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95347</attachid>
            <date>2011-05-30 09:28:11 -0700</date>
            <delta_ts>2011-06-21 13:31:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61728-20110530132757.patch</filename>
            <type>text/plain</type>
            <size>18904</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3NjgzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDUtMzAgIEFsZXhpcyBN
ZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBJbXBsZW1lbnQgZnVsbHNjcmVlbiBz
dXBwb3J0IG9uIE1hYyB3aXRoIHRoZSBRdWlja1RpbWUgYmFja2VuZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzI4CisKKyAgICAgICAgSW1wbGVt
ZW50IGZ1bGxzY3JlZW4gc3VwcG9ydCBmb3IgUXQgd2hlbiB1c2luZyB0aGUgUXVpY2tUaW1lIGJh
Y2tlbmQuCisgICAgICAgIFdlIG1vc3RseSB1c2Ugd2hhdCBpcyBhbHJlYWR5IGRvbmUgZm9yIHRo
ZSBNYWMgcG9ydC4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnBybzpXZSB1c2UgdGhlIG1h
YyBmaWxlcyBhbmQgdGhleSBoYXZlIDxXZWJDb3JlL3g+IHR5cGUKKyAgICAgICAgb2YgaW5jbHVk
ZXMuIFdlIG5lZWQgdG8gZ2VuZXJhdGUgdGhvc2UgaGVhZGVycy4KKwogMjAxMS0wNS0yNSAgQWxl
eGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFl1cnkgU2VtaWtoYXRza3kuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJvCShy
ZXZpc2lvbiA4NzY4MikKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnBybwkod29y
a2luZyBjb3B5KQpAQCAtMjcsNCArMjcsMTIgQEAgZGVmaW5lVGVzdChhZGRFeHRyYUNvbXBpbGVy
KSB7CiAgICAgcmV0dXJuKHRydWUpCiB9CiAKK2NvbnRhaW5zKERFRklORVMsIFVTRV9RVEtJVD0x
KSB7CisgICAgU1JDX1JPT1RfRElSID0gJCRyZXBsYWNlKFBXRCwgL1NvdXJjZS9XZWJDb3JlLCAi
IikKKyAgICBmd2hlYWRlcl9nZW5lcmF0b3IuY29tbWFuZHMgPSBwZXJsICQke1NSQ19ST09UX0RJ
Un0vU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwg
JCR7U1JDX1JPT1RfRElSfS9Tb3VyY2UvV2ViS2l0MiAuLi9pbmNsdWRlIG1hYworICAgIGZ3aGVh
ZGVyX2dlbmVyYXRvci5kZXBlbmRzICA9ICQke1NSQ19ST09UX0RJUn0vU291cmNlL1dlYktpdDIv
U2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKKyAgICBnZW5lcmF0ZWRfZmls
ZXMuZGVwZW5kcyAgICAgKz0gZndoZWFkZXJfZ2VuZXJhdG9yCisgICAgUU1BS0VfRVhUUkFfVEFS
R0VUUyAgICAgICAgICs9IGZ3aGVhZGVyX2dlbmVyYXRvcgorfQorCiBpbmNsdWRlKENvZGVHZW5l
cmF0b3JzLnByaSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3NjgzKQorKysgU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTEtMDUtMzAgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBJ
bXBsZW1lbnQgZnVsbHNjcmVlbiBzdXBwb3J0IG9uIE1hYyB3aXRoIHRoZSBRdWlja1RpbWUgYmFj
a2VuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYx
NzI4CisKKyAgICAgICAgSW1wbGVtZW50IGZ1bGxzY3JlZW4gc3VwcG9ydCBmb3IgUXQgd2hlbiB1
c2luZyB0aGUgUXVpY2tUaW1lIGJhY2tlbmQuCisgICAgICAgIFdlIG1vc3RseSB1c2Ugd2hhdCBp
cyBhbHJlYWR5IGRvbmUgZm9yIHRoZSBNYWMgcG9ydC4gSSByZW1vdmVkIHNvbWUgdW51c2VkCisg
ICAgICAgIGluY2x1ZGVzIGFuZCBhZGRlZCBzb21lIGluIG9yZGVyIHRvIGJ1aWxkIHRoZSBmaWxl
IGFsb25lLgorCisgICAgICAgICogV2ViS2l0UHJlZml4Lmg6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlk
ZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbToKKwogMjAxMS0wNS0yNyAgU3RlcGhh
bmllIExld2lzICA8c2xld2lzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLgpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViS2l0UHJlZml4LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9tYWMvV2ViS2l0UHJlZml4LmgJKHJldmlzaW9uIDg3NjgyKQorKysgU291cmNlL1dl
YktpdC9tYWMvV2ViS2l0UHJlZml4LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDggKzQ0LDYgQEAK
IAogI2ltcG9ydCA8cHRocmVhZC5oPgogCi0jaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBo
aWNzLmg+Ci0KICNpZmRlZiBfX2NwbHVzcGx1cwogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPiAvLyBu
ZWVkZWQgZm9yIGV4Y2VwdGlvbl9kZWZpbmVzLmgKQEAgLTcyLDYgKzcwLDEwIEBAIHR5cGVkZWYg
ZmxvYXQgQ0dGbG9hdDsKIAogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCisjaWYgUExBVEZP
Uk0oTUFDKQorI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgorI2VuZGlmCisK
ICNpbmNsdWRlIDxXZWJDb3JlL0VtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oPgogCiAvKiBXZWJL
aXQgaGFzIG5vIHdheSB0byBwdWxsIHNldHRpbmdzIGZyb20gV2ViQ29yZS9jb25maWcuaCBmb3Ig
bm93ICovCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCShyZXZpc2lvbiA4NzY4MikKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKKyNpbXBvcnQgIldlYktpdFByZWZpeC5oIgorCiAjaWYgRU5BQkxFKFZJ
REVPKQogCiAjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmgiCkBAIC0zMSw3
ICszMyw2IEBACiAjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVy
LmgiCiAjaW1wb3J0ICJXZWJXaW5kb3dBbmltYXRpb24uaCIKICNpbXBvcnQgPElPS2l0L3B3cl9t
Z3QvSU9QTUxpYi5oPgotI2ltcG9ydCA8T1NTZXJ2aWNlcy9Qb3dlci5oPgogI2ltcG9ydCA8UVRL
aXQvUVRLaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29u
dHJvbGxlci5tbQkocmV2aXNpb24gODc2ODIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0JKHdvcmtpbmcgY29weSkK
QEAgLTIyLDE0ICsyMiwxNCBAQAogICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2ltcG9ydCAiV2ViS2l0UHJlZml4
LmgiCisKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbkhV
RFdpbmRvd0NvbnRyb2xsZXIuaCIKIAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgi
CiAjaW1wb3J0ICJXZWJUeXBlc0ludGVybmFsLmgiCi0jaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9S
ZXRhaW5QdHIuaD4KLSNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1VudXNlZFBhcmFtLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gODc2ODMpCisrKyBTb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDExLTA1LTMw
ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW1wbGVtZW50IGZ1
bGxzY3JlZW4gc3VwcG9ydCBvbiBNYWMgd2l0aCB0aGUgUXVpY2tUaW1lIGJhY2tlbmQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTcyOAorCisgICAg
ICAgIEltcGxlbWVudCBmdWxsc2NyZWVuIHN1cHBvcnQgZm9yIFF0IHdoZW4gdXNpbmcgdGhlIFF1
aWNrVGltZSBiYWNrZW5kLgorICAgICAgICBXZSBtb3N0bHkgdXNlIHdoYXQgaXMgYWxyZWFkeSBk
b25lIGZvciB0aGUgTWFjIHBvcnQuCisKKyAgICAgICAgKiBRdFdlYktpdC5wcm86CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50UXQ6OkNocm9tZUNsaWVudFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFF0Ojp+Q2hyb21lQ2xpZW50UXQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVv
UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OkZ1bGxTY3JlZW5W
aWRlb1F0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxTY3JlZW5WaWRlb1F0Ojp+RnVsbFNjcmVl
blZpZGVvUXQpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OmVudGVyRnVs
bFNjcmVlbkZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OmV4
aXRGdWxsU2NyZWVuRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpGdWxsU2NyZWVuVmlkZW9R
dDo6cmVxdWlyZXNGdWxsU2NyZWVuRm9yVmlkZW9QbGF5YmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpGdWxsU2NyZWVuVmlkZW9RdDo6aXNWYWxpZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnVsbFNjcmVlblZpZGVvUXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxT
Y3JlZW5WaWRlb0hhbmRsZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUVRL
aXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKFFUS2l0RnVsbFNj
cmVlblZpZGVvSGFuZGxlcjo6UVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyKTogSSBoYXZlIHRv
IHVzZSBhIHByaXZhdGUgcG9pbnRlciB3aGVyZSBJIGhpZGUKKyAgICAgICAgdGhlIHBvaW50ZXIg
b2YgdGhlIG9iamVjdGl2ZSBDKysgY2xhc3MsIGJlY2F1c2UgUVRLaXRGdWxsU2NyZWVuVmlkZW9I
YW5kbGVyIGlzIHVzZWQgaW4gcmVndWxhciBjcHAgZmlsZXMuIEl0IHdvbid0IGNvbXBpbGUgb3Ro
ZXJ3aXNlLgorICAgICAgICAoUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyOjp+UVRLaXRGdWxs
U2NyZWVuVmlkZW9IYW5kbGVyKToKKyAgICAgICAgKFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxl
cjo6ZW50ZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxl
cjo6ZXhpdEZ1bGxTY3JlZW4pOgorCiAyMDExLTA1LTI4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvcXQvUXRXZWJLaXQucHJvCShyZXZpc2lvbiA4NzY4MikKKysrIFNvdXJjZS9XZWJLaXQv
cXQvUXRXZWJLaXQucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yMjAsMjUgKzIyMCwzOCBAQCBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfVklERU89MSkgewogICAgICAgICBTT1VSQ0VTICs9ICQkUFdE
L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1dpZGdldC5jcHAKICAgICB9CiAKLSAgICBj
b250YWlucyhERUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpIHwgY29udGFpbnMoTU9CSUxJVFlfQ09O
RklHLCBtdWx0aW1lZGlhKSB7CisgICAgY29udGFpbnMoREVGSU5FUywgVVNFX1FUS0lUPTEpIHwg
Y29udGFpbnMoREVGSU5FUywgVVNFX0dTVFJFQU1FUj0xKSB8IGNvbnRhaW5zKE1PQklMSVRZX0NP
TkZJRywgbXVsdGltZWRpYSkgewogICAgICAgICBIRUFERVJTICs9ICQkUFdEL1dlYkNvcmVTdXBw
b3J0L0Z1bGxTY3JlZW5WaWRlb1F0LmgKICAgICAgICAgU09VUkNFUyArPSAkJFBXRC9XZWJDb3Jl
U3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5jcHAKICAgICB9CiAKICAgICBjb250YWlucyhERUZJ
TkVTLCBVU0VfUVRLSVQ9MSkgewotICAgICAgICBJTkNMVURFUEFUSCArPSAkJFNPVVJDRV9ESVIv
V2ViQ29yZS9wbGF0Zm9ybS9xdC8KLSAgICAgICAgSU5DTFVERVBBVEggKz0gJCRTT1VSQ0VfRElS
Ly4uL1dlYktpdExpYnJhcmllcy8KKyAgICAgICAgSU5DTFVERVBBVEggKz0gJCRTT1VSQ0VfRElS
L1dlYkNvcmUvcGxhdGZvcm0vcXQvIFwKKyAgICAgICAgICAgICAgICAgICAgICAgJCRTT1VSQ0Vf
RElSLy4uL1dlYktpdExpYnJhcmllcy8gXAorICAgICAgICAgICAgICAgICAgICAgICAkJFNPVVJD
RV9ESVIvV2ViS2l0L21hYy9XZWJWaWV3LyBcCisgICAgICAgICAgICAgICAgICAgICAgICQkU09V
UkNFX0RJUi9XZWJLaXQvbWFjL01pc2MvIFwKKyAgICAgICAgICAgICAgICAgICAgICAgJCRTT1VS
Q0VfRElSL1dlYktpdC9tYWMvCiAgICAgICAgIERFRklORVMrPU5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTCi0gICAgICAgIEhFQURFUlMgKz0gJCRQV0QvV2ViQ29yZVN1
cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLmgKLSAgICAgICAgU09VUkNFUyArPSAkJFBXRC9XZWJD
b3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKworICAgICAgICBIRUFERVJTICs9ICQk
UFdEL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5oIFwKKyAgICAgICAgICAgICAg
ICAgICAkJFBXRC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIuaCBc
CisgICAgICAgICAgICAgICAgICAgJCRTT1VSQ0VfRElSL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmgKKworICAgICAgICBTT1VSQ0VTICs9ICQkUFdEL1dl
YkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbSBcCisgICAgICAgICAgICAgICAgICAg
JCRTT1VSQ0VfRElSL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyLm1tIFwKKyAgICAgICAgICAgICAgICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gXAorICAgICAgICAg
ICAgICAgICAgICQkU09VUkNFX0RJUi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViV2luZG93QW5pbWF0
aW9uLm1tIFwKKyAgICAgICAgICAgICAgICAgICAkJFBXRC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1
bGxTY3JlZW5WaWRlb0hhbmRsZXIubW0KKworICAgICAgICBMSUJTKz0gLWZyYW1ld29yayBTZWN1
cml0eSAtZnJhbWV3b3JrIElPS2l0CiAgICAgICAgICMgV2UgY2FuIGtub3cgdGhlIE1hYyBPUyB2
ZXJzaW9uIGJ5IHVzaW5nIHRoZSBEYXJ3aW4gbWFqb3IgdmVyc2lvbgogICAgICAgICBEQVJXSU5f
VkVSU0lPTiA9ICQkc3BsaXQoUU1BS0VfSE9TVC52ZXJzaW9uLCAiLiIpCiAgICAgICAgIERBUldJ
Tl9NQUpPUl9WRVJTSU9OID0gJCRmaXJzdChEQVJXSU5fVkVSU0lPTikKICAgICAgICAgZXF1YWxz
KERBUldJTl9NQUpPUl9WRVJTSU9OLCAiMTAiKSB7Ci0gICAgICAgICAgICBMSUJTKz0gJCRTT1VS
Q0VfRElSLy4uL1dlYktpdExpYnJhcmllcy9saWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VTbm93TGVv
cGFyZC5hIC1mcmFtZXdvcmsgU2VjdXJpdHkKKyAgICAgICAgICAgIExJQlMrPSAkJFNPVVJDRV9E
SVIvLi4vV2ViS2l0TGlicmFyaWVzL2xpYldlYktpdFN5c3RlbUludGVyZmFjZVNub3dMZW9wYXJk
LmEKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGVxdWFscyhEQVJXSU5fTUFKT1JfVkVS
U0lPTiwgIjkiKSB7Ci0gICAgICAgICAgICAgICAgTElCUys9ICQkU09VUkNFX0RJUi8uLi9XZWJL
aXRMaWJyYXJpZXMvbGliV2ViS2l0U3lzdGVtSW50ZXJmYWNlTGVvcGFyZC5hIC1mcmFtZXdvcmsg
U2VjdXJpdHkKKyAgICAgICAgICAgICAgICBMSUJTKz0gJCRTT1VSQ0VfRElSLy4uL1dlYktpdExp
YnJhcmllcy9saWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VMZW9wYXJkLmEKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA4NzY4MikKKysrIFNvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03Nyw3ICs3Nyw3IEBACiAjaW5jbHVkZSA8cXRvb2x0aXAuaD4KICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CiAKLSNpZiBFTkFCTEUoVklERU8pICYmIChVU0UoR1NUUkVBTUVSKSB8fCBVU0Uo
UVRfTVVMVElNRURJQSkpCisjaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwg
VVNFKFFUX01VTFRJTUVESUEpIHx8IFVTRShRVEtJVCkpCiAjaW5jbHVkZSAiRnVsbFNjcmVlblZp
ZGVvUXQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCkBAIC05NCw3ICs5NCw3IEBAIGJvb2wgQ2hyb21lQ2xpZW50UXQ6OmR1bXBWaXNpdGVk
TGlua3NDYWwKIENocm9tZUNsaWVudFF0OjpDaHJvbWVDbGllbnRRdChRV2ViUGFnZSogd2ViUGFn
ZSkKICAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQogICAgICwgbV9ldmVudExvb3AoMCkKLSNpZiBF
TkFCTEUoVklERU8pICYmIChVU0UoR1NUUkVBTUVSKSB8fCBVU0UoUVRfTVVMVElNRURJQSkpCisj
aWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwgVVNFKFFUX01VTFRJTUVESUEp
IHx8IFVTRShRVEtJVCkpCiAgICAgLCBtX2Z1bGxTY3JlZW5WaWRlbygwKQogI2VuZGlmCiB7CkBA
IC0xMDYsNyArMTA2LDcgQEAgQ2hyb21lQ2xpZW50UXQ6On5DaHJvbWVDbGllbnRRdCgpCiAgICAg
aWYgKG1fZXZlbnRMb29wKQogICAgICAgICBtX2V2ZW50TG9vcC0+ZXhpdCgpOwogCi0jaWYgRU5B
QkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwgVVNFKFFUX01VTFRJTUVESUEpKQorI2lm
IEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RSRUFNRVIpIHx8IFVTRShRVF9NVUxUSU1FRElBKSB8
fCBVU0UoUVRLSVQpKQogICAgIGRlbGV0ZSBtX2Z1bGxTY3JlZW5WaWRlbzsKICNlbmRpZgogfQpA
QCAtNjcwLDcgKzY3MCw3IEBAIEludFJlY3QgQ2hyb21lQ2xpZW50UXQ6OnZpc2libGVSZWN0Rm9y
VGkKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwg
VVNFKFFUX01VTFRJTUVESUEpKQorI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RSRUFNRVIp
IHx8IFVTRShRVF9NVUxUSU1FRElBKSB8fCBVU0UoUVRLSVQpKQogRnVsbFNjcmVlblZpZGVvUXQq
IENocm9tZUNsaWVudFF0OjpmdWxsU2NyZWVuVmlkZW8oKQogewogICAgIGlmICghbV9mdWxsU2Ny
ZWVuVmlkZW8pCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5oCShyZXZpc2lvbiA4NzY4MikKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDcgKzE2
Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpIHsg
fQogI2VuZGlmCiAgCi0jaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwgVVNF
KFFUX01VTFRJTUVESUEpKQorI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RSRUFNRVIpIHx8
IFVTRShRVF9NVUxUSU1FRElBKSB8fCBVU0UoUVRLSVQpKQogICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgZW50
ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKik7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2Ny
ZWVuRm9yTm9kZShOb2RlKik7CkBAIC0yMDgsNyArMjA4LDcgQEAgcHVibGljOgogICAgIGJvb2wg
bWVudUJhclZpc2libGU7CiAgICAgUUV2ZW50TG9vcCogbV9ldmVudExvb3A7CiAKLSNpZiBFTkFC
TEUoVklERU8pICYmIChVU0UoR1NUUkVBTUVSKSB8fCBVU0UoUVRfTVVMVElNRURJQSkpCisjaWYg
RU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwgVVNFKFFUX01VTFRJTUVESUEpIHx8
IFVTRShRVEtJVCkpCiAgICAgRnVsbFNjcmVlblZpZGVvUXQqIG1fZnVsbFNjcmVlblZpZGVvOwog
I2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVl
blZpZGVvUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCShyZXZpc2lvbiA4NzY4MikKKysrIFNvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSw2ICszNSwxMCBAQAogI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9XaW5kb3dQcml2YXRl
LmgiCiAjZW5kaWYKIAorI2lmIFVTRShRVEtJVCkKKyNpbmNsdWRlICJRVEtpdEZ1bGxTY3JlZW5W
aWRlb0hhbmRsZXIuaCIKKyNlbmRpZgorCiAjaWYgVVNFKFFUX01VTFRJTUVESUEpCiAjaW5jbHVk
ZSA8UUdyYXBoaWNzVmlkZW9JdGVtPgogI2luY2x1ZGUgPFFNZWRpYVBsYXllcj4KQEAgLTE0Nyw2
ICsxNTEsMTAgQEAgRnVsbFNjcmVlblZpZGVvUXQ6OkZ1bGxTY3JlZW5WaWRlb1F0KENocgogI2lm
IFVTRShHU1RSRUFNRVIpCiAgICAgbV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyR1N0cmVhbWVyID0g
bmV3IEdTdHJlYW1lckZ1bGxTY3JlZW5WaWRlb0hhbmRsZXI7CiAjZW5kaWYKKworI2lmIFVTRShR
VEtJVCkKKyAgICBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJRVEtpdCA9IG5ldyBRVEtpdEZ1bGxT
Y3JlZW5WaWRlb0hhbmRsZXI7CisjZW5kaWYKIH0KIAogRnVsbFNjcmVlblZpZGVvUXQ6On5GdWxs
U2NyZWVuVmlkZW9RdCgpCkBAIC0xNTcsNiArMTY1LDkgQEAgRnVsbFNjcmVlblZpZGVvUXQ6On5G
dWxsU2NyZWVuVmlkZW9RdCgpCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICBkZWxldGUgbV9GdWxs
U2NyZWVuVmlkZW9IYW5kbGVyR1N0cmVhbWVyOwogI2VuZGlmCisjaWYgVVNFKFFUS0lUKQorICAg
IGRlbGV0ZSBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJRVEtpdDsKKyNlbmRpZgogfQogCiB2b2lk
IEZ1bGxTY3JlZW5WaWRlb1F0OjplbnRlckZ1bGxTY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCkBA
IC0xODUsNiArMTk2LDEwIEBAIHZvaWQgRnVsbFNjcmVlblZpZGVvUXQ6OmVudGVyRnVsbFNjcmVl
bkYKICAgICBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJHU3RyZWFtZXItPnNldFZpZGVvRWxlbWVu
dChtX3ZpZGVvRWxlbWVudCk7CiAgICAgbV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyR1N0cmVhbWVy
LT5lbnRlckZ1bGxTY3JlZW4oKTsKICNlbmRpZgorCisjaWYgVVNFKFFUS0lUKQorICAgIG1fRnVs
bFNjcmVlblZpZGVvSGFuZGxlclFUS2l0LT5lbnRlckZ1bGxTY3JlZW4obV92aWRlb0VsZW1lbnQp
OworI2VuZGlmCiB9CiAKIHZvaWQgRnVsbFNjcmVlblZpZGVvUXQ6OmV4aXRGdWxsU2NyZWVuRm9y
Tm9kZShOb2RlKiBub2RlKQpAQCAtMjExLDYgKzIyNiwxMSBAQCB2b2lkIEZ1bGxTY3JlZW5WaWRl
b1F0OjpleGl0RnVsbFNjcmVlbkZvCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICBtX0Z1bGxTY3Jl
ZW5WaWRlb0hhbmRsZXJHU3RyZWFtZXItPmV4aXRGdWxsU2NyZWVuKCk7CiAjZW5kaWYKKworI2lm
IFVTRShRVEtJVCkKKyAgICBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJRVEtpdC0+ZXhpdEZ1bGxT
Y3JlZW4oKTsKKyNlbmRpZgorCiB9CiAKIHZvaWQgRnVsbFNjcmVlblZpZGVvUXQ6OmFib3V0VG9D
bG9zZSgpCkBAIC0yMzIsOSArMjUyLDYgQEAgYm9vbCBGdWxsU2NyZWVuVmlkZW9RdDo6cmVxdWly
ZXNGdWxsU2NyZQogewogI2lmIFVTRShRVF9NVUxUSU1FRElBKQogICAgIHJldHVybiBtX0Z1bGxT
Y3JlZW5WaWRlb0hhbmRsZXIgPyBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXItPnJlcXVpcmVzRnVs
bFNjcmVlbkZvclZpZGVvUGxheWJhY2soKSA6IGZhbHNlOwotI2VuZGlmCi0jaWYgVVNFKEdTVFJF
QU1FUikKLSAgICByZXR1cm4gZmFsc2U7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKICNlbmRp
ZgpAQCAtMjQ3LDYgKzI2NCw4IEBAIGJvb2wgRnVsbFNjcmVlblZpZGVvUXQ6OmlzVmFsaWQoKSBj
b25zdAogI2VuZGlmCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICByZXR1cm4gbV9GdWxsU2NyZWVu
VmlkZW9IYW5kbGVyR1N0cmVhbWVyOworI2VsaWYgVVNFKFFUS0lUKQorICAgIHJldHVybiBtX0Z1
bGxTY3JlZW5WaWRlb0hhbmRsZXJRVEtpdDsKICNlbHNlCiAgICAgcmV0dXJuIDA7CiAjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3Jl
ZW5WaWRlb1F0LmgJKHJldmlzaW9uIDg3NjgyKQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw5
IEBAIGNsYXNzIE5vZGU7CiAjaWYgVVNFKFFUX01VTFRJTUVESUEpCiBjbGFzcyBNZWRpYVBsYXll
clByaXZhdGVRdDsKICNlbmRpZgorI2lmIFVTRShRVEtJVCkKK2NsYXNzIFFUS2l0RnVsbFNjcmVl
blZpZGVvSGFuZGxlcjsKKyNlbmRpZgogCiAvLyBXZSBkbyBub3QgdXNlIEVOQUJMRSBvciBVU0Ug
YmVjYXVzZSBtb2MgZG9lcyBub3QgZXhwYW5kIHRoZXNlIG1hY3Jvcy4KICNpZiBkZWZpbmVkKFdU
Rl9VU0VfR1NUUkVBTUVSKSAmJiBXVEZfVVNFX0dTVFJFQU1FUgpAQCAtMTA5LDYgKzExMiw5IEBA
IHByaXZhdGU6CiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICBHU3RyZWFtZXJGdWxsU2NyZWVuVmlk
ZW9IYW5kbGVyKiBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJHU3RyZWFtZXI7CiAjZW5kaWYKKyNp
ZiBVU0UoUVRLSVQpCisgICAgUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyKiBtX0Z1bGxTY3Jl
ZW5WaWRlb0hhbmRsZXJRVEtpdDsKKyNlbmRpZgogfTsKIAogfQpJbmRleDogU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FUS2l0RnVsbFNjcmVlblZp
ZGVvSGFuZGxlci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUVRLaXRGdWxsU2NyZWVuVmlkZW9I
YW5kbGVyX2gKKyNkZWZpbmUgUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyX2gKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKKworY2xhc3MgUVRLaXRGdWxs
U2NyZWVuVmlkZW9IYW5kbGVyIHsKKyAgICBjbGFzcyBQcml2YXRlOworcHVibGljOgorICAgIFFU
S2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlcigpOworICAgIH5RVEtpdEZ1bGxTY3JlZW5WaWRlb0hh
bmRsZXIoKTsKKyAgICB2b2lkIGVudGVyRnVsbFNjcmVlbihIVE1MVmlkZW9FbGVtZW50Kik7Cisg
ICAgdm9pZCBleGl0RnVsbFNjcmVlbigpOworCitwcml2YXRlOgorICAgIFByaXZhdGUqIHByaXY7
Cit9OworCit9CisKKyNlbmRpZiAvLyBRVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXJfaApJbmRl
eDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hh
bmRsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9R
VEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlci5tbQkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJX
ZWJLaXRQcmVmaXguaCIKKworI2luY2x1ZGUgIlFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlci5o
IgorCisjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgorI2luY2x1ZGUgIldlYlZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2NsYXNz
IFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlcjo6UHJpdmF0ZSB7CitwdWJsaWMgOgorICAgIFdl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIqIG1fZnVsbFNjcmVlbkNvbnRyb2xsZXI7Cit9Owor
CitRVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXI6OlFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxl
cigpCisgICAgOiBwcml2IChuZXcgUHJpdmF0ZSkKK3sKKyAgICBwcml2LT5tX2Z1bGxTY3JlZW5D
b250cm9sbGVyID0gbmlsOworfQorCitRVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXI6On5RVEtp
dEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIoKQoreworICAgIGV4aXRGdWxsU2NyZWVuKCk7Cit9CisK
K3ZvaWQgUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyOjplbnRlckZ1bGxTY3JlZW4oSFRNTFZp
ZGVvRWxlbWVudCogdmlkZW9FbGVtZW50KQoreworICAgIGlmIChwcml2LT5tX2Z1bGxTY3JlZW5D
b250cm9sbGVyKSB7CisgICAgICAgIC8vIEZpcnN0IGV4aXQgRnVsbHNjcmVlbiBmb3IgdGhlIG9s
ZCBtZWRpYUVsZW1lbnQuCisgICAgICAgIGV4aXRGdWxsU2NyZWVuKCk7CisgICAgICAgIC8vIFRo
aXMgcHJldmlvdXMgY2FsbCBoYXMgdG8gdHJpZ2dlciBleGl0RnVsbFNjcmVlbiwKKyAgICAgICAg
Ly8gd2hpY2ggaGFzIHRvIGNsZWFyIHByaXYtPm1fZnVsbFNjcmVlbkNvbnRyb2xsZXIuCisgICAg
ICAgIEFTU0VSVCghcHJpdi0+bV9mdWxsU2NyZWVuQ29udHJvbGxlcik7CisgICAgfQorICAgIGlm
ICghcHJpdi0+bV9mdWxsU2NyZWVuQ29udHJvbGxlcikgeworICAgICAgICBwcml2LT5tX2Z1bGxT
Y3JlZW5Db250cm9sbGVyID0gW1tXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGFsbG9jXSBp
bml0XTsKKyAgICAgICAgW3ByaXYtPm1fZnVsbFNjcmVlbkNvbnRyb2xsZXIgc2V0TWVkaWFFbGVt
ZW50OnZpZGVvRWxlbWVudF07CisgICAgICAgIE5TU2NyZWVuKiBjdXJyZW50U2NyZWVuID0gW05T
U2NyZWVuIG1haW5TY3JlZW5dOworICAgICAgICBbcHJpdi0+bV9mdWxsU2NyZWVuQ29udHJvbGxl
ciBlbnRlckZ1bGxzY3JlZW46Y3VycmVudFNjcmVlbl07CisgICAgfQorICAgIGVsc2UKKyAgICAg
ICAgW3ByaXYtPm1fZnVsbFNjcmVlbkNvbnRyb2xsZXIgc2V0TWVkaWFFbGVtZW50OnZpZGVvRWxl
bWVudF07Cit9CisKK3ZvaWQgUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyOjpleGl0RnVsbFNj
cmVlbigpCit7CisgICAgW3ByaXYtPm1fZnVsbFNjcmVlbkNvbnRyb2xsZXIgZXhpdEZ1bGxzY3Jl
ZW5dOworICAgIFtwcml2LT5tX2Z1bGxTY3JlZW5Db250cm9sbGVyIHJlbGVhc2VdOworICAgIHBy
aXYtPm1fZnVsbFNjcmVlbkNvbnRyb2xsZXIgPSBuaWw7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98050</attachid>
            <date>2011-06-21 13:31:36 -0700</date>
            <delta_ts>2011-06-23 10:22:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61728-20110621173133.patch</filename>
            <type>text/plain</type>
            <size>22896</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MzY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDYtMjEgIEFsZXhpcyBN
ZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBJbXBsZW1lbnQgZnVsbHNjcmVlbiBz
dXBwb3J0IG9uIE1hYyB3aXRoIHRoZSBRdWlja1RpbWUgYmFja2VuZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzI4CisKKyAgICAgICAgSW1wbGVt
ZW50IGZ1bGxzY3JlZW4gc3VwcG9ydCBmb3IgUXQgd2hlbiB1c2luZyB0aGUgUXVpY2tUaW1lIGJh
Y2tlbmQuCisgICAgICAgIFdlIG1vc3RseSB1c2Ugd2hhdCBpcyBhbHJlYWR5IGRvbmUgZm9yIHRo
ZSBNYWMgcG9ydC4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnBybzogV2UgdXNlIHRoZSBt
YWMgZmlsZXMgYW5kIHRoZXkgaGF2ZSA8V2ViQ29yZS94PiB0eXBlCisgICAgICAgIG9mIGluY2x1
ZGVzLiBXZSBuZWVkIHRvIGdlbmVyYXRlIHRob3NlIGhlYWRlcnMuCisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ci5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93
Q29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5I
VURXaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1dlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLm1tOgorCiAyMDExLTA2LTIxICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMucHJvCShyZXZpc2lvbiA4OTM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjcsNCArMjcsMTIgQEAgZGVmaW5l
VGVzdChhZGRFeHRyYUNvbXBpbGVyKSB7CiAgICAgcmV0dXJuKHRydWUpCiB9CiAKK2NvbnRhaW5z
KERFRklORVMsIFVTRV9RVEtJVD0xKSB7CisgICAgU1JDX1JPT1RfRElSID0gJCRyZXBsYWNlKFBX
RCwgL1NvdXJjZS9XZWJDb3JlLCAiIikKKyAgICBmd2hlYWRlcl9nZW5lcmF0b3IuY29tbWFuZHMg
PSBwZXJsICQke1NSQ19ST09UX0RJUn0vU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1m
b3J3YXJkaW5nLWhlYWRlcnMucGwgJCR7U1JDX1JPT1RfRElSfS9Tb3VyY2UvV2ViS2l0MiAuLi9p
bmNsdWRlIG1hYworICAgIGZ3aGVhZGVyX2dlbmVyYXRvci5kZXBlbmRzICA9ICQke1NSQ19ST09U
X0RJUn0vU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMu
cGwKKyAgICBnZW5lcmF0ZWRfZmlsZXMuZGVwZW5kcyAgICAgKz0gZndoZWFkZXJfZ2VuZXJhdG9y
CisgICAgUU1BS0VfRVhUUkFfVEFSR0VUUyAgICAgICAgICs9IGZ3aGVhZGVyX2dlbmVyYXRvcgor
fQorCiBpbmNsdWRlKENvZGVHZW5lcmF0b3JzLnByaSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCShyZXZp
c2lvbiA4OTM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkp
CkBAIC0yOTkxLDI2ICsyOTkxLDM4IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0x
KSB7CiAgICAgfQogCiAgICAgY29udGFpbnMoREVGSU5FUywgVVNFX1FUS0lUPTEpIHsKKyAgICAg
ICAgSU5DTFVERVBBVEggKz0gXAorICAgICAgICAgICAgJCRTT1VSQ0VfRElSLy4uL1dlYktpdExp
YnJhcmllcy8KKwogICAgICAgICBIRUFERVJTICs9IFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIFwKICAgICAgICAgICAgIHBsYXRm
b3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL3F0L1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvQmxvY2tF
eGNlcHRpb25zLmggXAotICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFz
LmgKKyAgICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5oIFwKKyAgICAg
ICAgICAgIHBsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmggXAorICAg
ICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xs
ZXIuaCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLmgKKwog
ICAgICAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lu
dFJlY3RDRy5jcHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRTaXpl
Q0cuY3BwIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcCBcCisg
ICAgICAgICAgICBwbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQuY3BwCisKKyAgICAgICAgIE9CSkVDVElW
RV9TT1VSQ0VTICs9IFwKKyAgICAgICAgICAgIHBsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL0Jsb2NrRXhjZXB0aW9ucy5tbSBc
CisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMubW0gXAogICAgICAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIFwK
ICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0gXAogICAgICAgICAg
ICAgcGxhdGZvcm0vbWFjL0tVUkxNYWMubW0gXAogICAgICAgICAgICAgcGxhdGZvcm0vdGV4dC9t
YWMvU3RyaW5nTWFjLm1tIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9GbG9h
dFNpemVNYWMubW0gXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ludFJlY3RN
YWMubW0gXAotICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcCBc
Ci0gICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHAgXAotICAg
ICAgICAgICAgcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwIFwKLSAgICAgICAgICAgIHBs
YXRmb3JtL2NmL0tVUkxDRk5ldC5jcHAgXAotICAgICAgICAgICAgcGxhdGZvcm0vcXQvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5tbSBcCi0gICAgICAgICAgICBwbGF0Zm9ybS9tYWMvQmxvY2tFeGNl
cHRpb25zLm1tIFwKLSAgICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5t
bQorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIu
bW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRv
d0NvbnRyb2xsZXIubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1h
dGlvbi5tbQogCiAgICAgICAgIERFRklORVMrPU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dF
T01FVFJZX1RZUEVTCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaAkocmV2aXNpb24gODkzNjgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpZiBFTkFCTEUoVklE
RU8pCiAKKyNpbXBvcnQgPENvY29hL0NvY29hLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCShyZXZpc2lv
biA4OTM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw4IEBACiAKICNpbXBv
cnQgIldlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldl
YldpbmRvd0FuaW1hdGlvbi5oIgotI2ltcG9ydCA8SElUb29sYm94L01hY0FwcGxpY2F0aW9uLmg+
CisjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxJT0tpdC9wd3JfbWd0L0lPUE1M
aWIuaD4KLSNpbXBvcnQgPE9TU2VydmljZXMvUG93ZXIuaD4KICNpbXBvcnQgPFFUS2l0L1FUS2l0
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU29mdExpbmtpbmcuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJW
aWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xs
ZXIuaAkocmV2aXNpb24gODkzNjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2Vi
VmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSw2ICsyNSw4IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKKyNpbXBvcnQgPENvY29hL0NvY29h
Lmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBIVE1MTWVkaWFFbGVtZW50Owog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhV
RFdpbmRvd0NvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0JKHJldmlzaW9u
IDg5MzY4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVl
bkhVRFdpbmRvd0NvbnRyb2xsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDggQEAK
IAogI2ltcG9ydCAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLmgiCi0jaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9SZXRhaW5QdHIuaD4KLSNpbXBvcnQg
PEphdmFTY3JpcHRDb3JlL1VudXNlZFBhcmFtLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CisjaW1wb3J0IDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlh
RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
LmgJKHJldmlzaW9uIDg5MzY4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMyArMzgsMTkgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX05TUmVjdCBOU1JlY3Q7CiAKICNpZmRlZiBfX09CSkNfXwogQGNsYXNzIE5T
QXJyYXk7CitAY2xhc3MgTlNDb250cm9sOwogQGNsYXNzIE5TU3RyaW5nOwogQGNsYXNzIE5TVVJM
OworQGNsYXNzIE5TV2luZG93OworQGNsYXNzIE5TVmlldzsKIEBjbGFzcyBRVE1vdmllOwogQGNs
YXNzIFFUTW92aWVWaWV3OwogI2Vsc2UKIGNsYXNzIE5TQXJyYXk7CitjbGFzcyBOU0NvbnRyb2w7
CiBjbGFzcyBOU1N0cmluZzsKK2NsYXNzIE5TVmlldzsKK2NsYXNzIE5TV2luZG93OwogY2xhc3Mg
TlNVUkw7CiBjbGFzcyBRVE1vdmllOwogY2xhc3MgUVRNb3ZpZVZpZXc7CkBAIC01Myw2ICs1OSw4
IEBAIGNsYXNzIFFUTW92aWVWaWV3OwogZXh0ZXJuICJDIiB7CiAKIC8vIEluIGFscGhhYmV0aWNh
bCBvcmRlci4KK2V4dGVybiBOU1ZpZXcgKigqd2tDcmVhdGVNZWRpYVVJQmFja2dyb3VuZFZpZXcp
KHZvaWQpOworZXh0ZXJuIE5TQ29udHJvbCAqKCp3a0NyZWF0ZU1lZGlhVUlDb250cm9sKShpbnQp
OwogZXh0ZXJuIHVuc2lnbmVkICgqd2tRVEluY2x1ZGVPbmx5TW9kZXJuTWVkaWFGaWxlVHlwZXMp
KHZvaWQpOwogZXh0ZXJuIGludCAoKndrUVRNb3ZpZURhdGFSYXRlKShRVE1vdmllKik7CiBleHRl
cm4gdm9pZCAoKndrUVRNb3ZpZURpc2FibGVDb21wb25lbnQpKHVpbnQzMl90WzVdKTsKQEAgLTY4
LDYgKzc2LDggQEAgZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVWaWV3U2V0RHJhd1N5bmNocgogZXh0
ZXJuIE5TQXJyYXkgKigqd2tRVEdldFNpdGVzSW5NZWRpYURvd25sb2FkQ2FjaGUpKCk7CiBleHRl
cm4gdm9pZCAoKndrUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZUZvclNpdGUpKE5TU3RyaW5nICpz
aXRlKTsKIGV4dGVybiB2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlKSgpOworZXh0
ZXJuIHZvaWQgKCp3a1dpbmRvd1NldEFscGhhKShOU1dpbmRvdyAqLCBmbG9hdCk7CitleHRlcm4g
dm9pZCAoKndrV2luZG93U2V0U2NhbGVkRnJhbWUpKE5TV2luZG93ICosIE5TUmVjdCwgTlNSZWN0
KTsKIAogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlzaW9uIDg5MzY4KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsOCBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKK05TVmlldyAqKCp3a0NyZWF0ZU1lZGlh
VUlCYWNrZ3JvdW5kVmlldykodm9pZCk7CitOU0NvbnRyb2wgKigqd2tDcmVhdGVNZWRpYVVJQ29u
dHJvbCkoaW50KTsKIHVuc2lnbmVkICgqd2tRVEluY2x1ZGVPbmx5TW9kZXJuTWVkaWFGaWxlVHlw
ZXMpKHZvaWQpOwogaW50ICgqd2tRVE1vdmllRGF0YVJhdGUpKFFUTW92aWUqKTsKIHZvaWQgKCp3
a1FUTW92aWVEaXNhYmxlQ29tcG9uZW50KSh1aW50MzJfdFs1XSk7CkBAIC00Miw0ICs0NCw2IEBA
IHZvaWQgKCp3a1FUTW92aWVWaWV3U2V0RHJhd1N5bmNocm9ub3VzbHkKIE5TQXJyYXkgKigqd2tR
VEdldFNpdGVzSW5NZWRpYURvd25sb2FkQ2FjaGUpKCk7CiB2b2lkICgqd2tRVENsZWFyTWVkaWFE
b3dubG9hZENhY2hlRm9yU2l0ZSkoTlNTdHJpbmcgKnNpdGUpOwogdm9pZCAoKndrUVRDbGVhck1l
ZGlhRG93bmxvYWRDYWNoZSkoKTsKK3ZvaWQgKCp3a1dpbmRvd1NldEFscGhhKShOU1dpbmRvdyAq
LCBmbG9hdCk7Cit2b2lkICgqd2tXaW5kb3dTZXRTY2FsZWRGcmFtZSkoTlNXaW5kb3cgKiwgTlNS
ZWN0LCBOU1JlY3QpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gODkzNjkpCisrKyBT
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDExLTA2LTIxICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0g
SW1wbGVtZW50IGZ1bGxzY3JlZW4gc3VwcG9ydCBvbiBNYWMgd2l0aCB0aGUgUXVpY2tUaW1lIGJh
Y2tlbmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MTcyOAorCisgICAgICAgIEltcGxlbWVudCBmdWxsc2NyZWVuIHN1cHBvcnQgZm9yIFF0IHdoZW4g
dXNpbmcgdGhlIFF1aWNrVGltZSBiYWNrZW5kLgorICAgICAgICBXZSBtb3N0bHkgdXNlIHdoYXQg
aXMgYWxyZWFkeSBkb25lIGZvciB0aGUgTWFjIHBvcnQuCisKKyAgICAgICAgKiBRdFdlYktpdC5w
cm86CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OkNocm9tZUNsaWVudFF0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudFF0Ojp+Q2hyb21lQ2xpZW50UXQpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVs
bFNjcmVlblZpZGVvUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6
OkZ1bGxTY3JlZW5WaWRlb1F0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxTY3JlZW5WaWRlb1F0
Ojp+RnVsbFNjcmVlblZpZGVvUXQpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVv
UXQ6OmVudGVyRnVsbFNjcmVlbkZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbFNjcmVl
blZpZGVvUXQ6OmV4aXRGdWxsU2NyZWVuRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpGdWxs
U2NyZWVuVmlkZW9RdDo6cmVxdWlyZXNGdWxsU2NyZWVuRm9yVmlkZW9QbGF5YmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpGdWxsU2NyZWVuVmlkZW9RdDo6aXNWYWxpZCk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyLm1tOiBBZGRlZC4KKyAgICAgICAg
KFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlcjo6UVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVy
KToKKyAgICAgICAgKFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlcjo6flFUS2l0RnVsbFNjcmVl
blZpZGVvSGFuZGxlcik6CisgICAgICAgIChRVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXI6OmVu
dGVyRnVsbFNjcmVlbik6CisgICAgICAgIChRVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXI6OmV4
aXRGdWxsU2NyZWVuKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZh
Y2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisKIDIwMTEtMDYt
MjEgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFuZHJlYXMgS2xpbmcuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBy
bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybwkocmV2aXNpb24g
ODkzNjgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybwkod29ya2luZyBjb3B5KQpA
QCAtMjI1LDI1ICsyMjUsMzMgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsK
ICAgICAgICAgU09VUkNFUyArPSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9X
aWRnZXQuY3BwCiAgICAgfQogCi0gICAgY29udGFpbnMoREVGSU5FUywgVVNFX0dTVFJFQU1FUj0x
KSB8IGNvbnRhaW5zKE1PQklMSVRZX0NPTkZJRywgbXVsdGltZWRpYSkgeworICAgIGNvbnRhaW5z
KERFRklORVMsIFVTRV9RVEtJVD0xKSB8IGNvbnRhaW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9
MSkgfCBjb250YWlucyhNT0JJTElUWV9DT05GSUcsIG11bHRpbWVkaWEpIHsKICAgICAgICAgSEVB
REVSUyArPSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5oCiAgICAgICAg
IFNPVVJDRVMgKz0gJCRQV0QvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCiAg
ICAgfQogCiAgICAgY29udGFpbnMoREVGSU5FUywgVVNFX1FUS0lUPTEpIHsKLSAgICAgICAgSU5D
TFVERVBBVEggKz0gJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vcXQvCi0gICAgICAgIElO
Q0xVREVQQVRIICs9ICQkU09VUkNFX0RJUi8uLi9XZWJLaXRMaWJyYXJpZXMvCisgICAgICAgIElO
Q0xVREVQQVRIICs9ICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL3F0LyBcCisgICAgICAg
ICAgICAgICAgICAgICAgICQkU09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL21hYy8gXAorICAg
ICAgICAgICAgICAgICAgICAgICAkJFNPVVJDRV9ESVIvLi4vV2ViS2l0TGlicmFyaWVzLworCiAg
ICAgICAgIERFRklORVMrPU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVT
Ci0gICAgICAgIEhFQURFUlMgKz0gJCRQV0QvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJm
YWNlLmgKLSAgICAgICAgU09VUkNFUyArPSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KKworICAgICAgICBIRUFERVJTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L1dl
YlN5c3RlbUludGVyZmFjZS5oIFwKKyAgICAgICAgICAgICAgICAgICAkJFBXRC9XZWJDb3JlU3Vw
cG9ydC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIuaAorCisgICAgICAgIE9CSkVDVElWRV9T
T1VSQ0VTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbSBcCisg
ICAgICAgICAgICAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBvcnQvUVRLaXRGdWxsU2NyZWVuVmlk
ZW9IYW5kbGVyLm1tCisKKyAgICAgICAgTElCUys9IC1mcmFtZXdvcmsgU2VjdXJpdHkgLWZyYW1l
d29yayBJT0tpdAogICAgICAgICAjIFdlIGNhbiBrbm93IHRoZSBNYWMgT1MgdmVyc2lvbiBieSB1
c2luZyB0aGUgRGFyd2luIG1ham9yIHZlcnNpb24KICAgICAgICAgREFSV0lOX1ZFUlNJT04gPSAk
JHNwbGl0KFFNQUtFX0hPU1QudmVyc2lvbiwgIi4iKQogICAgICAgICBEQVJXSU5fTUFKT1JfVkVS
U0lPTiA9ICQkZmlyc3QoREFSV0lOX1ZFUlNJT04pCiAgICAgICAgIGVxdWFscyhEQVJXSU5fTUFK
T1JfVkVSU0lPTiwgIjEwIikgewotICAgICAgICAgICAgTElCUys9ICQkU09VUkNFX0RJUi8uLi9X
ZWJLaXRMaWJyYXJpZXMvbGliV2ViS2l0U3lzdGVtSW50ZXJmYWNlU25vd0xlb3BhcmQuYSAtZnJh
bWV3b3JrIFNlY3VyaXR5CisgICAgICAgICAgICBMSUJTKz0gJCRTT1VSQ0VfRElSLy4uL1dlYktp
dExpYnJhcmllcy9saWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VTbm93TGVvcGFyZC5hCiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBlcXVhbHMoREFSV0lOX01BSk9SX1ZFUlNJT04sICI5Iikg
ewotICAgICAgICAgICAgICAgIExJQlMrPSAkJFNPVVJDRV9ESVIvLi4vV2ViS2l0TGlicmFyaWVz
L2xpYldlYktpdFN5c3RlbUludGVyZmFjZUxlb3BhcmQuYSAtZnJhbWV3b3JrIFNlY3VyaXR5Cisg
ICAgICAgICAgICAgICAgTElCUys9ICQkU09VUkNFX0RJUi8uLi9XZWJLaXRMaWJyYXJpZXMvbGli
V2ViS2l0U3lzdGVtSW50ZXJmYWNlTGVvcGFyZC5hCiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0LmNwcAkocmV2aXNpb24gODkzNjgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyAr
NzgsNyBAQAogI2luY2x1ZGUgPHF0b29sdGlwLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgog
Ci0jaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwgVVNFKFFUX01VTFRJTUVE
SUEpKQorI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RSRUFNRVIpIHx8IFVTRShRVF9NVUxU
SU1FRElBKSB8fCBVU0UoUVRLSVQpKQogI2luY2x1ZGUgIkZ1bGxTY3JlZW5WaWRlb1F0LmgiCiAj
aW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAt
OTUsNyArOTUsNyBAQCBib29sIENocm9tZUNsaWVudFF0OjpkdW1wVmlzaXRlZExpbmtzQ2FsCiBD
aHJvbWVDbGllbnRRdDo6Q2hyb21lQ2xpZW50UXQoUVdlYlBhZ2UqIHdlYlBhZ2UpCiAgICAgOiBt
X3dlYlBhZ2Uod2ViUGFnZSkKICAgICAsIG1fZXZlbnRMb29wKDApCi0jaWYgRU5BQkxFKFZJREVP
KSAmJiAoVVNFKEdTVFJFQU1FUikgfHwgVVNFKFFUX01VTFRJTUVESUEpKQorI2lmIEVOQUJMRShW
SURFTykgJiYgKFVTRShHU1RSRUFNRVIpIHx8IFVTRShRVF9NVUxUSU1FRElBKSB8fCBVU0UoUVRL
SVQpKQogICAgICwgbV9mdWxsU2NyZWVuVmlkZW8oMCkKICNlbmRpZgogewpAQCAtMTA3LDcgKzEw
Nyw3IEBAIENocm9tZUNsaWVudFF0Ojp+Q2hyb21lQ2xpZW50UXQoKQogICAgIGlmIChtX2V2ZW50
TG9vcCkKICAgICAgICAgbV9ldmVudExvb3AtPmV4aXQoKTsKIAotI2lmIEVOQUJMRShWSURFTykg
JiYgKFVTRShHU1RSRUFNRVIpIHx8IFVTRShRVF9NVUxUSU1FRElBKSkKKyNpZiBFTkFCTEUoVklE
RU8pICYmIChVU0UoR1NUUkVBTUVSKSB8fCBVU0UoUVRfTVVMVElNRURJQSkgfHwgVVNFKFFUS0lU
KSkKICAgICBkZWxldGUgbV9mdWxsU2NyZWVuVmlkZW87CiAjZW5kaWYKIH0KQEAgLTY3MSw3ICs2
NzEsNyBAQCBJbnRSZWN0IENocm9tZUNsaWVudFF0Ojp2aXNpYmxlUmVjdEZvclRpCiB9CiAjZW5k
aWYKIAotI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RSRUFNRVIpIHx8IFVTRShRVF9NVUxU
SU1FRElBKSkKKyNpZiBFTkFCTEUoVklERU8pICYmIChVU0UoR1NUUkVBTUVSKSB8fCBVU0UoUVRf
TVVMVElNRURJQSkgfHwgVVNFKFFUS0lUKSkKIEZ1bGxTY3JlZW5WaWRlb1F0KiBDaHJvbWVDbGll
bnRRdDo6ZnVsbFNjcmVlblZpZGVvKCkKIHsKICAgICBpZiAoIW1fZnVsbFNjcmVlblZpZGVvKQpJ
bmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuaAkocmV2aXNpb24gODkzNjgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw3ICsxNjcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSB7IH0KICNlbmRpZgog
IAotI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RSRUFNRVIpIHx8IFVTRShRVF9NVUxUSU1F
RElBKSkKKyNpZiBFTkFCTEUoVklERU8pICYmIChVU0UoR1NUUkVBTUVSKSB8fCBVU0UoUVRfTVVM
VElNRURJQSkgfHwgVVNFKFFUS0lUKSkKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsc2Ny
ZWVuRm9yTm9kZShjb25zdCBOb2RlKik7CiAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVl
bkZvck5vZGUoTm9kZSopOwogICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbkZvck5vZGUo
Tm9kZSopOwpAQCAtMjA5LDcgKzIwOSw3IEBAIHB1YmxpYzoKICAgICBib29sIG1lbnVCYXJWaXNp
YmxlOwogICAgIFFFdmVudExvb3AqIG1fZXZlbnRMb29wOwogCi0jaWYgRU5BQkxFKFZJREVPKSAm
JiAoVVNFKEdTVFJFQU1FUikgfHwgVVNFKFFUX01VTFRJTUVESUEpKQorI2lmIEVOQUJMRShWSURF
TykgJiYgKFVTRShHU1RSRUFNRVIpIHx8IFVTRShRVF9NVUxUSU1FRElBKSB8fCBVU0UoUVRLSVQp
KQogICAgIEZ1bGxTY3JlZW5WaWRlb1F0KiBtX2Z1bGxTY3JlZW5WaWRlbzsKICNlbmRpZgogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3Jl
ZW5WaWRlb1F0LmNwcAkocmV2aXNpb24gODkzNjgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiAr
MzUsMTAgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVZpZGVvV2luZG93UHJpdmF0ZS5oIgogI2VuZGlm
CiAKKyNpZiBVU0UoUVRLSVQpCisjaW5jbHVkZSAiUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVy
LmgiCisjZW5kaWYKKwogI2lmIFVTRShRVF9NVUxUSU1FRElBKQogI2luY2x1ZGUgPFFHcmFwaGlj
c1ZpZGVvSXRlbT4KICNpbmNsdWRlIDxRTWVkaWFQbGF5ZXI+CkBAIC0xNDcsNiArMTUxLDEwIEBA
IEZ1bGxTY3JlZW5WaWRlb1F0OjpGdWxsU2NyZWVuVmlkZW9RdChDaHIKICNpZiBVU0UoR1NUUkVB
TUVSKQogICAgIG1fRnVsbFNjcmVlblZpZGVvSGFuZGxlckdTdHJlYW1lciA9IG5ldyBHU3RyZWFt
ZXJGdWxsU2NyZWVuVmlkZW9IYW5kbGVyOwogI2VuZGlmCisKKyNpZiBVU0UoUVRLSVQpCisgICAg
bV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyUVRLaXQgPSBuZXcgUVRLaXRGdWxsU2NyZWVuVmlkZW9I
YW5kbGVyOworI2VuZGlmCiB9CiAKIEZ1bGxTY3JlZW5WaWRlb1F0Ojp+RnVsbFNjcmVlblZpZGVv
UXQoKQpAQCAtMTU3LDYgKzE2NSw5IEBAIEZ1bGxTY3JlZW5WaWRlb1F0Ojp+RnVsbFNjcmVlblZp
ZGVvUXQoKQogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgZGVsZXRlIG1fRnVsbFNjcmVlblZpZGVv
SGFuZGxlckdTdHJlYW1lcjsKICNlbmRpZgorI2lmIFVTRShRVEtJVCkKKyAgICBkZWxldGUgbV9G
dWxsU2NyZWVuVmlkZW9IYW5kbGVyUVRLaXQ7CisjZW5kaWYKIH0KIAogdm9pZCBGdWxsU2NyZWVu
VmlkZW9RdDo6ZW50ZXJGdWxsU2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQpAQCAtMTg1LDYgKzE5
NiwxMCBAQCB2b2lkIEZ1bGxTY3JlZW5WaWRlb1F0OjplbnRlckZ1bGxTY3JlZW5GCiAgICAgbV9G
dWxsU2NyZWVuVmlkZW9IYW5kbGVyR1N0cmVhbWVyLT5zZXRWaWRlb0VsZW1lbnQobV92aWRlb0Vs
ZW1lbnQpOwogICAgIG1fRnVsbFNjcmVlblZpZGVvSGFuZGxlckdTdHJlYW1lci0+ZW50ZXJGdWxs
U2NyZWVuKCk7CiAjZW5kaWYKKworI2lmIFVTRShRVEtJVCkKKyAgICBtX0Z1bGxTY3JlZW5WaWRl
b0hhbmRsZXJRVEtpdC0+ZW50ZXJGdWxsU2NyZWVuKG1fdmlkZW9FbGVtZW50KTsKKyNlbmRpZgog
fQogCiB2b2lkIEZ1bGxTY3JlZW5WaWRlb1F0OjpleGl0RnVsbFNjcmVlbkZvck5vZGUoTm9kZSog
bm9kZSkKQEAgLTIxMSw2ICsyMjYsMTEgQEAgdm9pZCBGdWxsU2NyZWVuVmlkZW9RdDo6ZXhpdEZ1
bGxTY3JlZW5GbwogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgbV9GdWxsU2NyZWVuVmlkZW9IYW5k
bGVyR1N0cmVhbWVyLT5leGl0RnVsbFNjcmVlbigpOwogI2VuZGlmCisKKyNpZiBVU0UoUVRLSVQp
CisgICAgbV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyUVRLaXQtPmV4aXRGdWxsU2NyZWVuKCk7Cisj
ZW5kaWYKKwogfQogCiB2b2lkIEZ1bGxTY3JlZW5WaWRlb1F0OjphYm91dFRvQ2xvc2UoKQpAQCAt
MjMyLDkgKzI1Miw2IEBAIGJvb2wgRnVsbFNjcmVlblZpZGVvUXQ6OnJlcXVpcmVzRnVsbFNjcmUK
IHsKICNpZiBVU0UoUVRfTVVMVElNRURJQSkKICAgICByZXR1cm4gbV9GdWxsU2NyZWVuVmlkZW9I
YW5kbGVyID8gbV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyLT5yZXF1aXJlc0Z1bGxTY3JlZW5Gb3JW
aWRlb1BsYXliYWNrKCkgOiBmYWxzZTsKLSNlbmRpZgotI2lmIFVTRShHU1RSRUFNRVIpCi0gICAg
cmV0dXJuIGZhbHNlOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKQEAgLTI0Nyw2
ICsyNjQsOCBAQCBib29sIEZ1bGxTY3JlZW5WaWRlb1F0Ojppc1ZhbGlkKCkgY29uc3QKICNlbmRp
ZgogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgcmV0dXJuIG1fRnVsbFNjcmVlblZpZGVvSGFuZGxl
ckdTdHJlYW1lcjsKKyNlbGlmIFVTRShRVEtJVCkKKyAgICByZXR1cm4gbV9GdWxsU2NyZWVuVmlk
ZW9IYW5kbGVyUVRLaXQ7CiAjZWxzZQogICAgIHJldHVybiAwOwogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5o
CShyZXZpc2lvbiA4OTM2OCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVs
bFNjcmVlblZpZGVvUXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOSBAQCBjbGFzcyBO
b2RlOwogI2lmIFVTRShRVF9NVUxUSU1FRElBKQogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUXQ7
CiAjZW5kaWYKKyNpZiBVU0UoUVRLSVQpCitjbGFzcyBRVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRs
ZXI7CisjZW5kaWYKIAogLy8gV2UgZG8gbm90IHVzZSBFTkFCTEUgb3IgVVNFIGJlY2F1c2UgbW9j
IGRvZXMgbm90IGV4cGFuZCB0aGVzZSBtYWNyb3MuCiAjaWYgZGVmaW5lZChXVEZfVVNFX0dTVFJF
QU1FUikgJiYgV1RGX1VTRV9HU1RSRUFNRVIKQEAgLTEwOSw2ICsxMTIsOSBAQCBwcml2YXRlOgog
I2lmIFVTRShHU1RSRUFNRVIpCiAgICAgR1N0cmVhbWVyRnVsbFNjcmVlblZpZGVvSGFuZGxlciog
bV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyR1N0cmVhbWVyOwogI2VuZGlmCisjaWYgVVNFKFFUS0lU
KQorICAgIFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlciogbV9GdWxsU2NyZWVuVmlkZW9IYW5k
bGVyUVRLaXQ7CisjZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVRLaXRG
dWxsU2NyZWVuVmlkZW9IYW5kbGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICoKKyAqLworCisjaWZuZGVmIFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlcl9oCisj
ZGVmaW5lIFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlcl9oCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7CisKK2NsYXNzIFFUS2l0RnVsbFNjcmVlblZpZGVv
SGFuZGxlciB7CisgICAgY2xhc3MgUHJpdmF0ZTsKK3B1YmxpYzoKKyAgICBRVEtpdEZ1bGxTY3Jl
ZW5WaWRlb0hhbmRsZXIoKTsKKyAgICB+UVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyKCk7Cisg
ICAgdm9pZCBlbnRlckZ1bGxTY3JlZW4oSFRNTFZpZGVvRWxlbWVudCopOworICAgIHZvaWQgZXhp
dEZ1bGxTY3JlZW4oKTsKKworcHJpdmF0ZToKKyAgICBQcml2YXRlKiBwcml2OworfTsKKworfQor
CisjZW5kaWYgLy8gUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyX2gKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVRLaXRGdWxsU2Ny
ZWVuVmlkZW9IYW5kbGVyLm1tCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIubW0JKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpbmNsdWRlICJRVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIuaCIKKworI2ltcG9ydCA8Q29j
b2EvQ29jb2EuaD4KKworI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKKyNpbmNsdWRlICJX
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCitjbGFzcyBRVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXI6OlByaXZhdGUgeworcHVibGlj
IDoKKyAgICBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyKiBtX2Z1bGxTY3JlZW5Db250cm9s
bGVyOworfTsKKworUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyOjpRVEtpdEZ1bGxTY3JlZW5W
aWRlb0hhbmRsZXIoKQorICAgIDogcHJpdiAobmV3IFByaXZhdGUpCit7CisgICAgcHJpdi0+bV9m
dWxsU2NyZWVuQ29udHJvbGxlciA9IG5pbDsKK30KKworUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5k
bGVyOjp+UVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyKCkKK3sKKyAgICBleGl0RnVsbFNjcmVl
bigpOworfQorCit2b2lkIFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlcjo6ZW50ZXJGdWxsU2Ny
ZWVuKEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCkKK3sKKyAgICBpZiAocHJpdi0+bV9m
dWxsU2NyZWVuQ29udHJvbGxlcikgeworICAgICAgICAvLyBGaXJzdCBleGl0IEZ1bGxzY3JlZW4g
Zm9yIHRoZSBvbGQgbWVkaWFFbGVtZW50LgorICAgICAgICBleGl0RnVsbFNjcmVlbigpOworICAg
ICAgICAvLyBUaGlzIHByZXZpb3VzIGNhbGwgaGFzIHRvIHRyaWdnZXIgZXhpdEZ1bGxTY3JlZW4s
CisgICAgICAgIC8vIHdoaWNoIGhhcyB0byBjbGVhciBwcml2LT5tX2Z1bGxTY3JlZW5Db250cm9s
bGVyLgorICAgICAgICBBU1NFUlQoIXByaXYtPm1fZnVsbFNjcmVlbkNvbnRyb2xsZXIpOworICAg
IH0KKyAgICBpZiAoIXByaXYtPm1fZnVsbFNjcmVlbkNvbnRyb2xsZXIpIHsKKyAgICAgICAgcHJp
di0+bV9mdWxsU2NyZWVuQ29udHJvbGxlciA9IFtbV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ciBhbGxvY10gaW5pdF07CisgICAgICAgIFtwcml2LT5tX2Z1bGxTY3JlZW5Db250cm9sbGVyIHNl
dE1lZGlhRWxlbWVudDp2aWRlb0VsZW1lbnRdOworICAgICAgICBOU1NjcmVlbiogY3VycmVudFNj
cmVlbiA9IFtOU1NjcmVlbiBtYWluU2NyZWVuXTsKKyAgICAgICAgW3ByaXYtPm1fZnVsbFNjcmVl
bkNvbnRyb2xsZXIgZW50ZXJGdWxsc2NyZWVuOmN1cnJlbnRTY3JlZW5dOworICAgIH0KKyAgICBl
bHNlCisgICAgICAgIFtwcml2LT5tX2Z1bGxTY3JlZW5Db250cm9sbGVyIHNldE1lZGlhRWxlbWVu
dDp2aWRlb0VsZW1lbnRdOworfQorCit2b2lkIFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlcjo6
ZXhpdEZ1bGxTY3JlZW4oKQoreworICAgIFtwcml2LT5tX2Z1bGxTY3JlZW5Db250cm9sbGVyIGV4
aXRGdWxsc2NyZWVuXTsKKyAgICBbcHJpdi0+bV9mdWxsU2NyZWVuQ29udHJvbGxlciByZWxlYXNl
XTsKKyAgICBwcml2LT5tX2Z1bGxTY3JlZW5Db250cm9sbGVyID0gbmlsOworfQpJbmRleDogU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZh
Y2UubW0JKHJldmlzaW9uIDg5MzY4KQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDEwIEBA
IHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICBJTklUKFFUR2V0U2l0
ZXNJbk1lZGlhRG93bmxvYWRDYWNoZSk7CiAgICAgSU5JVChRVENsZWFyTWVkaWFEb3dubG9hZENh
Y2hlRm9yU2l0ZSk7CiAgICAgSU5JVChRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlKTsKKyAgICBJ
TklUKENyZWF0ZU1lZGlhVUlCYWNrZ3JvdW5kVmlldyk7CisgICAgSU5JVChDcmVhdGVNZWRpYVVJ
Q29udHJvbCk7CisgICAgSU5JVChXaW5kb3dTZXRBbHBoYSk7CisgICAgSU5JVChXaW5kb3dTZXRT
Y2FsZWRGcmFtZSk7CiAKICAgICBkaWRJbml0ID0gdHJ1ZTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98365</attachid>
            <date>2011-06-23 10:22:41 -0700</date>
            <delta_ts>2011-06-23 11:32:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61728-20110623142238.patch</filename>
            <type>text/plain</type>
            <size>22864</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5NTgxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDYtMjMgIEFsZXhpcyBN
ZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBJbXBsZW1lbnQgZnVsbHNjcmVlbiBz
dXBwb3J0IG9uIE1hYyB3aXRoIHRoZSBRdWlja1RpbWUgYmFja2VuZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzI4CisKKyAgICAgICAgSW1wbGVt
ZW50IGZ1bGxzY3JlZW4gc3VwcG9ydCBmb3IgUXQgd2hlbiB1c2luZyB0aGUgUXVpY2tUaW1lIGJh
Y2tlbmQuCisgICAgICAgIFdlIG1vc3RseSB1c2Ugd2hhdCBpcyBhbHJlYWR5IGRvbmUgZm9yIHRo
ZSBNYWMgcG9ydC4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnBybzogV2UgdXNlIHRoZSBt
YWMgZmlsZXMgYW5kIHRoZXkgaGF2ZSA8V2ViQ29yZS94PiB0eXBlCisgICAgICAgIG9mIGluY2x1
ZGVzLiBXZSBuZWVkIHRvIGdlbmVyYXRlIHRob3NlIGhlYWRlcnMuCisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ci5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93
Q29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5I
VURXaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1dlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLm1tOgorCiAyMDExLTA2LTIzICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMucHJvCShyZXZpc2lvbiA4OTU3MykKKysrIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjcsNCArMjcsMTIgQEAgZGVm
aW5lVGVzdChhZGRFeHRyYUNvbXBpbGVyKSB7CiAgICAgcmV0dXJuKHRydWUpCiB9CiAKK2NvbnRh
aW5zKERFRklORVMsIFVTRV9RVEtJVD0xKSB7CisgICAgU1JDX1JPT1RfRElSID0gJCRyZXBsYWNl
KFBXRCwgL1NvdXJjZS9XZWJDb3JlLCAiIikKKyAgICBmd2hlYWRlcl9nZW5lcmF0b3IuY29tbWFu
ZHMgPSBwZXJsICQke1NSQ19ST09UX0RJUn0vU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0
ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgJCR7U1JDX1JPT1RfRElSfS9Tb3VyY2UvV2ViS2l0MiAu
Li9pbmNsdWRlIG1hYworICAgIGZ3aGVhZGVyX2dlbmVyYXRvci5kZXBlbmRzICA9ICQke1NSQ19S
T09UX0RJUn0vU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRl
cnMucGwKKyAgICBnZW5lcmF0ZWRfZmlsZXMuZGVwZW5kcyAgICAgKz0gZndoZWFkZXJfZ2VuZXJh
dG9yCisgICAgUU1BS0VfRVhUUkFfVEFSR0VUUyAgICAgICAgICs9IGZ3aGVhZGVyX2dlbmVyYXRv
cgorfQorCiBpbmNsdWRlKENvZGVHZW5lcmF0b3JzLnByaSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCShy
ZXZpc2lvbiA4OTU3MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC0yOTk2LDI2ICsyOTk2LDM4IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURF
Tz0xKSB7CiAgICAgfQogCiAgICAgY29udGFpbnMoREVGSU5FUywgVVNFX1FUS0lUPTEpIHsKKyAg
ICAgICAgSU5DTFVERVBBVEggKz0gXAorICAgICAgICAgICAgJCRTT1VSQ0VfRElSLy4uL1dlYktp
dExpYnJhcmllcy8KKwogICAgICAgICBIRUFERVJTICs9IFwKICAgICAgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIFwKICAgICAgICAgICAgIHBs
YXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL3F0
L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvQmxv
Y2tFeGNlcHRpb25zLmggXAotICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0
cmFzLmgKKyAgICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5oIFwKKyAg
ICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmggXAor
ICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRy
b2xsZXIuaCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLmgK
KwogICAgICAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ludFJlY3RDRy5jcHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRT
aXplQ0cuY3BwIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcCBc
CisgICAgICAgICAgICBwbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQuY3BwCisKKyAgICAgICAgIE9CSkVD
VElWRV9TT1VSQ0VTICs9IFwKKyAgICAgICAgICAgIHBsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL0Jsb2NrRXhjZXB0aW9ucy5t
bSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMubW0gXAogICAg
ICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1t
IFwKICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0gXAogICAgICAg
ICAgICAgcGxhdGZvcm0vbWFjL0tVUkxNYWMubW0gXAogICAgICAgICAgICAgcGxhdGZvcm0vdGV4
dC9tYWMvU3RyaW5nTWFjLm1tIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9G
bG9hdFNpemVNYWMubW0gXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ludFJl
Y3RNYWMubW0gXAotICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNw
cCBcCi0gICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHAgXAot
ICAgICAgICAgICAgcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwIFwKLSAgICAgICAgICAg
IHBsYXRmb3JtL2NmL0tVUkxDRk5ldC5jcHAgXAotICAgICAgICAgICAgcGxhdGZvcm0vcXQvV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5tbSBcCi0gICAgICAgICAgICBwbGF0Zm9ybS9tYWMvQmxvY2tF
eGNlcHRpb25zLm1tIFwKLSAgICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJh
cy5tbQorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdp
bmRvd0NvbnRyb2xsZXIubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYldpbmRvd0Fu
aW1hdGlvbi5tbQogCiAgICAgICAgIERFRklORVMrPU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19D
R0dFT01FVFJZX1RZUEVTCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaAkocmV2aXNpb24gODk1
NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpZiBFTkFCTEUo
VklERU8pCiAKKyNpbXBvcnQgPENvY29hL0NvY29hLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCShyZXZp
c2lvbiA4OTU3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw4IEBACiAKICNp
bXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIuaCIKICNpbXBvcnQg
IldlYldpbmRvd0FuaW1hdGlvbi5oIgotI2ltcG9ydCA8SElUb29sYm94L01hY0FwcGxpY2F0aW9u
Lmg+CisjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxJT0tpdC9wd3JfbWd0L0lP
UE1MaWIuaD4KLSNpbXBvcnQgPE9TU2VydmljZXMvUG93ZXIuaD4KICNpbXBvcnQgPFFUS2l0L1FU
S2l0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU29mdExpbmtpbmcuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRy
b2xsZXIuaAkocmV2aXNpb24gODk1NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNSw2ICsyNSw4IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKKyNpbXBvcnQgPENvY29hL0Nv
Y29hLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBIVE1MTWVkaWFFbGVtZW50
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVl
bkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0JKHJldmlz
aW9uIDg5NTczKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNj
cmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDkg
QEAKIAogI2ltcG9ydCAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9SZXRhaW5QdHIuaD4KLSNpbXBv
cnQgPEphdmFTY3JpcHRDb3JlL1VudXNlZFBhcmFtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxN
ZWRpYUVsZW1lbnQuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9V
bnVzZWRQYXJhbS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5oCShyZXZpc2lvbiA4OTU3MykKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
MTQgKzM4LDIwIEBAIHR5cGVkZWYgc3RydWN0IF9OU1JlY3QgTlNSZWN0OwogCiAjaWZkZWYgX19P
QkpDX18KIEBjbGFzcyBOU0FycmF5OworQGNsYXNzIE5TQ29udHJvbDsKIEBjbGFzcyBOU1N0cmlu
ZzsKIEBjbGFzcyBOU1VSTDsKK0BjbGFzcyBOU1ZpZXc7CitAY2xhc3MgTlNXaW5kb3c7CiBAY2xh
c3MgUVRNb3ZpZTsKIEBjbGFzcyBRVE1vdmllVmlldzsKICNlbHNlCiBjbGFzcyBOU0FycmF5Owor
Y2xhc3MgTlNDb250cm9sOwogY2xhc3MgTlNTdHJpbmc7CiBjbGFzcyBOU1VSTDsKK2NsYXNzIE5T
VmlldzsKK2NsYXNzIE5TV2luZG93OwogY2xhc3MgUVRNb3ZpZTsKIGNsYXNzIFFUTW92aWVWaWV3
OwogI2VuZGlmCkBAIC01Myw2ICs1OSw4IEBAIGNsYXNzIFFUTW92aWVWaWV3OwogZXh0ZXJuICJD
IiB7CiAKIC8vIEluIGFscGhhYmV0aWNhbCBvcmRlci4KK2V4dGVybiBOU1ZpZXcgKigqd2tDcmVh
dGVNZWRpYVVJQmFja2dyb3VuZFZpZXcpKHZvaWQpOworZXh0ZXJuIE5TQ29udHJvbCAqKCp3a0Ny
ZWF0ZU1lZGlhVUlDb250cm9sKShpbnQpOwogZXh0ZXJuIHVuc2lnbmVkICgqd2tRVEluY2x1ZGVP
bmx5TW9kZXJuTWVkaWFGaWxlVHlwZXMpKHZvaWQpOwogZXh0ZXJuIGludCAoKndrUVRNb3ZpZURh
dGFSYXRlKShRVE1vdmllKik7CiBleHRlcm4gdm9pZCAoKndrUVRNb3ZpZURpc2FibGVDb21wb25l
bnQpKHVpbnQzMl90WzVdKTsKQEAgLTY4LDYgKzc2LDggQEAgZXh0ZXJuIHZvaWQgKCp3a1FUTW92
aWVWaWV3U2V0RHJhd1N5bmNocgogZXh0ZXJuIE5TQXJyYXkgKigqd2tRVEdldFNpdGVzSW5NZWRp
YURvd25sb2FkQ2FjaGUpKCk7CiBleHRlcm4gdm9pZCAoKndrUVRDbGVhck1lZGlhRG93bmxvYWRD
YWNoZUZvclNpdGUpKE5TU3RyaW5nICpzaXRlKTsKIGV4dGVybiB2b2lkICgqd2tRVENsZWFyTWVk
aWFEb3dubG9hZENhY2hlKSgpOworZXh0ZXJuIHZvaWQgKCp3a1dpbmRvd1NldEFscGhhKShOU1dp
bmRvdyAqLCBmbG9hdCk7CitleHRlcm4gdm9pZCAoKndrV2luZG93U2V0U2NhbGVkRnJhbWUpKE5T
V2luZG93ICosIE5TUmVjdCwgTlNSZWN0KTsKIAogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlzaW9u
IDg5NTczKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogI2ltcG9ydCAiV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAK
K05TVmlldyAqKCp3a0NyZWF0ZU1lZGlhVUlCYWNrZ3JvdW5kVmlldykodm9pZCk7CitOU0NvbnRy
b2wgKigqd2tDcmVhdGVNZWRpYVVJQ29udHJvbCkoaW50KTsKIHVuc2lnbmVkICgqd2tRVEluY2x1
ZGVPbmx5TW9kZXJuTWVkaWFGaWxlVHlwZXMpKHZvaWQpOwogaW50ICgqd2tRVE1vdmllRGF0YVJh
dGUpKFFUTW92aWUqKTsKIHZvaWQgKCp3a1FUTW92aWVEaXNhYmxlQ29tcG9uZW50KSh1aW50MzJf
dFs1XSk7CkBAIC00Miw0ICs0NCw2IEBAIHZvaWQgKCp3a1FUTW92aWVWaWV3U2V0RHJhd1N5bmNo
cm9ub3VzbHkKIE5TQXJyYXkgKigqd2tRVEdldFNpdGVzSW5NZWRpYURvd25sb2FkQ2FjaGUpKCk7
CiB2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlRm9yU2l0ZSkoTlNTdHJpbmcgKnNp
dGUpOwogdm9pZCAoKndrUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZSkoKTsKK3ZvaWQgKCp3a1dp
bmRvd1NldEFscGhhKShOU1dpbmRvdyAqLCBmbG9hdCk7Cit2b2lkICgqd2tXaW5kb3dTZXRTY2Fs
ZWRGcmFtZSkoTlNXaW5kb3cgKiwgTlNSZWN0LCBOU1JlY3QpOwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZwkocmV2aXNpb24gODk1ODEpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDExLTA2LTIzICBBbGV4aXMgTWVuYXJkICA8YWxl
eGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtRdF0gSW1wbGVtZW50IGZ1bGxzY3JlZW4gc3VwcG9ydCBvbiBN
YWMgd2l0aCB0aGUgUXVpY2tUaW1lIGJhY2tlbmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTcyOAorCisgICAgICAgIEltcGxlbWVudCBmdWxsc2Ny
ZWVuIHN1cHBvcnQgZm9yIFF0IHdoZW4gdXNpbmcgdGhlIFF1aWNrVGltZSBiYWNrZW5kLgorICAg
ICAgICBXZSBtb3N0bHkgdXNlIHdoYXQgaXMgYWxyZWFkeSBkb25lIGZvciB0aGUgTWFjIHBvcnQu
CisKKyAgICAgICAgKiBRdFdlYktpdC5wcm86CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OkNocm9t
ZUNsaWVudFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0Ojp+Q2hyb21lQ2xp
ZW50UXQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OkZ1bGxTY3JlZW5WaWRlb1F0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZ1bGxTY3JlZW5WaWRlb1F0Ojp+RnVsbFNjcmVlblZpZGVvUXQpOgorICAgICAgICAo
V2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OmVudGVyRnVsbFNjcmVlbkZvck5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OmV4aXRGdWxsU2NyZWVuRm9yTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpGdWxsU2NyZWVuVmlkZW9RdDo6cmVxdWlyZXNGdWxsU2NyZWVu
Rm9yVmlkZW9QbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpGdWxsU2NyZWVuVmlkZW9RdDo6
aXNWYWxpZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxzY3JlZW5WaWRlb0hhbmRsZXIuaDog
QWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUVRLaXRGdWxsc2NyZWVuVmlkZW9IYW5k
bGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKFFUS2l0RnVsbHNjcmVlblZpZGVvSGFuZGxlcjo6UVRL
aXRGdWxsc2NyZWVuVmlkZW9IYW5kbGVyKToKKyAgICAgICAgKFFUS2l0RnVsbHNjcmVlblZpZGVv
SGFuZGxlcjo6flFUS2l0RnVsbHNjcmVlblZpZGVvSGFuZGxlcik6CisgICAgICAgIChRVEtpdEZ1
bGxzY3JlZW5WaWRlb0hhbmRsZXI6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChRVEtpdEZ1
bGxzY3JlZW5WaWRlb0hhbmRsZXI6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSk6CisKIDIwMTEtMDYtMjMgIEpvZSBXaWxkICA8am9zZXBoLndpbGRAbm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IExhc3psbyBHb21ib3MuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L3F0L1F0V2ViS2l0LnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1F0
V2ViS2l0LnBybwkocmV2aXNpb24gODk1NzMpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0
LnBybwkod29ya2luZyBjb3B5KQpAQCAtMjI1LDI1ICsyMjUsMzMgQEAgY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX1ZJREVPPTEpIHsKICAgICAgICAgU09VUkNFUyArPSAkJFBXRC9XZWJDb3JlU3Vw
cG9ydC9GdWxsU2NyZWVuVmlkZW9XaWRnZXQuY3BwCiAgICAgfQogCi0gICAgY29udGFpbnMoREVG
SU5FUywgVVNFX0dTVFJFQU1FUj0xKSB8IGNvbnRhaW5zKE1PQklMSVRZX0NPTkZJRywgbXVsdGlt
ZWRpYSkgeworICAgIGNvbnRhaW5zKERFRklORVMsIFVTRV9RVEtJVD0xKSB8IGNvbnRhaW5zKERF
RklORVMsIFVTRV9HU1RSRUFNRVI9MSkgfCBjb250YWlucyhNT0JJTElUWV9DT05GSUcsIG11bHRp
bWVkaWEpIHsKICAgICAgICAgSEVBREVSUyArPSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9GdWxsU2Ny
ZWVuVmlkZW9RdC5oCiAgICAgICAgIFNPVVJDRVMgKz0gJCRQV0QvV2ViQ29yZVN1cHBvcnQvRnVs
bFNjcmVlblZpZGVvUXQuY3BwCiAgICAgfQogCiAgICAgY29udGFpbnMoREVGSU5FUywgVVNFX1FU
S0lUPTEpIHsKLSAgICAgICAgSU5DTFVERVBBVEggKz0gJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxh
dGZvcm0vcXQvCi0gICAgICAgIElOQ0xVREVQQVRIICs9ICQkU09VUkNFX0RJUi8uLi9XZWJLaXRM
aWJyYXJpZXMvCisgICAgICAgIElOQ0xVREVQQVRIICs9ICQkU09VUkNFX0RJUi9XZWJDb3JlL3Bs
YXRmb3JtL3F0LyBcCisgICAgICAgICAgICAgICAgICAgICAgICQkU09VUkNFX0RJUi9XZWJDb3Jl
L3BsYXRmb3JtL21hYy8gXAorICAgICAgICAgICAgICAgICAgICAgICAkJFNPVVJDRV9ESVIvLi4v
V2ViS2l0TGlicmFyaWVzLworCiAgICAgICAgIERFRklORVMrPU5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTCi0gICAgICAgIEhFQURFUlMgKz0gJCRQV0QvV2ViQ29yZVN1
cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLmgKLSAgICAgICAgU09VUkNFUyArPSAkJFBXRC9XZWJD
b3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKworICAgICAgICBIRUFERVJTICs9ICQk
UFdEL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5oIFwKKyAgICAgICAgICAgICAg
ICAgICAkJFBXRC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxzY3JlZW5WaWRlb0hhbmRsZXIuaAor
CisgICAgICAgIE9CSkVDVElWRV9TT1VSQ0VTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L1dlYlN5
c3RlbUludGVyZmFjZS5tbSBcCisgICAgICAgICAgICAgICAgICAgJCRQV0QvV2ViQ29yZVN1cHBv
cnQvUVRLaXRGdWxsc2NyZWVuVmlkZW9IYW5kbGVyLm1tCisKKyAgICAgICAgTElCUys9IC1mcmFt
ZXdvcmsgU2VjdXJpdHkgLWZyYW1ld29yayBJT0tpdAogICAgICAgICAjIFdlIGNhbiBrbm93IHRo
ZSBNYWMgT1MgdmVyc2lvbiBieSB1c2luZyB0aGUgRGFyd2luIG1ham9yIHZlcnNpb24KICAgICAg
ICAgREFSV0lOX1ZFUlNJT04gPSAkJHNwbGl0KFFNQUtFX0hPU1QudmVyc2lvbiwgIi4iKQogICAg
ICAgICBEQVJXSU5fTUFKT1JfVkVSU0lPTiA9ICQkZmlyc3QoREFSV0lOX1ZFUlNJT04pCiAgICAg
ICAgIGVxdWFscyhEQVJXSU5fTUFKT1JfVkVSU0lPTiwgIjEwIikgewotICAgICAgICAgICAgTElC
Uys9ICQkU09VUkNFX0RJUi8uLi9XZWJLaXRMaWJyYXJpZXMvbGliV2ViS2l0U3lzdGVtSW50ZXJm
YWNlU25vd0xlb3BhcmQuYSAtZnJhbWV3b3JrIFNlY3VyaXR5CisgICAgICAgICAgICBMSUJTKz0g
JCRTT1VSQ0VfRElSLy4uL1dlYktpdExpYnJhcmllcy9saWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VT
bm93TGVvcGFyZC5hCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBlcXVhbHMoREFSV0lO
X01BSk9SX1ZFUlNJT04sICI5IikgewotICAgICAgICAgICAgICAgIExJQlMrPSAkJFNPVVJDRV9E
SVIvLi4vV2ViS2l0TGlicmFyaWVzL2xpYldlYktpdFN5c3RlbUludGVyZmFjZUxlb3BhcmQuYSAt
ZnJhbWV3b3JrIFNlY3VyaXR5CisgICAgICAgICAgICAgICAgTElCUys9ICQkU09VUkNFX0RJUi8u
Li9XZWJLaXRMaWJyYXJpZXMvbGliV2ViS2l0U3lzdGVtSW50ZXJmYWNlTGVvcGFyZC5hCiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkocmV2aXNpb24gODk1NzMpCisr
KyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNyBAQAogI2luY2x1ZGUgPHF0b29sdGlwLmg+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogCi0jaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1F
UikgfHwgVVNFKFFUX01VTFRJTUVESUEpKQorI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RS
RUFNRVIpIHx8IFVTRShRVF9NVUxUSU1FRElBKSB8fCBVU0UoUVRLSVQpKQogI2luY2x1ZGUgIkZ1
bGxTY3JlZW5WaWRlb1F0LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgpAQCAtOTUsNyArOTUsNyBAQCBib29sIENocm9tZUNsaWVudFF0Ojpk
dW1wVmlzaXRlZExpbmtzQ2FsCiBDaHJvbWVDbGllbnRRdDo6Q2hyb21lQ2xpZW50UXQoUVdlYlBh
Z2UqIHdlYlBhZ2UpCiAgICAgOiBtX3dlYlBhZ2Uod2ViUGFnZSkKICAgICAsIG1fZXZlbnRMb29w
KDApCi0jaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwgVVNFKFFUX01VTFRJ
TUVESUEpKQorI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RSRUFNRVIpIHx8IFVTRShRVF9N
VUxUSU1FRElBKSB8fCBVU0UoUVRLSVQpKQogICAgICwgbV9mdWxsU2NyZWVuVmlkZW8oMCkKICNl
bmRpZgogewpAQCAtMTA3LDcgKzEwNyw3IEBAIENocm9tZUNsaWVudFF0Ojp+Q2hyb21lQ2xpZW50
UXQoKQogICAgIGlmIChtX2V2ZW50TG9vcCkKICAgICAgICAgbV9ldmVudExvb3AtPmV4aXQoKTsK
IAotI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RSRUFNRVIpIHx8IFVTRShRVF9NVUxUSU1F
RElBKSkKKyNpZiBFTkFCTEUoVklERU8pICYmIChVU0UoR1NUUkVBTUVSKSB8fCBVU0UoUVRfTVVM
VElNRURJQSkgfHwgVVNFKFFUS0lUKSkKICAgICBkZWxldGUgbV9mdWxsU2NyZWVuVmlkZW87CiAj
ZW5kaWYKIH0KQEAgLTY3MSw3ICs2NzEsNyBAQCBJbnRSZWN0IENocm9tZUNsaWVudFF0Ojp2aXNp
YmxlUmVjdEZvclRpCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RS
RUFNRVIpIHx8IFVTRShRVF9NVUxUSU1FRElBKSkKKyNpZiBFTkFCTEUoVklERU8pICYmIChVU0Uo
R1NUUkVBTUVSKSB8fCBVU0UoUVRfTVVMVElNRURJQSkgfHwgVVNFKFFUS0lUKSkKIEZ1bGxTY3Jl
ZW5WaWRlb1F0KiBDaHJvbWVDbGllbnRRdDo6ZnVsbFNjcmVlblZpZGVvKCkKIHsKICAgICBpZiAo
IW1fZnVsbFNjcmVlblZpZGVvKQpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkocmV2aXNpb24gODk1NzMpCisrKyBTb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTE2Nyw3ICsxNjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50
cyhib29sKSB7IH0KICNlbmRpZgogIAotI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RSRUFN
RVIpIHx8IFVTRShRVF9NVUxUSU1FRElBKSkKKyNpZiBFTkFCTEUoVklERU8pICYmIChVU0UoR1NU
UkVBTUVSKSB8fCBVU0UoUVRfTVVMVElNRURJQSkgfHwgVVNFKFFUS0lUKSkKICAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25zdCBOb2RlKik7CiAgICAgdmlydHVh
bCB2b2lkIGVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSopOwogICAgIHZpcnR1YWwgdm9pZCBl
eGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSopOwpAQCAtMjA5LDcgKzIwOSw3IEBAIHB1YmxpYzoK
ICAgICBib29sIG1lbnVCYXJWaXNpYmxlOwogICAgIFFFdmVudExvb3AqIG1fZXZlbnRMb29wOwog
Ci0jaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwgVVNFKFFUX01VTFRJTUVE
SUEpKQorI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RSRUFNRVIpIHx8IFVTRShRVF9NVUxU
SU1FRElBKSB8fCBVU0UoUVRLSVQpKQogICAgIEZ1bGxTY3JlZW5WaWRlb1F0KiBtX2Z1bGxTY3Jl
ZW5WaWRlbzsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Z1bGxTY3JlZW5WaWRlb1F0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0LmNwcAkocmV2aXNpb24gODk1NzMpCisrKyBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTAgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVZpZGVvV2lu
ZG93UHJpdmF0ZS5oIgogI2VuZGlmCiAKKyNpZiBVU0UoUVRLSVQpCisjaW5jbHVkZSAiUVRLaXRG
dWxsc2NyZWVuVmlkZW9IYW5kbGVyLmgiCisjZW5kaWYKKwogI2lmIFVTRShRVF9NVUxUSU1FRElB
KQogI2luY2x1ZGUgPFFHcmFwaGljc1ZpZGVvSXRlbT4KICNpbmNsdWRlIDxRTWVkaWFQbGF5ZXI+
CkBAIC0xNDcsNiArMTUxLDEwIEBAIEZ1bGxTY3JlZW5WaWRlb1F0OjpGdWxsU2NyZWVuVmlkZW9R
dChDaHIKICNpZiBVU0UoR1NUUkVBTUVSKQogICAgIG1fRnVsbFNjcmVlblZpZGVvSGFuZGxlckdT
dHJlYW1lciA9IG5ldyBHU3RyZWFtZXJGdWxsU2NyZWVuVmlkZW9IYW5kbGVyOwogI2VuZGlmCisK
KyNpZiBVU0UoUVRLSVQpCisgICAgbV9mdWxsc2NyZWVuVmlkZW9IYW5kbGVyUVRLaXQgPSBuZXcg
UVRLaXRGdWxsc2NyZWVuVmlkZW9IYW5kbGVyOworI2VuZGlmCiB9CiAKIEZ1bGxTY3JlZW5WaWRl
b1F0Ojp+RnVsbFNjcmVlblZpZGVvUXQoKQpAQCAtMTU3LDYgKzE2NSw5IEBAIEZ1bGxTY3JlZW5W
aWRlb1F0Ojp+RnVsbFNjcmVlblZpZGVvUXQoKQogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgZGVs
ZXRlIG1fRnVsbFNjcmVlblZpZGVvSGFuZGxlckdTdHJlYW1lcjsKICNlbmRpZgorI2lmIFVTRShR
VEtJVCkKKyAgICBkZWxldGUgbV9mdWxsc2NyZWVuVmlkZW9IYW5kbGVyUVRLaXQ7CisjZW5kaWYK
IH0KIAogdm9pZCBGdWxsU2NyZWVuVmlkZW9RdDo6ZW50ZXJGdWxsU2NyZWVuRm9yTm9kZShOb2Rl
KiBub2RlKQpAQCAtMTg1LDYgKzE5NiwxMCBAQCB2b2lkIEZ1bGxTY3JlZW5WaWRlb1F0OjplbnRl
ckZ1bGxTY3JlZW5GCiAgICAgbV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyR1N0cmVhbWVyLT5zZXRW
aWRlb0VsZW1lbnQobV92aWRlb0VsZW1lbnQpOwogICAgIG1fRnVsbFNjcmVlblZpZGVvSGFuZGxl
ckdTdHJlYW1lci0+ZW50ZXJGdWxsU2NyZWVuKCk7CiAjZW5kaWYKKworI2lmIFVTRShRVEtJVCkK
KyAgICBtX2Z1bGxzY3JlZW5WaWRlb0hhbmRsZXJRVEtpdC0+ZW50ZXJGdWxsc2NyZWVuKG1fdmlk
ZW9FbGVtZW50KTsKKyNlbmRpZgogfQogCiB2b2lkIEZ1bGxTY3JlZW5WaWRlb1F0OjpleGl0RnVs
bFNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKQEAgLTIxMSw2ICsyMjYsMTEgQEAgdm9pZCBGdWxs
U2NyZWVuVmlkZW9RdDo6ZXhpdEZ1bGxTY3JlZW5GbwogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAg
bV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyR1N0cmVhbWVyLT5leGl0RnVsbFNjcmVlbigpOwogI2Vu
ZGlmCisKKyNpZiBVU0UoUVRLSVQpCisgICAgbV9mdWxsc2NyZWVuVmlkZW9IYW5kbGVyUVRLaXQt
PmV4aXRGdWxsc2NyZWVuKCk7CisjZW5kaWYKKwogfQogCiB2b2lkIEZ1bGxTY3JlZW5WaWRlb1F0
OjphYm91dFRvQ2xvc2UoKQpAQCAtMjMyLDkgKzI1Miw2IEBAIGJvb2wgRnVsbFNjcmVlblZpZGVv
UXQ6OnJlcXVpcmVzRnVsbFNjcmUKIHsKICNpZiBVU0UoUVRfTVVMVElNRURJQSkKICAgICByZXR1
cm4gbV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyID8gbV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyLT5y
ZXF1aXJlc0Z1bGxTY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgOiBmYWxzZTsKLSNlbmRpZgotI2lm
IFVTRShHU1RSRUFNRVIpCi0gICAgcmV0dXJuIGZhbHNlOwogI2Vsc2UKICAgICByZXR1cm4gZmFs
c2U7CiAjZW5kaWYKQEAgLTI0Nyw2ICsyNjQsOCBAQCBib29sIEZ1bGxTY3JlZW5WaWRlb1F0Ojpp
c1ZhbGlkKCkgY29uc3QKICNlbmRpZgogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgcmV0dXJuIG1f
RnVsbFNjcmVlblZpZGVvSGFuZGxlckdTdHJlYW1lcjsKKyNlbGlmIFVTRShRVEtJVCkKKyAgICBy
ZXR1cm4gbV9mdWxsc2NyZWVuVmlkZW9IYW5kbGVyUVRLaXQ7CiAjZWxzZQogICAgIHJldHVybiAw
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3Jl
ZW5WaWRlb1F0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GdWxsU2NyZWVuVmlkZW9RdC5oCShyZXZpc2lvbiA4OTU3MykKKysrIFNvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzgsNiArMzgsOSBAQCBjbGFzcyBOb2RlOwogI2lmIFVTRShRVF9NVUxUSU1FRElBKQogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlUXQ7CiAjZW5kaWYKKyNpZiBVU0UoUVRLSVQpCitjbGFzcyBRVEtp
dEZ1bGxzY3JlZW5WaWRlb0hhbmRsZXI7CisjZW5kaWYKIAogLy8gV2UgZG8gbm90IHVzZSBFTkFC
TEUgb3IgVVNFIGJlY2F1c2UgbW9jIGRvZXMgbm90IGV4cGFuZCB0aGVzZSBtYWNyb3MuCiAjaWYg
ZGVmaW5lZChXVEZfVVNFX0dTVFJFQU1FUikgJiYgV1RGX1VTRV9HU1RSRUFNRVIKQEAgLTEwOSw2
ICsxMTIsOSBAQCBwcml2YXRlOgogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgR1N0cmVhbWVyRnVs
bFNjcmVlblZpZGVvSGFuZGxlciogbV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyR1N0cmVhbWVyOwog
I2VuZGlmCisjaWYgVVNFKFFUS0lUKQorICAgIFFUS2l0RnVsbHNjcmVlblZpZGVvSGFuZGxlciog
bV9mdWxsc2NyZWVuVmlkZW9IYW5kbGVyUVRLaXQ7CisjZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVRLaXRGdWxsc2NyZWVuVmlkZW9IYW5kbGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1
bGxzY3JlZW5WaWRlb0hhbmRsZXIuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvUVRLaXRGdWxsc2NyZWVuVmlkZW9IYW5kbGVyLmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFFUS2l0RnVsbHNj
cmVlblZpZGVvSGFuZGxlcl9oCisjZGVmaW5lIFFUS2l0RnVsbHNjcmVlblZpZGVvSGFuZGxlcl9o
CisKKyNpbmNsdWRlIDxPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBI
VE1MVmlkZW9FbGVtZW50OworCitjbGFzcyBRVEtpdEZ1bGxzY3JlZW5WaWRlb0hhbmRsZXIgewor
ICAgIGNsYXNzIFFUS2l0RnVsbHNjcmVlblZpZGVvSGFuZGxlclByaXZhdGU7CitwdWJsaWM6Cisg
ICAgUVRLaXRGdWxsc2NyZWVuVmlkZW9IYW5kbGVyKCk7CisgICAgflFUS2l0RnVsbHNjcmVlblZp
ZGVvSGFuZGxlcigpOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKEhUTUxWaWRlb0VsZW1lbnQq
KTsKKyAgICB2b2lkIGV4aXRGdWxsc2NyZWVuKCk7CisKK3ByaXZhdGU6CisgICAgT3duUHRyPFFU
S2l0RnVsbHNjcmVlblZpZGVvSGFuZGxlclByaXZhdGU+IHByaXY7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBRVEtpdEZ1bGxzY3JlZW5WaWRlb0hhbmRsZXJfaApJbmRleDogU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxzY3JlZW5WaWRlb0hhbmRsZXIubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxzY3JlZW5WaWRl
b0hhbmRsZXIubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1FUS2l0RnVsbHNjcmVlblZpZGVvSGFuZGxlci5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1
ZGUgIlFUS2l0RnVsbHNjcmVlblZpZGVvSGFuZGxlci5oIgorCisjaW1wb3J0IDxDb2NvYS9Db2Nv
YS5oPgorCisjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgorI2luY2x1ZGUgIldlYlZpZGVv
RnVsbHNjcmVlbkNvbnRyb2xsZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2Ns
YXNzIFFUS2l0RnVsbHNjcmVlblZpZGVvSGFuZGxlcjo6UVRLaXRGdWxsc2NyZWVuVmlkZW9IYW5k
bGVyUHJpdmF0ZSB7CitwdWJsaWMgOgorICAgIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIq
IG1fZnVsbHNjcmVlbkNvbnRyb2xsZXI7Cit9OworCitRVEtpdEZ1bGxzY3JlZW5WaWRlb0hhbmRs
ZXI6OlFUS2l0RnVsbHNjcmVlblZpZGVvSGFuZGxlcigpCisgICAgOiBwcml2IChhZG9wdFB0cihu
ZXcgUVRLaXRGdWxsc2NyZWVuVmlkZW9IYW5kbGVyUHJpdmF0ZSkpCit7CisgICAgcHJpdi0+bV9m
dWxsc2NyZWVuQ29udHJvbGxlciA9IG5pbDsKK30KKworUVRLaXRGdWxsc2NyZWVuVmlkZW9IYW5k
bGVyOjp+UVRLaXRGdWxsc2NyZWVuVmlkZW9IYW5kbGVyKCkKK3sKKyAgICBleGl0RnVsbHNjcmVl
bigpOworfQorCit2b2lkIFFUS2l0RnVsbHNjcmVlblZpZGVvSGFuZGxlcjo6ZW50ZXJGdWxsc2Ny
ZWVuKEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCkKK3sKKyAgICBpZiAocHJpdi0+bV9m
dWxsc2NyZWVuQ29udHJvbGxlcikgeworICAgICAgICAvLyBGaXJzdCBleGl0IGZ1bGxzY3JlZW4g
Zm9yIHRoZSBvbGQgbWVkaWFFbGVtZW50LgorICAgICAgICBleGl0RnVsbHNjcmVlbigpOworICAg
ICAgICBBU1NFUlQoIXByaXYtPm1fZnVsbHNjcmVlbkNvbnRyb2xsZXIpOworICAgIH0KKyAgICBp
ZiAoIXByaXYtPm1fZnVsbHNjcmVlbkNvbnRyb2xsZXIpIHsKKyAgICAgICAgcHJpdi0+bV9mdWxs
c2NyZWVuQ29udHJvbGxlciA9IFtbV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBhbGxvY10g
aW5pdF07CisgICAgICAgIFtwcml2LT5tX2Z1bGxzY3JlZW5Db250cm9sbGVyIHNldE1lZGlhRWxl
bWVudDp2aWRlb0VsZW1lbnRdOworICAgICAgICBOU1NjcmVlbiogY3VycmVudFNjcmVlbiA9IFtO
U1NjcmVlbiBtYWluU2NyZWVuXTsKKyAgICAgICAgW3ByaXYtPm1fZnVsbHNjcmVlbkNvbnRyb2xs
ZXIgZW50ZXJGdWxsc2NyZWVuOmN1cnJlbnRTY3JlZW5dOworICAgIH0KK30KKwordm9pZCBRVEtp
dEZ1bGxzY3JlZW5WaWRlb0hhbmRsZXI6OmV4aXRGdWxsc2NyZWVuKCkKK3sKKyAgICBbcHJpdi0+
bV9mdWxsc2NyZWVuQ29udHJvbGxlciBleGl0RnVsbHNjcmVlbl07CisgICAgW3ByaXYtPm1fZnVs
bHNjcmVlbkNvbnRyb2xsZXIgcmVsZWFzZV07CisgICAgcHJpdi0+bV9mdWxsc2NyZWVuQ29udHJv
bGxlciA9IG5pbDsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiA4OTU3MykKKysrIFNvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC01Nyw2ICs1NywxMCBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
KHZvaWQpCiAgICAgSU5JVChRVEdldFNpdGVzSW5NZWRpYURvd25sb2FkQ2FjaGUpOwogICAgIElO
SVQoUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZUZvclNpdGUpOwogICAgIElOSVQoUVRDbGVhck1l
ZGlhRG93bmxvYWRDYWNoZSk7CisgICAgSU5JVChDcmVhdGVNZWRpYVVJQmFja2dyb3VuZFZpZXcp
OworICAgIElOSVQoQ3JlYXRlTWVkaWFVSUNvbnRyb2wpOworICAgIElOSVQoV2luZG93U2V0QWxw
aGEpOworICAgIElOSVQoV2luZG93U2V0U2NhbGVkRnJhbWUpOwogCiAgICAgZGlkSW5pdCA9IHRy
dWU7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98374</attachid>
            <date>2011-06-23 11:32:13 -0700</date>
            <delta_ts>2011-06-23 14:43:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61728-20110623153210.patch</filename>
            <type>text/plain</type>
            <size>22947</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5NTkzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDYtMjMgIEFsZXhpcyBN
ZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBJbXBsZW1lbnQgZnVsbHNjcmVlbiBz
dXBwb3J0IG9uIE1hYyB3aXRoIHRoZSBRdWlja1RpbWUgYmFja2VuZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzI4CisKKyAgICAgICAgSW1wbGVt
ZW50IGZ1bGxzY3JlZW4gc3VwcG9ydCBmb3IgUXQgd2hlbiB1c2luZyB0aGUgUXVpY2tUaW1lIGJh
Y2tlbmQuCisgICAgICAgIFdlIG1vc3RseSB1c2Ugd2hhdCBpcyBhbHJlYWR5IGRvbmUgZm9yIHRo
ZSBNYWMgcG9ydC4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnBybzogV2UgdXNlIHRoZSBt
YWMgZmlsZXMgYW5kIHRoZXkgaGF2ZSA8V2ViQ29yZS94PiB0eXBlCisgICAgICAgIG9mIGluY2x1
ZGVzLiBXZSBuZWVkIHRvIGdlbmVyYXRlIHRob3NlIGhlYWRlcnMuCisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ci5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93
Q29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5I
VURXaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1dlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLm1tOgorCiAyMDExLTA2LTIzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5wcm8JKHJldmlzaW9uIDg5NTczKQorKysgU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw0ICsyNywxMiBAQCBkZWZpbmVU
ZXN0KGFkZEV4dHJhQ29tcGlsZXIpIHsKICAgICByZXR1cm4odHJ1ZSkKIH0KIAorY29udGFpbnMo
REVGSU5FUywgVVNFX1FUS0lUPTEpIHsKKyAgICBTUkNfUk9PVF9ESVIgPSAkJHJlcGxhY2UoUFdE
LCAvU291cmNlL1dlYkNvcmUsICIiKQorICAgIGZ3aGVhZGVyX2dlbmVyYXRvci5jb21tYW5kcyA9
IHBlcmwgJCR7U1JDX1JPT1RfRElSfS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZv
cndhcmRpbmctaGVhZGVycy5wbCAkJHtTUkNfUk9PVF9ESVJ9L1NvdXJjZS9XZWJLaXQyIC4uL2lu
Y2x1ZGUgbWFjCisgICAgZndoZWFkZXJfZ2VuZXJhdG9yLmRlcGVuZHMgID0gJCR7U1JDX1JPT1Rf
RElSfS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5w
bAorICAgIGdlbmVyYXRlZF9maWxlcy5kZXBlbmRzICAgICArPSBmd2hlYWRlcl9nZW5lcmF0b3IK
KyAgICBRTUFLRV9FWFRSQV9UQVJHRVRTICAgICAgICAgKz0gZndoZWFkZXJfZ2VuZXJhdG9yCit9
CisKIGluY2x1ZGUoQ29kZUdlbmVyYXRvcnMucHJpKQpJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlz
aW9uIDg5NTczKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkK
QEAgLTI5OTYsMjYgKzI5OTYsMzggQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEp
IHsKICAgICB9CiAKICAgICBjb250YWlucyhERUZJTkVTLCBVU0VfUVRLSVQ9MSkgeworICAgICAg
ICBJTkNMVURFUEFUSCArPSBcCisgICAgICAgICAgICAkJFNPVVJDRV9ESVIvLi4vV2ViS2l0TGli
cmFyaWVzLworCiAgICAgICAgIEhFQURFUlMgKz0gXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggXAogICAgICAgICAgICAgcGxhdGZv
cm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFzLmggXAogICAgICAgICAgICAgcGxhdGZvcm0vcXQvV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9CbG9ja0V4
Y2VwdGlvbnMuaCBcCi0gICAgICAgICAgICBwbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMu
aAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFzLmggXAorICAgICAg
ICAgICAgcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaCBcCisgICAg
ICAgICAgICBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5oIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24uaAorCiAg
ICAgICAgIFNPVVJDRVMgKz0gXAorICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50
UmVjdENHLmNwcCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNpemVD
Ry5jcHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwIFwKKyAg
ICAgICAgICAgIHBsYXRmb3JtL2NmL0tVUkxDRk5ldC5jcHAKKworICAgICAgICAgT0JKRUNUSVZF
X1NPVVJDRVMgKz0gXAorICAgICAgICAgICAgcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5tbSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvQmxvY2tFeGNlcHRpb25zLm1tIFwK
KyAgICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5tbSBcCiAgICAgICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gXAog
ICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5tbSBcCiAgICAgICAgICAg
ICBwbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbSBcCiAgICAgICAgICAgICBwbGF0Zm9ybS90ZXh0L21h
Yy9TdHJpbmdNYWMubW0gXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0
U2l6ZU1hYy5tbSBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvSW50UmVjdE1h
Yy5tbSBcCi0gICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbnRSZWN0Q0cuY3BwIFwK
LSAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcCBcCi0gICAg
ICAgICAgICBwbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAgXAotICAgICAgICAgICAgcGxh
dGZvcm0vY2YvS1VSTENGTmV0LmNwcCBcCi0gICAgICAgICAgICBwbGF0Zm9ybS9xdC9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLm1tIFwKLSAgICAgICAgICAgIHBsYXRmb3JtL21hYy9CbG9ja0V4Y2Vw
dGlvbnMubW0gXAotICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFzLm1t
CisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5t
bSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93
Q29udHJvbGxlci5tbSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0
aW9uLm1tCiAKICAgICAgICAgREVGSU5FUys9TlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VP
TUVUUllfVFlQRVMKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVv
RnVsbHNjcmVlbkNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5oCShyZXZpc2lvbiA4OTU3MykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2lmIEVOQUJMRShWSURF
TykKIAorI2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0JKHJldmlzaW9u
IDg5NTczKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDggQEAKIAogI2ltcG9y
dCAiV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV2Vi
V2luZG93QW5pbWF0aW9uLmgiCi0jaW1wb3J0IDxISVRvb2xib3gvTWFjQXBwbGljYXRpb24uaD4K
KyNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPElPS2l0L3B3cl9tZ3QvSU9QTUxp
Yi5oPgotI2ltcG9ydCA8T1NTZXJ2aWNlcy9Qb3dlci5oPgogI2ltcG9ydCA8UVRLaXQvUVRLaXQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9Tb2Z0TGlua2luZy5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5oCShyZXZpc2lvbiA4OTU3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJW
aWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDYgKzI1LDggQEAKIAogI2lmIEVOQUJMRShWSURFTykKIAorI2ltcG9ydCA8Q29jb2EvQ29jb2Eu
aD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVE
V2luZG93Q29udHJvbGxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQkocmV2aXNpb24g
ODk1NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVu
SFVEV2luZG93Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMzAsOSArMzAsOSBAQAog
CiAjaW1wb3J0ICJGbG9hdENvbnZlcnNpb24uaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UuaCIKLSNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1JldGFpblB0ci5oPgotI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvVW51c2VkUGFyYW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlh
RWxlbWVudC5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1VudXNl
ZFBhcmFtLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgJKHJldmlzaW9uIDg5NTczKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxNCAr
MzgsMjAgQEAgdHlwZWRlZiBzdHJ1Y3QgX05TUmVjdCBOU1JlY3Q7CiAKICNpZmRlZiBfX09CSkNf
XwogQGNsYXNzIE5TQXJyYXk7CitAY2xhc3MgTlNDb250cm9sOwogQGNsYXNzIE5TU3RyaW5nOwog
QGNsYXNzIE5TVVJMOworQGNsYXNzIE5TVmlldzsKK0BjbGFzcyBOU1dpbmRvdzsKIEBjbGFzcyBR
VE1vdmllOwogQGNsYXNzIFFUTW92aWVWaWV3OwogI2Vsc2UKIGNsYXNzIE5TQXJyYXk7CitjbGFz
cyBOU0NvbnRyb2w7CiBjbGFzcyBOU1N0cmluZzsKIGNsYXNzIE5TVVJMOworY2xhc3MgTlNWaWV3
OworY2xhc3MgTlNXaW5kb3c7CiBjbGFzcyBRVE1vdmllOwogY2xhc3MgUVRNb3ZpZVZpZXc7CiAj
ZW5kaWYKQEAgLTUzLDYgKzU5LDggQEAgY2xhc3MgUVRNb3ZpZVZpZXc7CiBleHRlcm4gIkMiIHsK
IAogLy8gSW4gYWxwaGFiZXRpY2FsIG9yZGVyLgorZXh0ZXJuIE5TVmlldyAqKCp3a0NyZWF0ZU1l
ZGlhVUlCYWNrZ3JvdW5kVmlldykodm9pZCk7CitleHRlcm4gTlNDb250cm9sICooKndrQ3JlYXRl
TWVkaWFVSUNvbnRyb2wpKGludCk7CiBleHRlcm4gdW5zaWduZWQgKCp3a1FUSW5jbHVkZU9ubHlN
b2Rlcm5NZWRpYUZpbGVUeXBlcykodm9pZCk7CiBleHRlcm4gaW50ICgqd2tRVE1vdmllRGF0YVJh
dGUpKFFUTW92aWUqKTsKIGV4dGVybiB2b2lkICgqd2tRVE1vdmllRGlzYWJsZUNvbXBvbmVudCko
dWludDMyX3RbNV0pOwpAQCAtNjgsNiArNzYsOCBAQCBleHRlcm4gdm9pZCAoKndrUVRNb3ZpZVZp
ZXdTZXREcmF3U3luY2hyCiBleHRlcm4gTlNBcnJheSAqKCp3a1FUR2V0U2l0ZXNJbk1lZGlhRG93
bmxvYWRDYWNoZSkoKTsKIGV4dGVybiB2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hl
Rm9yU2l0ZSkoTlNTdHJpbmcgKnNpdGUpOwogZXh0ZXJuIHZvaWQgKCp3a1FUQ2xlYXJNZWRpYURv
d25sb2FkQ2FjaGUpKCk7CitleHRlcm4gdm9pZCAoKndrV2luZG93U2V0QWxwaGEpKE5TV2luZG93
ICosIGZsb2F0KTsKK2V4dGVybiB2b2lkICgqd2tXaW5kb3dTZXRTY2FsZWRGcmFtZSkoTlNXaW5k
b3cgKiwgTlNSZWN0LCBOU1JlY3QpOwogCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQkocmV2aXNpb24gODk1
NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw4IEBACiAjaW1wb3J0ICJXZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAorTlNW
aWV3ICooKndrQ3JlYXRlTWVkaWFVSUJhY2tncm91bmRWaWV3KSh2b2lkKTsKK05TQ29udHJvbCAq
KCp3a0NyZWF0ZU1lZGlhVUlDb250cm9sKShpbnQpOwogdW5zaWduZWQgKCp3a1FUSW5jbHVkZU9u
bHlNb2Rlcm5NZWRpYUZpbGVUeXBlcykodm9pZCk7CiBpbnQgKCp3a1FUTW92aWVEYXRhUmF0ZSko
UVRNb3ZpZSopOwogdm9pZCAoKndrUVRNb3ZpZURpc2FibGVDb21wb25lbnQpKHVpbnQzMl90WzVd
KTsKQEAgLTQyLDQgKzQ0LDYgQEAgdm9pZCAoKndrUVRNb3ZpZVZpZXdTZXREcmF3U3luY2hyb25v
dXNseQogTlNBcnJheSAqKCp3a1FUR2V0U2l0ZXNJbk1lZGlhRG93bmxvYWRDYWNoZSkoKTsKIHZv
aWQgKCp3a1FUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRlKShOU1N0cmluZyAqc2l0ZSk7
CiB2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlKSgpOwordm9pZCAoKndrV2luZG93
U2V0QWxwaGEpKE5TV2luZG93ICosIGZsb2F0KTsKK3ZvaWQgKCp3a1dpbmRvd1NldFNjYWxlZEZy
YW1lKShOU1dpbmRvdyAqLCBOU1JlY3QsIE5TUmVjdCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA4OTU5MykKKysrIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDYtMjMgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMu
bWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW1F0XSBJbXBsZW1lbnQgZnVsbHNjcmVlbiBzdXBwb3J0IG9uIE1hYyB3
aXRoIHRoZSBRdWlja1RpbWUgYmFja2VuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYxNzI4CisKKyAgICAgICAgSW1wbGVtZW50IGZ1bGxzY3JlZW4g
c3VwcG9ydCBmb3IgUXQgd2hlbiB1c2luZyB0aGUgUXVpY2tUaW1lIGJhY2tlbmQuCisgICAgICAg
IFdlIG1vc3RseSB1c2Ugd2hhdCBpcyBhbHJlYWR5IGRvbmUgZm9yIHRoZSBNYWMgcG9ydC4KKwor
ICAgICAgICAqIFF0V2ViS2l0LnBybzoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6Q2hyb21lQ2xp
ZW50UXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6On5DaHJvbWVDbGllbnRR
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGdWxsU2NyZWVuVmlkZW9RdDo6RnVsbFNjcmVlblZpZGVvUXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnVsbFNjcmVlblZpZGVvUXQ6On5GdWxsU2NyZWVuVmlkZW9RdCk6CisgICAgICAgIChXZWJD
b3JlOjpGdWxsU2NyZWVuVmlkZW9RdDo6ZW50ZXJGdWxsU2NyZWVuRm9yTm9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpGdWxsU2NyZWVuVmlkZW9RdDo6ZXhpdEZ1bGxTY3JlZW5Gb3JOb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZ1bGxTY3JlZW5WaWRlb1F0OjpyZXF1aXJlc0Z1bGxTY3JlZW5Gb3JW
aWRlb1BsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxTY3JlZW5WaWRlb1F0Ojppc1Zh
bGlkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1FUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlci5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIu
bW06IEFkZGVkLgorICAgICAgICAoUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyOjpRVEtpdEZ1
bGxTY3JlZW5WaWRlb0hhbmRsZXIpOgorICAgICAgICAoUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5k
bGVyOjp+UVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyKToKKyAgICAgICAgKFFUS2l0RnVsbFNj
cmVlblZpZGVvSGFuZGxlcjo6ZW50ZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKFFUS2l0RnVsbFNj
cmVlblZpZGVvSGFuZGxlcjo6ZXhpdEZ1bGxTY3JlZW4pOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlKToKKwogMjAxMS0wNi0yMyAgWWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvcXQvUXRXZWJLaXQucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvUXRX
ZWJLaXQucHJvCShyZXZpc2lvbiA4OTU3MykKKysrIFNvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQu
cHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yMjUsMjUgKzIyNSwzMyBAQCBjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfVklERU89MSkgewogICAgICAgICBTT1VSQ0VTICs9ICQkUFdEL1dlYkNvcmVTdXBw
b3J0L0Z1bGxTY3JlZW5WaWRlb1dpZGdldC5jcHAKICAgICB9CiAKLSAgICBjb250YWlucyhERUZJ
TkVTLCBVU0VfR1NUUkVBTUVSPTEpIHwgY29udGFpbnMoTU9CSUxJVFlfQ09ORklHLCBtdWx0aW1l
ZGlhKSB7CisgICAgY29udGFpbnMoREVGSU5FUywgVVNFX1FUS0lUPTEpIHwgY29udGFpbnMoREVG
SU5FUywgVVNFX0dTVFJFQU1FUj0xKSB8IGNvbnRhaW5zKE1PQklMSVRZX0NPTkZJRywgbXVsdGlt
ZWRpYSkgewogICAgICAgICBIRUFERVJTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3Jl
ZW5WaWRlb1F0LmgKICAgICAgICAgU09VUkNFUyArPSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9GdWxs
U2NyZWVuVmlkZW9RdC5jcHAKICAgICB9CiAKICAgICBjb250YWlucyhERUZJTkVTLCBVU0VfUVRL
SVQ9MSkgewotICAgICAgICBJTkNMVURFUEFUSCArPSAkJFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0
Zm9ybS9xdC8KLSAgICAgICAgSU5DTFVERVBBVEggKz0gJCRTT1VSQ0VfRElSLy4uL1dlYktpdExp
YnJhcmllcy8KKyAgICAgICAgSU5DTFVERVBBVEggKz0gJCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxh
dGZvcm0vcXQvIFwKKyAgICAgICAgICAgICAgICAgICAgICAgJCRTT1VSQ0VfRElSL1dlYkNvcmUv
cGxhdGZvcm0vbWFjLyBcCisgICAgICAgICAgICAgICAgICAgICAgICQkU09VUkNFX0RJUi8uLi9X
ZWJLaXRMaWJyYXJpZXMvCisKICAgICAgICAgREVGSU5FUys9TlNHRU9NRVRSWV9UWVBFU19TQU1F
X0FTX0NHR0VPTUVUUllfVFlQRVMKLSAgICAgICAgSEVBREVSUyArPSAkJFBXRC9XZWJDb3JlU3Vw
cG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UuaAotICAgICAgICBTT1VSQ0VTICs9ICQkUFdEL1dlYkNv
cmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQorCisgICAgICAgIEhFQURFUlMgKz0gJCRQ
V0QvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLmggXAorICAgICAgICAgICAgICAg
ICAgICQkUFdEL1dlYkNvcmVTdXBwb3J0L1FUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlci5oCisK
KyAgICAgICAgT0JKRUNUSVZFX1NPVVJDRVMgKz0gJCRQV0QvV2ViQ29yZVN1cHBvcnQvV2ViU3lz
dGVtSW50ZXJmYWNlLm1tIFwKKyAgICAgICAgICAgICAgICAgICAkJFBXRC9XZWJDb3JlU3VwcG9y
dC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIubW0KKworICAgICAgICBMSUJTKz0gLWZyYW1l
d29yayBTZWN1cml0eSAtZnJhbWV3b3JrIElPS2l0CiAgICAgICAgICMgV2UgY2FuIGtub3cgdGhl
IE1hYyBPUyB2ZXJzaW9uIGJ5IHVzaW5nIHRoZSBEYXJ3aW4gbWFqb3IgdmVyc2lvbgogICAgICAg
ICBEQVJXSU5fVkVSU0lPTiA9ICQkc3BsaXQoUU1BS0VfSE9TVC52ZXJzaW9uLCAiLiIpCiAgICAg
ICAgIERBUldJTl9NQUpPUl9WRVJTSU9OID0gJCRmaXJzdChEQVJXSU5fVkVSU0lPTikKICAgICAg
ICAgZXF1YWxzKERBUldJTl9NQUpPUl9WRVJTSU9OLCAiMTAiKSB7Ci0gICAgICAgICAgICBMSUJT
Kz0gJCRTT1VSQ0VfRElSLy4uL1dlYktpdExpYnJhcmllcy9saWJXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2VTbm93TGVvcGFyZC5hIC1mcmFtZXdvcmsgU2VjdXJpdHkKKyAgICAgICAgICAgIExJQlMrPSAk
JFNPVVJDRV9ESVIvLi4vV2ViS2l0TGlicmFyaWVzL2xpYldlYktpdFN5c3RlbUludGVyZmFjZVNu
b3dMZW9wYXJkLmEKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGVxdWFscyhEQVJXSU5f
TUFKT1JfVkVSU0lPTiwgIjkiKSB7Ci0gICAgICAgICAgICAgICAgTElCUys9ICQkU09VUkNFX0RJ
Ui8uLi9XZWJLaXRMaWJyYXJpZXMvbGliV2ViS2l0U3lzdGVtSW50ZXJmYWNlTGVvcGFyZC5hIC1m
cmFtZXdvcmsgU2VjdXJpdHkKKyAgICAgICAgICAgICAgICBMSUJTKz0gJCRTT1VSQ0VfRElSLy4u
L1dlYktpdExpYnJhcmllcy9saWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VMZW9wYXJkLmEKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA4OTU3MykKKysr
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03OCw3ICs3OCw3IEBACiAjaW5jbHVkZSA8cXRvb2x0aXAuaD4KICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAKLSNpZiBFTkFCTEUoVklERU8pICYmIChVU0UoR1NUUkVBTUVS
KSB8fCBVU0UoUVRfTVVMVElNRURJQSkpCisjaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJF
QU1FUikgfHwgVVNFKFFUX01VTFRJTUVESUEpIHx8IFVTRShRVEtJVCkpCiAjaW5jbHVkZSAiRnVs
bFNjcmVlblZpZGVvUXQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCkBAIC05NSw3ICs5NSw3IEBAIGJvb2wgQ2hyb21lQ2xpZW50UXQ6OmR1
bXBWaXNpdGVkTGlua3NDYWwKIENocm9tZUNsaWVudFF0OjpDaHJvbWVDbGllbnRRdChRV2ViUGFn
ZSogd2ViUGFnZSkKICAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQogICAgICwgbV9ldmVudExvb3Ao
MCkKLSNpZiBFTkFCTEUoVklERU8pICYmIChVU0UoR1NUUkVBTUVSKSB8fCBVU0UoUVRfTVVMVElN
RURJQSkpCisjaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwgVVNFKFFUX01V
TFRJTUVESUEpIHx8IFVTRShRVEtJVCkpCiAgICAgLCBtX2Z1bGxTY3JlZW5WaWRlbygwKQogI2Vu
ZGlmCiB7CkBAIC0xMDcsNyArMTA3LDcgQEAgQ2hyb21lQ2xpZW50UXQ6On5DaHJvbWVDbGllbnRR
dCgpCiAgICAgaWYgKG1fZXZlbnRMb29wKQogICAgICAgICBtX2V2ZW50TG9vcC0+ZXhpdCgpOwog
Ci0jaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwgVVNFKFFUX01VTFRJTUVE
SUEpKQorI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RSRUFNRVIpIHx8IFVTRShRVF9NVUxU
SU1FRElBKSB8fCBVU0UoUVRLSVQpKQogICAgIGRlbGV0ZSBtX2Z1bGxTY3JlZW5WaWRlbzsKICNl
bmRpZgogfQpAQCAtNjcxLDcgKzY3MSw3IEBAIEludFJlY3QgQ2hyb21lQ2xpZW50UXQ6OnZpc2li
bGVSZWN0Rm9yVGkKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJF
QU1FUikgfHwgVVNFKFFUX01VTFRJTUVESUEpKQorI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShH
U1RSRUFNRVIpIHx8IFVTRShRVF9NVUxUSU1FRElBKSB8fCBVU0UoUVRLSVQpKQogRnVsbFNjcmVl
blZpZGVvUXQqIENocm9tZUNsaWVudFF0OjpmdWxsU2NyZWVuVmlkZW8oKQogewogICAgIGlmICgh
bV9mdWxsU2NyZWVuVmlkZW8pCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCShyZXZpc2lvbiA4OTU3MykKKysrIFNvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAt
MTY3LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRz
KGJvb2wpIHsgfQogI2VuZGlmCiAgCi0jaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1F
UikgfHwgVVNFKFFUX01VTFRJTUVESUEpKQorI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShHU1RS
RUFNRVIpIHx8IFVTRShRVF9NVUxUSU1FRElBKSB8fCBVU0UoUVRLSVQpKQogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUqKTsKICAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKik7CiAgICAgdmlydHVhbCB2b2lkIGV4
aXRGdWxsc2NyZWVuRm9yTm9kZShOb2RlKik7CkBAIC0yMDksNyArMjA5LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgbWVudUJhclZpc2libGU7CiAgICAgUUV2ZW50TG9vcCogbV9ldmVudExvb3A7CiAK
LSNpZiBFTkFCTEUoVklERU8pICYmIChVU0UoR1NUUkVBTUVSKSB8fCBVU0UoUVRfTVVMVElNRURJ
QSkpCisjaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEdTVFJFQU1FUikgfHwgVVNFKFFUX01VTFRJ
TUVESUEpIHx8IFVTRShRVEtJVCkpCiAgICAgRnVsbFNjcmVlblZpZGVvUXQqIG1fZnVsbFNjcmVl
blZpZGVvOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RnVsbFNjcmVlblZpZGVvUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCShyZXZpc2lvbiA4OTU3MykKKysrIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw2ICszNSwxMCBAQAogI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9XaW5k
b3dQcml2YXRlLmgiCiAjZW5kaWYKIAorI2lmIFVTRShRVEtJVCkKKyNpbmNsdWRlICJRVEtpdEZ1
bGxTY3JlZW5WaWRlb0hhbmRsZXIuaCIKKyNlbmRpZgorCiAjaWYgVVNFKFFUX01VTFRJTUVESUEp
CiAjaW5jbHVkZSA8UUdyYXBoaWNzVmlkZW9JdGVtPgogI2luY2x1ZGUgPFFNZWRpYVBsYXllcj4K
QEAgLTE0Nyw2ICsxNTEsMTAgQEAgRnVsbFNjcmVlblZpZGVvUXQ6OkZ1bGxTY3JlZW5WaWRlb1F0
KENocgogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgbV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyR1N0
cmVhbWVyID0gbmV3IEdTdHJlYW1lckZ1bGxTY3JlZW5WaWRlb0hhbmRsZXI7CiAjZW5kaWYKKwor
I2lmIFVTRShRVEtJVCkKKyAgICBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJRVEtpdCA9IG5ldyBR
VEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXI7CisjZW5kaWYKIH0KIAogRnVsbFNjcmVlblZpZGVv
UXQ6On5GdWxsU2NyZWVuVmlkZW9RdCgpCkBAIC0xNTcsNiArMTY1LDkgQEAgRnVsbFNjcmVlblZp
ZGVvUXQ6On5GdWxsU2NyZWVuVmlkZW9RdCgpCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICBkZWxl
dGUgbV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyR1N0cmVhbWVyOwogI2VuZGlmCisjaWYgVVNFKFFU
S0lUKQorICAgIGRlbGV0ZSBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJRVEtpdDsKKyNlbmRpZgog
fQogCiB2b2lkIEZ1bGxTY3JlZW5WaWRlb1F0OjplbnRlckZ1bGxTY3JlZW5Gb3JOb2RlKE5vZGUq
IG5vZGUpCkBAIC0xODUsNiArMTk2LDEwIEBAIHZvaWQgRnVsbFNjcmVlblZpZGVvUXQ6OmVudGVy
RnVsbFNjcmVlbkYKICAgICBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJHU3RyZWFtZXItPnNldFZp
ZGVvRWxlbWVudChtX3ZpZGVvRWxlbWVudCk7CiAgICAgbV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVy
R1N0cmVhbWVyLT5lbnRlckZ1bGxTY3JlZW4oKTsKICNlbmRpZgorCisjaWYgVVNFKFFUS0lUKQor
ICAgIG1fRnVsbFNjcmVlblZpZGVvSGFuZGxlclFUS2l0LT5lbnRlckZ1bGxTY3JlZW4obV92aWRl
b0VsZW1lbnQpOworI2VuZGlmCiB9CiAKIHZvaWQgRnVsbFNjcmVlblZpZGVvUXQ6OmV4aXRGdWxs
U2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQpAQCAtMjExLDYgKzIyNiwxMSBAQCB2b2lkIEZ1bGxT
Y3JlZW5WaWRlb1F0OjpleGl0RnVsbFNjcmVlbkZvCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICBt
X0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJHU3RyZWFtZXItPmV4aXRGdWxsU2NyZWVuKCk7CiAjZW5k
aWYKKworI2lmIFVTRShRVEtJVCkKKyAgICBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJRVEtpdC0+
ZXhpdEZ1bGxTY3JlZW4oKTsKKyNlbmRpZgorCiB9CiAKIHZvaWQgRnVsbFNjcmVlblZpZGVvUXQ6
OmFib3V0VG9DbG9zZSgpCkBAIC0yMzIsOSArMjUyLDYgQEAgYm9vbCBGdWxsU2NyZWVuVmlkZW9R
dDo6cmVxdWlyZXNGdWxsU2NyZQogewogI2lmIFVTRShRVF9NVUxUSU1FRElBKQogICAgIHJldHVy
biBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXIgPyBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXItPnJl
cXVpcmVzRnVsbFNjcmVlbkZvclZpZGVvUGxheWJhY2soKSA6IGZhbHNlOwotI2VuZGlmCi0jaWYg
VVNFKEdTVFJFQU1FUikKLSAgICByZXR1cm4gZmFsc2U7CiAjZWxzZQogICAgIHJldHVybiBmYWxz
ZTsKICNlbmRpZgpAQCAtMjQ3LDYgKzI2NCw4IEBAIGJvb2wgRnVsbFNjcmVlblZpZGVvUXQ6Omlz
VmFsaWQoKSBjb25zdAogI2VuZGlmCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICByZXR1cm4gbV9G
dWxsU2NyZWVuVmlkZW9IYW5kbGVyR1N0cmVhbWVyOworI2VsaWYgVVNFKFFUS0lUKQorICAgIHJl
dHVybiBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJRVEtpdDsKICNlbHNlCiAgICAgcmV0dXJuIDA7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVl
blZpZGVvUXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Z1bGxTY3JlZW5WaWRlb1F0LmgJKHJldmlzaW9uIDg5NTczKQorKysgU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
OCw2ICszOCw5IEBAIGNsYXNzIE5vZGU7CiAjaWYgVVNFKFFUX01VTFRJTUVESUEpCiBjbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVRdDsKICNlbmRpZgorI2lmIFVTRShRVEtJVCkKK2NsYXNzIFFUS2l0
RnVsbFNjcmVlblZpZGVvSGFuZGxlcjsKKyNlbmRpZgogCiAvLyBXZSBkbyBub3QgdXNlIEVOQUJM
RSBvciBVU0UgYmVjYXVzZSBtb2MgZG9lcyBub3QgZXhwYW5kIHRoZXNlIG1hY3Jvcy4KICNpZiBk
ZWZpbmVkKFdURl9VU0VfR1NUUkVBTUVSKSAmJiBXVEZfVVNFX0dTVFJFQU1FUgpAQCAtMTA5LDYg
KzExMiw5IEBAIHByaXZhdGU6CiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICBHU3RyZWFtZXJGdWxs
U2NyZWVuVmlkZW9IYW5kbGVyKiBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJHU3RyZWFtZXI7CiAj
ZW5kaWYKKyNpZiBVU0UoUVRLSVQpCisgICAgUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyKiBt
X0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJRVEtpdDsKKyNlbmRpZgogfTsKIAogfQpJbmRleDogU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FUS2l0RnVs
bFNjcmVlblZpZGVvSGFuZGxlci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUVRLaXRGdWxsU2Ny
ZWVuVmlkZW9IYW5kbGVyX2gKKyNkZWZpbmUgUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyX2gK
KworI2luY2x1ZGUgPE93blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEhU
TUxWaWRlb0VsZW1lbnQ7CisKK2NsYXNzIFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlciB7Cisg
ICAgY2xhc3MgUVRLaXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyUHJpdmF0ZTsKK3B1YmxpYzoKKyAg
ICBRVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIoKTsKKyAgICB+UVRLaXRGdWxsU2NyZWVuVmlk
ZW9IYW5kbGVyKCk7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW4oSFRNTFZpZGVvRWxlbWVudCop
OworICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW4oKTsKKworcHJpdmF0ZToKKyAgICBPd25QdHI8UVRL
aXRGdWxsU2NyZWVuVmlkZW9IYW5kbGVyUHJpdmF0ZT4gcHJpdmF0ZURhdGE7Cit9OworCit9CisK
KyNlbmRpZiAvLyBRVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXJfaApJbmRleDogU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RVEtpdEZ1bGxTY3Jl
ZW5WaWRlb0hhbmRsZXIubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1FUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlci5tbQkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2luY2x1ZGUgIlFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlci5oIgorCisjaW1wb3J0IDxDb2Nv
YS9Db2NvYS5oPgorCisjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgorI2luY2x1ZGUgIldl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK2NsYXNzIFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlcjo6UVRLaXRGdWxsU2NyZWVuVmlk
ZW9IYW5kbGVyUHJpdmF0ZSB7CitwdWJsaWMgOgorICAgIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXIqIG1fRnVsbFNjcmVlbkNvbnRyb2xsZXI7Cit9OworCitRVEtpdEZ1bGxTY3JlZW5WaWRl
b0hhbmRsZXI6OlFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlcigpCisgICAgOiBwcml2YXRlRGF0
YSAoYWRvcHRQdHIobmV3IFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlclByaXZhdGUpKQorewor
ICAgIHByaXZhdGVEYXRhLT5tX0Z1bGxTY3JlZW5Db250cm9sbGVyID0gbmlsOworfQorCitRVEtp
dEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXI6On5RVEtpdEZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIoKQor
eworICAgIGV4aXRGdWxsU2NyZWVuKCk7Cit9CisKK3ZvaWQgUVRLaXRGdWxsU2NyZWVuVmlkZW9I
YW5kbGVyOjplbnRlckZ1bGxTY3JlZW4oSFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbGVtZW50KQor
eworICAgIGlmIChwcml2YXRlRGF0YS0+bV9GdWxsU2NyZWVuQ29udHJvbGxlcikgeworICAgICAg
ICAvLyBGaXJzdCBleGl0IGZ1bGxzY3JlZW4gZm9yIHRoZSBvbGQgbWVkaWFFbGVtZW50LgorICAg
ICAgICBleGl0RnVsbFNjcmVlbigpOworICAgICAgICBBU1NFUlQoIXByaXZhdGVEYXRhLT5tX0Z1
bGxTY3JlZW5Db250cm9sbGVyKTsKKyAgICB9CisgICAgaWYgKCFwcml2YXRlRGF0YS0+bV9GdWxs
U2NyZWVuQ29udHJvbGxlcikgeworICAgICAgICBwcml2YXRlRGF0YS0+bV9GdWxsU2NyZWVuQ29u
dHJvbGxlciA9IFtbV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBhbGxvY10gaW5pdF07Cisg
ICAgICAgIFtwcml2YXRlRGF0YS0+bV9GdWxsU2NyZWVuQ29udHJvbGxlciBzZXRNZWRpYUVsZW1l
bnQ6dmlkZW9FbGVtZW50XTsKKyAgICAgICAgTlNTY3JlZW4qIGN1cnJlbnRTY3JlZW4gPSBbTlNT
Y3JlZW4gbWFpblNjcmVlbl07CisgICAgICAgIFtwcml2YXRlRGF0YS0+bV9GdWxsU2NyZWVuQ29u
dHJvbGxlciBlbnRlckZ1bGxzY3JlZW46Y3VycmVudFNjcmVlbl07CisgICAgfQorfQorCit2b2lk
IFFUS2l0RnVsbFNjcmVlblZpZGVvSGFuZGxlcjo6ZXhpdEZ1bGxTY3JlZW4oKQoreworICAgIFtw
cml2YXRlRGF0YS0+bV9GdWxsU2NyZWVuQ29udHJvbGxlciBleGl0RnVsbHNjcmVlbl07CisgICAg
W3ByaXZhdGVEYXRhLT5tX0Z1bGxTY3JlZW5Db250cm9sbGVyIHJlbGVhc2VdOworICAgIHByaXZh
dGVEYXRhLT5tX0Z1bGxTY3JlZW5Db250cm9sbGVyID0gbmlsOworfQpJbmRleDogU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0J
KHJldmlzaW9uIDg5NTczKQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJT
eXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDEwIEBAIHZvaWQg
SW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICBJTklUKFFUR2V0U2l0ZXNJbk1l
ZGlhRG93bmxvYWRDYWNoZSk7CiAgICAgSU5JVChRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlRm9y
U2l0ZSk7CiAgICAgSU5JVChRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlKTsKKyAgICBJTklUKENy
ZWF0ZU1lZGlhVUlCYWNrZ3JvdW5kVmlldyk7CisgICAgSU5JVChDcmVhdGVNZWRpYVVJQ29udHJv
bCk7CisgICAgSU5JVChXaW5kb3dTZXRBbHBoYSk7CisgICAgSU5JVChXaW5kb3dTZXRTY2FsZWRG
cmFtZSk7CiAKICAgICBkaWRJbml0ID0gdHJ1ZTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>