<?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>59778</bug_id>
          
          <creation_ts>2011-04-28 22:31:08 -0700</creation_ts>
          <short_desc>Implement FULLSCREEN_API on Windows, Part 1: Stubs</short_desc>
          <delta_ts>2011-04-29 21:33:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>59785</blocked>
    
    <blocked>59845</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>buildbot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>395115</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-04-28 22:31:08 -0700</bug_when>
    <thetext>Implement FULLSCREEN_API on Windows, Part 1: Stubs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395126</commentid>
    <comment_count>1</comment_count>
      <attachid>91640</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-04-28 22:54:24 -0700</bug_when>
    <thetext>Created attachment 91640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395132</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-28 23:15:31 -0700</bug_when>
    <thetext>Attachment 91640 did not build on win:
Build output: http://queues.webkit.org/results/8519645</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395163</commentid>
    <comment_count>3</comment_count>
      <attachid>91649</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-04-29 00:55:44 -0700</bug_when>
    <thetext>Created attachment 91649
Patch

E_NOIMPL -&gt; E_NOTIMPL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395164</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-29 01:15:39 -0700</bug_when>
    <thetext>Attachment 91649 did not build on win:
Build output: http://queues.webkit.org/results/8524069</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395170</commentid>
    <comment_count>5</comment_count>
      <attachid>91651</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-04-29 01:27:28 -0700</bug_when>
    <thetext>Created attachment 91651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395172</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-04-29 01:48:38 -0700</bug_when>
    <thetext>Phew! finally.  All ews bots are green.  Form voltron.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395679</commentid>
    <comment_count>7</comment_count>
      <attachid>91651</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-04-29 18:08:30 -0700</bug_when>
    <thetext>Comment on attachment 91651
Patch

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

&gt; Source/WebKit/win/ChangeLog:12
&gt; +        * Interfaces/IWebPreferencesPrivate.idl: Add funcitons for enabling

Typo: funcitons.

&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:881
&gt; +bool WebChromeClient::supportsFullScreenForElement(const Element* element, bool withKeyboard)

I&apos;m not sure &quot;withKeyboard&quot; is clear - maybe &quot;elementWantsKeyboardAccess&quot;?

&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:893
&gt; +    return FALSE

Missing trailing ;

&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:902
&gt; +        if (uiDelegatePrivate4 &amp;&amp; SUCCEEDED(uiDelegatePrivate4-&gt;enterFullScreenForElement(domElement.get())))

No need to test whether the call succeeded.

&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:913
&gt; +        if (uiDelegatePrivate4 &amp;&amp; SUCCEEDED(uiDelegatePrivate4-&gt;exitFullScreenForElement(domElement.get())))

Ditto.

&gt; Source/WebKit/win/WebPreferences.cpp:1535
&gt; +#if ENABLE(FULLSCREEN_API)
&gt; +    *enabled = boolValueForKey(CFSTR(WebKitFullScreenEnabledPreferenceKey));
&gt; +    return S_OK;

I think we usually null check these out params and return E_POINTER if null.

&gt; Source/WebKit/win/WebPreferences.cpp:1537
&gt; +#else
&gt; +    return E_NOTIMPL;

It might be good to set enabled to FALSE in this case, even though we return E_NOTIMPL.

&gt; Source/WebKit2/UIProcess/win/WebFullScreenManagerProxyWin.cpp:3
&gt; +/*
&gt; + * Copyright (C) 2010 Apple Inc. All rights reserved.
&gt; + *

It&apos;s 2011, man.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395697</commentid>
    <comment_count>8</comment_count>
      <attachid>91651</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-04-29 18:30:28 -0700</bug_when>
    <thetext>Comment on attachment 91651
Patch

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

&gt;&gt; Source/WebKit/win/ChangeLog:12
&gt;&gt; +        * Interfaces/IWebPreferencesPrivate.idl: Add funcitons for enabling
&gt; 
&gt; Typo: funcitons.

Fxied.

&gt;&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:881
&gt;&gt; +bool WebChromeClient::supportsFullScreenForElement(const Element* element, bool withKeyboard)
&gt; 
&gt; I&apos;m not sure &quot;withKeyboard&quot; is clear - maybe &quot;elementWantsKeyboardAccess&quot;?

How about &quot;requestingKeyboardAccess&quot;?

&gt;&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:893
&gt;&gt; +    return FALSE
&gt; 
&gt; Missing trailing ;

Added.

&gt;&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:902
&gt;&gt; +        if (uiDelegatePrivate4 &amp;&amp; SUCCEEDED(uiDelegatePrivate4-&gt;enterFullScreenForElement(domElement.get())))
&gt; 
&gt; No need to test whether the call succeeded.

Not yet, no.  But in the WebKit patch that follows, we&apos;ll want to know whether this function succeeds or not;  if not, we want to provide the default behavior.

&gt;&gt; Source/WebKit/win/WebPreferences.cpp:1535
&gt;&gt; +    return S_OK;
&gt; 
&gt; I think we usually null check these out params and return E_POINTER if null.

Good idea.  Added.

&gt;&gt; Source/WebKit/win/WebPreferences.cpp:1537
&gt;&gt; +    return E_NOTIMPL;
&gt; 
&gt; It might be good to set enabled to FALSE in this case, even though we return E_NOTIMPL.

Hm; I&apos;d say the opposite.  If a function isn&apos;t implemented, you wouldn&apos;t expect it to modify your input would you?  Anyway, the callGetter() in COMUtilities handles the error case correctly.

&gt;&gt; Source/WebKit2/UIProcess/win/WebFullScreenManagerProxyWin.cpp:3
&gt;&gt; + *
&gt; 
&gt; It&apos;s 2011, man.

I blame my iPhone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395700</commentid>
    <comment_count>9</comment_count>
      <attachid>91651</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-29 18:35:07 -0700</bug_when>
    <thetext>Comment on attachment 91651
Patch

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

&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:884
&gt; +    if (SUCCEEDED(m_webView-&gt;uiDelegate(&amp;uiDelegate))) {

Early return!

&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:890
&gt; +        if (uiDelegatePrivate4 &amp;&amp; SUCCEEDED(uiDelegatePrivate4-&gt;supportsFullScreenForElement(domElement.get(), withKeyboard, &amp;supports)))
&gt; +            return supports;

You could just turn this into a return statement with another &amp;&amp;.E

&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:899
&gt; +    if (SUCCEEDED(m_webView-&gt;uiDelegate(&amp;uiDelegate))) {

Early return!E

&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:910
&gt; +    if (SUCCEEDED(m_webView-&gt;uiDelegate(&amp;uiDelegate))) {

Early return!

&gt; Source/WebKit2/WebProcess/FullScreen/win/WebFullScreenManagerWin.cpp:25
&gt; + */
&gt; +#include &quot;config.h&quot;

Newline!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395703</commentid>
    <comment_count>10</comment_count>
      <attachid>91651</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-04-29 18:40:22 -0700</bug_when>
    <thetext>Comment on attachment 91651
Patch

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

&gt;&gt; Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp:884
&gt;&gt; +    if (SUCCEEDED(m_webView-&gt;uiDelegate(&amp;uiDelegate))) {
&gt; 
&gt; Early return!

Stay tuned for &quot;Part 2&quot;, where the lack of an early return will become clear! (We want to fall through to the bottom, where default behavior will be added.)

This has tripped up a couple of people now, so I guess i shouldn&apos;t have broken up the function in two patches this way.

&gt;&gt; Source/WebKit2/WebProcess/FullScreen/win/WebFullScreenManagerWin.cpp:25
&gt;&gt; +#include &quot;config.h&quot;
&gt; 
&gt; Newline!

I guess I should have hit *return earlier*!  (See what I did there? :-D )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395760</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-04-29 21:33:42 -0700</bug_when>
    <thetext>Committed r85389: &lt;http://trac.webkit.org/changeset/85389&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91640</attachid>
            <date>2011-04-28 22:54:24 -0700</date>
            <delta_ts>2011-04-29 00:55:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59778-20110428225423.patch</filename>
            <type>text/plain</type>
            <size>20616</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODUyMzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAwNDlhYzU5MmI4
YzY5ZTFmNjJmMGY1ZTJjNWNjYzQ2MzRlNGVlZDU2Li5hMTg5OWY5ZDA5MmM1Mzk5NDU2ZDFmYTRl
MzZmZWQ5YzUwZGU1ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEt
MDQtMjggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEZVTExTQ1JFRU5fQVBJ
IG9uIFdpbmRvd3MsIFBhcnQgMTogU3R1YnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU5Nzc4CisKKyAgICAgICAgQ3JlYXRlIGFsbCB0aGUgc3R1YnMg
bmVjZXNzYXJ5IHRvIGZvciBlbmFibGluZyBGVUxMU0NSRUVOX0FQSQorICAgICAgICBvbiBXaW5k
b3dzLiBUaGlzIGluY2x1ZGVzIHRoZSBDT00gaW50ZXJmYWNlcyBmb3IgcHJlZmVyZW5jZXMgYW5k
CisgICAgICAgIGZvciBvdmVycmlkaW5nIGZ1bGwgc2NyZWVuIGJlaGF2aW9yIGluIGEgVUkgRGVs
ZWdhdGUuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRs
OiBBZGQgZnVuY2l0b25zIGZvciBlbmFibGluZworICAgICAgICAgICAgZnVsbCBzY3JlZW4gcHJl
ZmVyZW5jZS4KKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJVSURlbGVnYXRlUHJpdmF0ZS5pZGw6
IEFkZCBmdW5jdGlvbnMgZm9yIG92ZXJyaWRpbmcKKyAgICAgICAgICAgIGZ1bGwgc2NyZWVuIGJl
aGF2aW9yLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgV2ViS2l0RnVs
bFNjcmVlbkVuYWJsZSBrZXkuCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAg
ICAoV2ViUHJlZmVyZW5jZXM6OmlzRnVsbFNjcmVlbkVuYWJsZWQpOiBBZGRlZC4gSW1wbGVtZW50
cyBmdW5jdGlvbgorICAgICAgICAgICBkZWZpbmVkIGluIElXZWJVSURlbGVnYXRlUHJpdmF0ZS4K
KyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRGdWxsU2NyZWVuRW5hYmxlZCk6IERpdHRvLgor
ICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6CisKIDIwMTEtMDQtMjYgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmlkbAppbmRleCBlM2ZhYmQzZTllN2UzMWZlZTZkMDI0MjhlMjNmYmM4NmY0MWY0
NDU0Li4yN2NlODJmZTlkMDkxMDJmOWY5OWM4MzBhN2M1OTg3ZTI5ZWI2ZGIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRs
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZS5pZGwKQEAgLTEyNCw0ICsxMjQsNyBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZSA6IElVbmtub3duCiAKICAgICBIUkVTVUxUIHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFn
ZUxvYWRpbmdQcmVmZXJlbmNlKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIGxvYWRz
U2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKFtvdXQsIHJldHZhbF0gQk9P
TCogZW5hYmxlZCk7CisKKyAgICBIUkVTVUxUIHNldEZ1bGxTY3JlZW5FbmFibGVkKFtpbl0gQk9P
TCBlbmFibGVkKTsKKyAgICBIUkVTVUxUIGlzRnVsbFNjcmVlbkVuYWJsZWQoW291dCwgcmV0dmFs
XSBCT09MKiBlbmFibGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlVJRGVsZWdhdGVQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlVJRGVsZWdhdGVQcml2YXRlLmlkbAppbmRleCAxNDMxZGIyMzlhNmZjOGU4NTA0
NWI5NzYxZTUzOGNlMTNjMTQ5YWRiLi5kYTMwOGM1MDMxODBjYTU0NDljNjdlZGM4NmZhZDM4MDc0
ZTg1NDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJVSURl
bGVnYXRlUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2Vi
VUlEZWxlZ2F0ZVByaXZhdGUuaWRsCkBAIC0xMTAsMyArMTEwLDE2IEBAIGludGVyZmFjZSBJV2Vi
VUlEZWxlZ2F0ZVByaXZhdGUzIDogSVdlYlVJRGVsZWdhdGVQcml2YXRlMgogewogICAgIEhSRVNV
TFQgZGlkUHJlc3NNaXNzaW5nUGx1Z2luQnV0dG9uKFtpbl0gSURPTUVsZW1lbnQqKTsKIH0KKwor
WworICAgIG9iamVjdCwKKyAgICBvbGVhdXRvbWF0aW9uLAorICAgIHV1aWQoOTQ0ZThlNDYtNmQ2
My00NTBmLWIzODEtYzVkNjhiODBiNzI3KSwKKyAgICBwb2ludGVyX2RlZmF1bHQodW5pcXVlKQor
XQoraW50ZXJmYWNlIElXZWJVSURlbGVnYXRlUHJpdmF0ZTQgOiBJV2ViVUlEZWxlZ2F0ZVByaXZh
dGUzCit7CisgICAgSFJFU1VMVCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KFtpbl0gSURP
TUVsZW1lbnQqLCBbaW5dIEJPT0wgd2l0aEtleWJvYXJkLCBbb3V0LCByZXR2YWxdIEJPT0wqIHN1
cHBvcnRzKTsKKyAgICBIUkVTVUxUIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoW2luXSBJRE9N
RWxlbWVudCopOworICAgIEhSRVNVTFQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFtpbl0gSURP
TUVsZW1lbnQqKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDE5MzVjNWZhMTIxMTcwOWYwMmMxMmE3YjU5MWVl
ZTQzNTgxMThhYTYuLjM2NmJjOWMzZjRlYjdjOTliOTRiNzhlYTA3NjIwYzAxODhlNDM1ZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtODc3LDMgKzg3Nyw0MiBAQCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4g
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZQogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKGNsaWVudCkpOwogfQogCisj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCogZWxlbWVudCwgYm9vbCB3aXRoS2V5
Ym9hcmQpCit7CisgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOworICAgIGlm
IChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKKyAgICAg
ICAgQ09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChRdWVy
eSwgdWlEZWxlZ2F0ZSk7CisgICAgICAgIEJPT0wgc3VwcG9ydHMgPSBGQUxTRTsKKyAgICAgICAg
Q09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVh
dGVJbnN0YW5jZShjb25zdF9jYXN0PEVsZW1lbnQqPihlbGVtZW50KSkpOworCisgICAgICAgIGlm
ICh1aURlbGVnYXRlUHJpdmF0ZTQgJiYgU1VDQ0VFREVEKHVpRGVsZWdhdGVQcml2YXRlNC0+c3Vw
cG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChkb21FbGVtZW50LmdldCgpLCB3aXRoS2V5Ym9hcmQs
ICZzdXBwb3J0cykpKQorICAgICAgICAgICAgcmV0dXJuIHN1cHBvcnRzOworICAgIH0KKworICAg
IHJldHVybiBGQUxTRQorfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQoreworICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0
ZT4gdWlEZWxlZ2F0ZTsKKyAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgm
dWlEZWxlZ2F0ZSkpKSB7CisgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU0PiB1
aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVsZWdhdGUpOworICAgICAgICBDT01QdHI8SURP
TUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNl
KGVsZW1lbnQpKTsKKyAgICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUNDRUVERUQo
dWlEZWxlZ2F0ZVByaXZhdGU0LT5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGRvbUVsZW1lbnQu
Z2V0KCkpKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9IAorfQorCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7Cisg
ICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOworICAgIGlmIChTVUNDRUVERUQo
bV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKKyAgICAgICAgQ09NUHRyPElX
ZWJVSURlbGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChRdWVyeSwgdWlEZWxlZ2F0
ZSk7CisgICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9N
RWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOworICAgICAgICBpZiAodWlEZWxlZ2F0
ZVByaXZhdGU0ICYmIFNVQ0NFRURFRCh1aURlbGVnYXRlUHJpdmF0ZTQtPmV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChkb21FbGVtZW50LmdldCgpKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
fQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYWRmYzg2OWJmOTZlOGM5N2UwYTgxYTU2MTUxNmZlMGUz
OTMyZGVmMS4uZjE0N2QyZGZkZDVhZGYxNWNmZGMwZTViZmZkNjQ1OGI2YjU1Yjc0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTE3Nyw2ICsxNzcsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQq
KSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtl
eWJvYXJkKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJD
b3JlOjpFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dChXZWJDb3JlOjpFbGVtZW50Kik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBDT01QdHI8SVdl
YlVJRGVsZWdhdGU+IHVpRGVsZWdhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCA5ZGQxNGVkZDNlNDRhZGQyNmE1NGNlZTcwY2QwYzE2
NDFiNDlmZGMxLi44OTk2OWQ0MjczNmI2ZjY0MGU2MzFiYzRlY2YwNTg4YzJmMTI4M2M1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTUwLDMg
KzE1MCw1IEBACiAjZGVmaW5lIFdlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZFByZWZlcmVuY2VL
ZXkgIldlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZCIKIAogI2RlZmluZSBXZWJLaXRNZW1vcnlJ
bmZvRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdE1lbW9yeUluZm9FbmFibGVkIgorCisjZGVm
aW5lIFdlYktpdEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0RnVsbFNjcmVl
bkVuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggMDY4NmMyYjMx
YzJjMzRlY2NkNTIyZDhiOWQyODNlYWVmY2QwOGVmZC4uMjYwNTdhMGMwODZlMzRiZjdhMWU0NTkz
NWEyMzVlMWUwZGM4ZDBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVy
ZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAt
MTUyOCw2ICsxNTI4LDI2IEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldE1lbW9yeUluZm9F
bmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBXZWJQ
cmVmZXJlbmNlczo6aXNGdWxsU2NyZWVuRW5hYmxlZChCT09MKiBlbmFibGVkKQoreworI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShDRlNU
UihXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZFByZWZlcmVuY2VLZXkpKTsKKyAgICByZXR1cm4gU19P
SzsKKyNlbHNlCisgICAgcmV0dXJuIEVfTk9JTVBMOworI2VuZGlmCit9CisKK0hSRVNVTFQgV2Vi
UHJlZmVyZW5jZXM6OnNldEZ1bGxTY3JlZW5FbmFibGVkKEJPT0wgZW5hYmxlZCkKK3sKKyNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgc2V0Qm9vbFZhbHVlKENGU1RSKFdlYktpdEZ1bGxT
Y3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleSksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOwor
I2Vsc2UKKyAgICByZXR1cm4gRV9OT0lNUEw7CisjZW5kaWYKK30KKwogdm9pZCBXZWJQcmVmZXJl
bmNlczo6d2lsbEFkZFRvV2ViVmlldygpCiB7CiAgICAgKyttX251bVdlYlZpZXdzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggODk5NjAzNTc4ZjNjNmI3Y2QzOWE2ODU2M2Y2MmM3
ZTZhNWI2NWU5Yi4uM2IyOTQwZDdkMTE5ODI3NWI4ZjMzMGVjM2Q3N2Y4YTBhN2ZlMTNhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC00MzIsNiArNDMyLDkgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBsb2Fkc1NpdGVJY29uc0lnbm9y
aW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVm
ZXJlbmNlKEJPT0wpOwogCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNl
dEZ1bGxTY3JlZW5FbmFibGVkKEJPT0wpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBpc0Z1bGxTY3JlZW5FbmFibGVkKEJPT0wqKTsKKwogICAgIC8vIFdlYlByZWZlcmVu
Y2VzCiAKICAgICAvLyBUaGlzIG1ldGhvZCBhY2Nlc3NlcyBhIGRpZmZlcmVudCBwcmVmZXJlbmNl
IGtleSB0aGFuIGRldmVsb3BlckV4dHJhc0VuYWJsZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmZiNTI3ZDMz
MDU1N2MwMmZkZGM5NzljNjY1ZjI0NGI2NDM0NGM5Yy4uMDg2NzYxMmRlNmFmNTg3ZTI4NTBjYzEw
ZmM5Yzk1ZmNiZGJiZmY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDExLTA0LTI4
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBGVUxMU0NSRUVOX0FQSSBvbiBX
aW5kb3dzLCBQYXJ0IDE6IFN0dWJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01OTc3OAorCisgICAgICAgIEFkZCBXaW5kb3dzIHNwZWNpZmljIHN0dWJz
IGZvciBXZWJLaXQyIGZ1bGwgc2NyZWVuIEFQSXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2lu
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZW50ZXJGdWxsU2NyZWVuKTogQWRkZWQgc3R1
Yi4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxT
Y3JlZW4pOiBBZGRlZCBzdHViLgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5OjpiZWdhbkVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbik6IEFkZGVkIHN0dWIuCisgICAg
ICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmZpbmlzaGVkRW50ZXJGdWxs
U2NyZWVuQW5pbWF0aW9uKTogQWRkZWQgc3R1Yi4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eTo6YmVnYW5FeGl0RnVsbFNjcmVlbkFuaW1hdGlvbik6IEFkZGVkIHN0
dWIuCisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmZpbmlzaGVk
RXhpdEZ1bGxTY3JlZW5BbmltYXRpb24pOiBBZGRlZCBzdHViLgorICAgICAgICAoV2ViS2l0OjpX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KTogQWRkZWQgc3R1Yi4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTogQWRkZWQgc3R1Yi4KKyAgICAgICAg
KFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6Z2V0RnVsbFNjcmVlblJlY3QpOiBB
ZGRlZCBzdHViLgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi93aW4vV2ViRnVsbFNj
cmVlbk1hbmFnZXJXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVl
bk1hbmFnZXI6OmNyZWF0ZSk6IEFkZGVkLiBSZXR1cm5zIGEgV2ViRnVsbFNjcmVlbk1hbmFnZXJX
aW4uCisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luOjpjcmVhdGUpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW46OldlYkZ1bGxT
Y3JlZW5NYW5hZ2VyV2luKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5N
YW5hZ2VyV2luOjp+V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4pOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW46OnNldFJvb3RGdWxsU2NyZWVuTGF5ZXIpOiBB
ZGRlZCBzdHViLgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlcldpbjo6YmVn
aW5FbnRlckZ1bGxTY3JlZW5BbmltYXRpb24pOiBBZGRlZCBzdHViLgorICAgICAgICAoV2ViS2l0
OjpXZWJGdWxsU2NyZWVuTWFuYWdlcldpbjo6YmVnaW5FeGl0RnVsbFNjcmVlbkFuaW1hdGlvbik6
IEFkZGVkIHN0dWIuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL3dpbi9XZWJGdWxs
U2NyZWVuTWFuYWdlcldpbi5oOiBBZGRlZC4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6
IEFkZGVkIG5ldyBjbGFzc2VzLgorCiAyMDExLTA0LTI4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5V2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YmRhNGI5NjQzMGI5MTY5NDQxYzk5OGQyOWNi
M2VjYzYyNjNiYjAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3dpbi9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5V2luLmNwcApAQCAtMCwwICsxLDEwMCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5LmgiCisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisKKyNpbmNsdWRl
IDxXZWJDb3JlL0ludFJlY3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eTo6ZW50ZXJGdWxsU2NyZWVuKCkKK3sKKyAgICBpZiAoIW1fd2Vi
VmlldykKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKK30KKwordm9p
ZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpleGl0RnVsbFNjcmVlbigpCit7CisgICAgaWYg
KCFtX3dlYlZpZXcpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50Cit9
CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5FbnRlckZ1bGxTY3JlZW5B
bmltYXRpb24oKQoreworICAgIGlmICghbV93ZWJWaWV3KQorICAgICAgICByZXR1cm47CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudAorfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6
OmZpbmlzaGVkRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uKGJvb2wgY29tcGxldGVkKQoreworICAg
IGlmICghbV93ZWJWaWV3KQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IEltcGxlbWVu
dAorfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRXhpdEZ1bGxTY3Jl
ZW5BbmltYXRpb24oKQoreworICAgIGlmICghbV93ZWJWaWV3KQorICAgICAgICByZXR1cm47Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudAorfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OmZpbmlzaGVkRXhpdEZ1bGxTY3JlZW5BbmltYXRpb24oYm9vbCBjb21wbGV0ZWQpCit7Cisg
ICAgaWYgKCFtX3dlYlZpZXcpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50Cit9CisgICAgCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgY29udGV4dCkKK3sK
KyAgICBpZiAoIW1fd2ViVmlldykKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpleGl0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUoKQoreworICAgIGlmICghbV93ZWJWaWV3KQorICAgICAgICByZXR1
cm47CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHk6OmdldEZ1bGxTY3JlZW5SZWN0KFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCit7Cisg
ICAgaWYgKCFtX3dlYlZpZXcpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi93aW4vV2ViRnVsbFNjcmVlbk1hbmFn
ZXJXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL3dpbi9XZWJG
dWxsU2NyZWVuTWFuYWdlcldpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdhOGQ5MzQxZDUyOTAwNmJjZWM2
NmEwOThlMzQyMzgwYjY2Y2QwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRnVsbFNjcmVlbi93aW4vV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4uY3BwCkBAIC0w
LDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkZ1bGxTY3JlZW5NYW5hZ2VyV2luLmgiCisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisK
KyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitQYXNzUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6
Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
V2luOjpjcmVhdGUocGFnZSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXJX
aW4+IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luOjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luKHBhZ2UpKTsKK30K
KworV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW46OldlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luKFdlYlBh
Z2UqIHBhZ2UpCisgICAgOiBXZWJGdWxsU2NyZWVuTWFuYWdlcihwYWdlKQoreworfQorCitXZWJG
dWxsU2NyZWVuTWFuYWdlcldpbjo6fldlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luKCkKK3sKK30KKwor
dm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcldpbjo6c2V0Um9vdEZ1bGxTY3JlZW5MYXllcihXZWJD
b3JlOjpHcmFwaGljc0xheWVyKikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50Cit9CisKK3Zv
aWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW46OmJlZ2luRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9u
KGZsb2F0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKK30KKwordm9pZCBXZWJGdWxsU2Ny
ZWVuTWFuYWdlcldpbjo6YmVnaW5FeGl0RnVsbFNjcmVlbkFuaW1hdGlvbihmbG9hdCkKK3sKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL3dpbi9XZWJGdWxsU2NyZWVuTWFuYWdlcldpbi5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL3dpbi9XZWJGdWxsU2NyZWVuTWFuYWdl
cldpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ5YWY0ZDlhMGY4YzMzNDNiYWFhOWEwM2M3ZWZmMTg4ZmExNjlk
NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4vd2luL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW5faAorI2RlZmluZSBXZWJGdWxs
U2NyZWVuTWFuYWdlcldpbl9oCisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisKKyNpbmNs
dWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJGdWxsU2NyZWVuTWFuYWdlcldp
biA6IHB1YmxpYyBXZWJGdWxsU2NyZWVuTWFuYWdlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4+IGNyZWF0ZShXZWJQYWdlKik7CisKK3By
aXZhdGU6CisgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4oV2ViUGFnZSopOworICAgIHZpcnR1
YWwgfldlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Um9v
dEZ1bGxTY3JlZW5MYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdmlydHVhbCB2
b2lkIGJlZ2luRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uKGZsb2F0IGR1cmF0aW9uKTsKKyAgICB2
aXJ0dWFsIHZvaWQgYmVnaW5FeGl0RnVsbFNjcmVlbkFuaW1hdGlvbihmbG9hdCBkdXJhdGlvbik7
Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisKKyNlbmRpZiAv
LyBXZWJGdWxsU2NyZWVuTWFuYWdlcldpbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5k
ZXggMjgyZjFmMTdlODM1ODMyZTE2ZDZmMzViOTBiY2IxODQ1NTdkZDFmZS4uOTIyMjAxNTk2MzYx
MTRjMmFhYWEzOWQ5N2Y0MGEyMjAzMGQyNGQ2MyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJv
agpAQCAtMjE2Niw2ICsyMTY2LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEluamVjdGVk
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxJ
bmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVu
ZGxlXEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAiCiAJCQkJCT4KIAkJCQk8L0Zp
bGU+CkBAIC0yNDg2LDYgKzI0OTQsMzAgQEAKIAkJCQkJPC9GaWx0ZXI+CiAJCQkJPC9GaWx0ZXI+
CiAJCQk8L0ZpbHRlcj4KKwkJCTxGaWx0ZXIKKwkJCQlOYW1lPSJGdWxsU2NyZWVuIgorCQkJCT4K
KwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcRnVsbFNjcmVlblxX
ZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEZ1bGxTY3JlZW5cV2ViRnVsbFNjcmVl
bk1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsdGVyCisJCQkJCU5hbWU9
IndpbiIKKwkJCQkJPgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9j
ZXNzXEZ1bGxTY3JlZW5cd2luXFdlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luLmNwcCIKKwkJCQkJCT4K
KwkJCQkJPC9GaWxlPgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9j
ZXNzXEZ1bGxTY3JlZW5cd2luXFdlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luLmgiCisJCQkJCQk+CisJ
CQkJCTwvRmlsZT4KKwkJCQk8L0ZpbHRlcj4KKwkJCTwvRmlsdGVyPgogCQk8L0ZpbHRlcj4KIAkJ
PEZpbHRlcgogCQkJTmFtZT0iVUlQcm9jZXNzIgpAQCAtMzQzNCw2ICszNDY2LDEwIEBACiAJCQkJ
CT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nl
c3Ncd2luXFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlXaW4uY3BwIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXHdpblxXZWJH
cmFtbWFyRGV0YWlsLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91649</attachid>
            <date>2011-04-29 00:55:44 -0700</date>
            <delta_ts>2011-04-29 01:27:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59778-20110429005543.patch</filename>
            <type>text/plain</type>
            <size>20616</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODUyMzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAwNDlhYzU5MmI4
YzY5ZTFmNjJmMGY1ZTJjNWNjYzQ2MzRlNGVlZDU2Li5hMTg5OWY5ZDA5MmM1Mzk5NDU2ZDFmYTRl
MzZmZWQ5YzUwZGU1ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEt
MDQtMjggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEZVTExTQ1JFRU5fQVBJ
IG9uIFdpbmRvd3MsIFBhcnQgMTogU3R1YnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU5Nzc4CisKKyAgICAgICAgQ3JlYXRlIGFsbCB0aGUgc3R1YnMg
bmVjZXNzYXJ5IHRvIGZvciBlbmFibGluZyBGVUxMU0NSRUVOX0FQSQorICAgICAgICBvbiBXaW5k
b3dzLiBUaGlzIGluY2x1ZGVzIHRoZSBDT00gaW50ZXJmYWNlcyBmb3IgcHJlZmVyZW5jZXMgYW5k
CisgICAgICAgIGZvciBvdmVycmlkaW5nIGZ1bGwgc2NyZWVuIGJlaGF2aW9yIGluIGEgVUkgRGVs
ZWdhdGUuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRs
OiBBZGQgZnVuY2l0b25zIGZvciBlbmFibGluZworICAgICAgICAgICAgZnVsbCBzY3JlZW4gcHJl
ZmVyZW5jZS4KKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJVSURlbGVnYXRlUHJpdmF0ZS5pZGw6
IEFkZCBmdW5jdGlvbnMgZm9yIG92ZXJyaWRpbmcKKyAgICAgICAgICAgIGZ1bGwgc2NyZWVuIGJl
aGF2aW9yLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgV2ViS2l0RnVs
bFNjcmVlbkVuYWJsZSBrZXkuCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAg
ICAoV2ViUHJlZmVyZW5jZXM6OmlzRnVsbFNjcmVlbkVuYWJsZWQpOiBBZGRlZC4gSW1wbGVtZW50
cyBmdW5jdGlvbgorICAgICAgICAgICBkZWZpbmVkIGluIElXZWJVSURlbGVnYXRlUHJpdmF0ZS4K
KyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRGdWxsU2NyZWVuRW5hYmxlZCk6IERpdHRvLgor
ICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6CisKIDIwMTEtMDQtMjYgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmlkbAppbmRleCBlM2ZhYmQzZTllN2UzMWZlZTZkMDI0MjhlMjNmYmM4NmY0MWY0
NDU0Li4yN2NlODJmZTlkMDkxMDJmOWY5OWM4MzBhN2M1OTg3ZTI5ZWI2ZGIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRs
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZS5pZGwKQEAgLTEyNCw0ICsxMjQsNyBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZSA6IElVbmtub3duCiAKICAgICBIUkVTVUxUIHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFn
ZUxvYWRpbmdQcmVmZXJlbmNlKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIGxvYWRz
U2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKFtvdXQsIHJldHZhbF0gQk9P
TCogZW5hYmxlZCk7CisKKyAgICBIUkVTVUxUIHNldEZ1bGxTY3JlZW5FbmFibGVkKFtpbl0gQk9P
TCBlbmFibGVkKTsKKyAgICBIUkVTVUxUIGlzRnVsbFNjcmVlbkVuYWJsZWQoW291dCwgcmV0dmFs
XSBCT09MKiBlbmFibGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlVJRGVsZWdhdGVQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlVJRGVsZWdhdGVQcml2YXRlLmlkbAppbmRleCAxNDMxZGIyMzlhNmZjOGU4NTA0
NWI5NzYxZTUzOGNlMTNjMTQ5YWRiLi5kYTMwOGM1MDMxODBjYTU0NDljNjdlZGM4NmZhZDM4MDc0
ZTg1NDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJVSURl
bGVnYXRlUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2Vi
VUlEZWxlZ2F0ZVByaXZhdGUuaWRsCkBAIC0xMTAsMyArMTEwLDE2IEBAIGludGVyZmFjZSBJV2Vi
VUlEZWxlZ2F0ZVByaXZhdGUzIDogSVdlYlVJRGVsZWdhdGVQcml2YXRlMgogewogICAgIEhSRVNV
TFQgZGlkUHJlc3NNaXNzaW5nUGx1Z2luQnV0dG9uKFtpbl0gSURPTUVsZW1lbnQqKTsKIH0KKwor
WworICAgIG9iamVjdCwKKyAgICBvbGVhdXRvbWF0aW9uLAorICAgIHV1aWQoOTQ0ZThlNDYtNmQ2
My00NTBmLWIzODEtYzVkNjhiODBiNzI3KSwKKyAgICBwb2ludGVyX2RlZmF1bHQodW5pcXVlKQor
XQoraW50ZXJmYWNlIElXZWJVSURlbGVnYXRlUHJpdmF0ZTQgOiBJV2ViVUlEZWxlZ2F0ZVByaXZh
dGUzCit7CisgICAgSFJFU1VMVCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KFtpbl0gSURP
TUVsZW1lbnQqLCBbaW5dIEJPT0wgd2l0aEtleWJvYXJkLCBbb3V0LCByZXR2YWxdIEJPT0wqIHN1
cHBvcnRzKTsKKyAgICBIUkVTVUxUIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoW2luXSBJRE9N
RWxlbWVudCopOworICAgIEhSRVNVTFQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFtpbl0gSURP
TUVsZW1lbnQqKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDE5MzVjNWZhMTIxMTcwOWYwMmMxMmE3YjU5MWVl
ZTQzNTgxMThhYTYuLjM2NmJjOWMzZjRlYjdjOTliOTRiNzhlYTA3NjIwYzAxODhlNDM1ZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtODc3LDMgKzg3Nyw0MiBAQCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4g
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZQogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKGNsaWVudCkpOwogfQogCisj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCogZWxlbWVudCwgYm9vbCB3aXRoS2V5
Ym9hcmQpCit7CisgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOworICAgIGlm
IChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKKyAgICAg
ICAgQ09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChRdWVy
eSwgdWlEZWxlZ2F0ZSk7CisgICAgICAgIEJPT0wgc3VwcG9ydHMgPSBGQUxTRTsKKyAgICAgICAg
Q09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVh
dGVJbnN0YW5jZShjb25zdF9jYXN0PEVsZW1lbnQqPihlbGVtZW50KSkpOworCisgICAgICAgIGlm
ICh1aURlbGVnYXRlUHJpdmF0ZTQgJiYgU1VDQ0VFREVEKHVpRGVsZWdhdGVQcml2YXRlNC0+c3Vw
cG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChkb21FbGVtZW50LmdldCgpLCB3aXRoS2V5Ym9hcmQs
ICZzdXBwb3J0cykpKQorICAgICAgICAgICAgcmV0dXJuIHN1cHBvcnRzOworICAgIH0KKworICAg
IHJldHVybiBGQUxTRQorfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQoreworICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0
ZT4gdWlEZWxlZ2F0ZTsKKyAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgm
dWlEZWxlZ2F0ZSkpKSB7CisgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU0PiB1
aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVsZWdhdGUpOworICAgICAgICBDT01QdHI8SURP
TUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNl
KGVsZW1lbnQpKTsKKyAgICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUNDRUVERUQo
dWlEZWxlZ2F0ZVByaXZhdGU0LT5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGRvbUVsZW1lbnQu
Z2V0KCkpKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9IAorfQorCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7Cisg
ICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOworICAgIGlmIChTVUNDRUVERUQo
bV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKKyAgICAgICAgQ09NUHRyPElX
ZWJVSURlbGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChRdWVyeSwgdWlEZWxlZ2F0
ZSk7CisgICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9N
RWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOworICAgICAgICBpZiAodWlEZWxlZ2F0
ZVByaXZhdGU0ICYmIFNVQ0NFRURFRCh1aURlbGVnYXRlUHJpdmF0ZTQtPmV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChkb21FbGVtZW50LmdldCgpKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
fQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYWRmYzg2OWJmOTZlOGM5N2UwYTgxYTU2MTUxNmZlMGUz
OTMyZGVmMS4uZjE0N2QyZGZkZDVhZGYxNWNmZGMwZTViZmZkNjQ1OGI2YjU1Yjc0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTE3Nyw2ICsxNzcsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQq
KSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtl
eWJvYXJkKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJD
b3JlOjpFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dChXZWJDb3JlOjpFbGVtZW50Kik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBDT01QdHI8SVdl
YlVJRGVsZWdhdGU+IHVpRGVsZWdhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCA5ZGQxNGVkZDNlNDRhZGQyNmE1NGNlZTcwY2QwYzE2
NDFiNDlmZGMxLi44OTk2OWQ0MjczNmI2ZjY0MGU2MzFiYzRlY2YwNTg4YzJmMTI4M2M1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTUwLDMg
KzE1MCw1IEBACiAjZGVmaW5lIFdlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZFByZWZlcmVuY2VL
ZXkgIldlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZCIKIAogI2RlZmluZSBXZWJLaXRNZW1vcnlJ
bmZvRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdE1lbW9yeUluZm9FbmFibGVkIgorCisjZGVm
aW5lIFdlYktpdEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0RnVsbFNjcmVl
bkVuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggMDY4NmMyYjMx
YzJjMzRlY2NkNTIyZDhiOWQyODNlYWVmY2QwOGVmZC4uMjYwNTdhMGMwODZlMzRiZjdhMWU0NTkz
NWEyMzVlMWUwZGM4ZDBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVy
ZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAt
MTUyOCw2ICsxNTI4LDI2IEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldE1lbW9yeUluZm9F
bmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBXZWJQ
cmVmZXJlbmNlczo6aXNGdWxsU2NyZWVuRW5hYmxlZChCT09MKiBlbmFibGVkKQoreworI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShDRlNU
UihXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZFByZWZlcmVuY2VLZXkpKTsKKyAgICByZXR1cm4gU19P
SzsKKyNlbHNlCisgICAgcmV0dXJuIEVfTk9JTVBMOworI2VuZGlmCit9CisKK0hSRVNVTFQgV2Vi
UHJlZmVyZW5jZXM6OnNldEZ1bGxTY3JlZW5FbmFibGVkKEJPT0wgZW5hYmxlZCkKK3sKKyNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgc2V0Qm9vbFZhbHVlKENGU1RSKFdlYktpdEZ1bGxT
Y3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleSksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOwor
I2Vsc2UKKyAgICByZXR1cm4gRV9OT0lNUEw7CisjZW5kaWYKK30KKwogdm9pZCBXZWJQcmVmZXJl
bmNlczo6d2lsbEFkZFRvV2ViVmlldygpCiB7CiAgICAgKyttX251bVdlYlZpZXdzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggODk5NjAzNTc4ZjNjNmI3Y2QzOWE2ODU2M2Y2MmM3
ZTZhNWI2NWU5Yi4uM2IyOTQwZDdkMTE5ODI3NWI4ZjMzMGVjM2Q3N2Y4YTBhN2ZlMTNhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC00MzIsNiArNDMyLDkgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBsb2Fkc1NpdGVJY29uc0lnbm9y
aW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVm
ZXJlbmNlKEJPT0wpOwogCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNl
dEZ1bGxTY3JlZW5FbmFibGVkKEJPT0wpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBpc0Z1bGxTY3JlZW5FbmFibGVkKEJPT0wqKTsKKwogICAgIC8vIFdlYlByZWZlcmVu
Y2VzCiAKICAgICAvLyBUaGlzIG1ldGhvZCBhY2Nlc3NlcyBhIGRpZmZlcmVudCBwcmVmZXJlbmNl
IGtleSB0aGFuIGRldmVsb3BlckV4dHJhc0VuYWJsZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmZiNTI3ZDMz
MDU1N2MwMmZkZGM5NzljNjY1ZjI0NGI2NDM0NGM5Yy4uMDg2NzYxMmRlNmFmNTg3ZTI4NTBjYzEw
ZmM5Yzk1ZmNiZGJiZmY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDExLTA0LTI4
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBGVUxMU0NSRUVOX0FQSSBvbiBX
aW5kb3dzLCBQYXJ0IDE6IFN0dWJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01OTc3OAorCisgICAgICAgIEFkZCBXaW5kb3dzIHNwZWNpZmljIHN0dWJz
IGZvciBXZWJLaXQyIGZ1bGwgc2NyZWVuIEFQSXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2lu
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZW50ZXJGdWxsU2NyZWVuKTogQWRkZWQgc3R1
Yi4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxT
Y3JlZW4pOiBBZGRlZCBzdHViLgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5OjpiZWdhbkVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbik6IEFkZGVkIHN0dWIuCisgICAg
ICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmZpbmlzaGVkRW50ZXJGdWxs
U2NyZWVuQW5pbWF0aW9uKTogQWRkZWQgc3R1Yi4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eTo6YmVnYW5FeGl0RnVsbFNjcmVlbkFuaW1hdGlvbik6IEFkZGVkIHN0
dWIuCisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmZpbmlzaGVk
RXhpdEZ1bGxTY3JlZW5BbmltYXRpb24pOiBBZGRlZCBzdHViLgorICAgICAgICAoV2ViS2l0OjpX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KTogQWRkZWQgc3R1Yi4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTogQWRkZWQgc3R1Yi4KKyAgICAgICAg
KFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6Z2V0RnVsbFNjcmVlblJlY3QpOiBB
ZGRlZCBzdHViLgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi93aW4vV2ViRnVsbFNj
cmVlbk1hbmFnZXJXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVl
bk1hbmFnZXI6OmNyZWF0ZSk6IEFkZGVkLiBSZXR1cm5zIGEgV2ViRnVsbFNjcmVlbk1hbmFnZXJX
aW4uCisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luOjpjcmVhdGUpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW46OldlYkZ1bGxT
Y3JlZW5NYW5hZ2VyV2luKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5N
YW5hZ2VyV2luOjp+V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4pOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW46OnNldFJvb3RGdWxsU2NyZWVuTGF5ZXIpOiBB
ZGRlZCBzdHViLgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlcldpbjo6YmVn
aW5FbnRlckZ1bGxTY3JlZW5BbmltYXRpb24pOiBBZGRlZCBzdHViLgorICAgICAgICAoV2ViS2l0
OjpXZWJGdWxsU2NyZWVuTWFuYWdlcldpbjo6YmVnaW5FeGl0RnVsbFNjcmVlbkFuaW1hdGlvbik6
IEFkZGVkIHN0dWIuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL3dpbi9XZWJGdWxs
U2NyZWVuTWFuYWdlcldpbi5oOiBBZGRlZC4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6
IEFkZGVkIG5ldyBjbGFzc2VzLgorCiAyMDExLTA0LTI4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5V2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YmRhNGI5NjQzMGI5MTY5NDQxYzk5OGQyOWNi
M2VjYzYyNjNiYjAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3dpbi9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5V2luLmNwcApAQCAtMCwwICsxLDEwMCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5LmgiCisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisKKyNpbmNsdWRl
IDxXZWJDb3JlL0ludFJlY3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eTo6ZW50ZXJGdWxsU2NyZWVuKCkKK3sKKyAgICBpZiAoIW1fd2Vi
VmlldykKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKK30KKwordm9p
ZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpleGl0RnVsbFNjcmVlbigpCit7CisgICAgaWYg
KCFtX3dlYlZpZXcpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50Cit9
CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5FbnRlckZ1bGxTY3JlZW5B
bmltYXRpb24oKQoreworICAgIGlmICghbV93ZWJWaWV3KQorICAgICAgICByZXR1cm47CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudAorfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6
OmZpbmlzaGVkRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uKGJvb2wgY29tcGxldGVkKQoreworICAg
IGlmICghbV93ZWJWaWV3KQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IEltcGxlbWVu
dAorfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmJlZ2FuRXhpdEZ1bGxTY3Jl
ZW5BbmltYXRpb24oKQoreworICAgIGlmICghbV93ZWJWaWV3KQorICAgICAgICByZXR1cm47Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudAorfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OmZpbmlzaGVkRXhpdEZ1bGxTY3JlZW5BbmltYXRpb24oYm9vbCBjb21wbGV0ZWQpCit7Cisg
ICAgaWYgKCFtX3dlYlZpZXcpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50Cit9CisgICAgCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgY29udGV4dCkKK3sK
KyAgICBpZiAoIW1fd2ViVmlldykKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpleGl0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUoKQoreworICAgIGlmICghbV93ZWJWaWV3KQorICAgICAgICByZXR1
cm47CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHk6OmdldEZ1bGxTY3JlZW5SZWN0KFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCit7Cisg
ICAgaWYgKCFtX3dlYlZpZXcpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi93aW4vV2ViRnVsbFNjcmVlbk1hbmFn
ZXJXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL3dpbi9XZWJG
dWxsU2NyZWVuTWFuYWdlcldpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdhOGQ5MzQxZDUyOTAwNmJjZWM2
NmEwOThlMzQyMzgwYjY2Y2QwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRnVsbFNjcmVlbi93aW4vV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4uY3BwCkBAIC0w
LDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkZ1bGxTY3JlZW5NYW5hZ2VyV2luLmgiCisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisK
KyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitQYXNzUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6
Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
V2luOjpjcmVhdGUocGFnZSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXJX
aW4+IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luOjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luKHBhZ2UpKTsKK30K
KworV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW46OldlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luKFdlYlBh
Z2UqIHBhZ2UpCisgICAgOiBXZWJGdWxsU2NyZWVuTWFuYWdlcihwYWdlKQoreworfQorCitXZWJG
dWxsU2NyZWVuTWFuYWdlcldpbjo6fldlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luKCkKK3sKK30KKwor
dm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcldpbjo6c2V0Um9vdEZ1bGxTY3JlZW5MYXllcihXZWJD
b3JlOjpHcmFwaGljc0xheWVyKikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50Cit9CisKK3Zv
aWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW46OmJlZ2luRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9u
KGZsb2F0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKK30KKwordm9pZCBXZWJGdWxsU2Ny
ZWVuTWFuYWdlcldpbjo6YmVnaW5FeGl0RnVsbFNjcmVlbkFuaW1hdGlvbihmbG9hdCkKK3sKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL3dpbi9XZWJGdWxsU2NyZWVuTWFuYWdlcldpbi5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL3dpbi9XZWJGdWxsU2NyZWVuTWFuYWdl
cldpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ5YWY0ZDlhMGY4YzMzNDNiYWFhOWEwM2M3ZWZmMTg4ZmExNjlk
NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4vd2luL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW5faAorI2RlZmluZSBXZWJGdWxs
U2NyZWVuTWFuYWdlcldpbl9oCisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisKKyNpbmNs
dWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJGdWxsU2NyZWVuTWFuYWdlcldp
biA6IHB1YmxpYyBXZWJGdWxsU2NyZWVuTWFuYWdlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4+IGNyZWF0ZShXZWJQYWdlKik7CisKK3By
aXZhdGU6CisgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4oV2ViUGFnZSopOworICAgIHZpcnR1
YWwgfldlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Um9v
dEZ1bGxTY3JlZW5MYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdmlydHVhbCB2
b2lkIGJlZ2luRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uKGZsb2F0IGR1cmF0aW9uKTsKKyAgICB2
aXJ0dWFsIHZvaWQgYmVnaW5FeGl0RnVsbFNjcmVlbkFuaW1hdGlvbihmbG9hdCBkdXJhdGlvbik7
Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisKKyNlbmRpZiAv
LyBXZWJGdWxsU2NyZWVuTWFuYWdlcldpbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5k
ZXggMjgyZjFmMTdlODM1ODMyZTE2ZDZmMzViOTBiY2IxODQ1NTdkZDFmZS4uOTIyMjAxNTk2MzYx
MTRjMmFhYWEzOWQ5N2Y0MGEyMjAzMGQyNGQ2MyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJv
agpAQCAtMjE2Niw2ICsyMTY2LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEluamVjdGVk
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxJ
bmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVu
ZGxlXEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAiCiAJCQkJCT4KIAkJCQk8L0Zp
bGU+CkBAIC0yNDg2LDYgKzI0OTQsMzAgQEAKIAkJCQkJPC9GaWx0ZXI+CiAJCQkJPC9GaWx0ZXI+
CiAJCQk8L0ZpbHRlcj4KKwkJCTxGaWx0ZXIKKwkJCQlOYW1lPSJGdWxsU2NyZWVuIgorCQkJCT4K
KwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcRnVsbFNjcmVlblxX
ZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEZ1bGxTY3JlZW5cV2ViRnVsbFNjcmVl
bk1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsdGVyCisJCQkJCU5hbWU9
IndpbiIKKwkJCQkJPgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9j
ZXNzXEZ1bGxTY3JlZW5cd2luXFdlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luLmNwcCIKKwkJCQkJCT4K
KwkJCQkJPC9GaWxlPgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9j
ZXNzXEZ1bGxTY3JlZW5cd2luXFdlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luLmgiCisJCQkJCQk+CisJ
CQkJCTwvRmlsZT4KKwkJCQk8L0ZpbHRlcj4KKwkJCTwvRmlsdGVyPgogCQk8L0ZpbHRlcj4KIAkJ
PEZpbHRlcgogCQkJTmFtZT0iVUlQcm9jZXNzIgpAQCAtMzQzNCw2ICszNDY2LDEwIEBACiAJCQkJ
CT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nl
c3Ncd2luXFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlXaW4uY3BwIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXHdpblxXZWJH
cmFtbWFyRGV0YWlsLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91651</attachid>
            <date>2011-04-29 01:27:28 -0700</date>
            <delta_ts>2011-04-29 18:40:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59778-20110429012727.patch</filename>
            <type>text/plain</type>
            <size>20618</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODUyMzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAwNDlhYzU5MmI4
YzY5ZTFmNjJmMGY1ZTJjNWNjYzQ2MzRlNGVlZDU2Li5hMTg5OWY5ZDA5MmM1Mzk5NDU2ZDFmYTRl
MzZmZWQ5YzUwZGU1ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEt
MDQtMjggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEZVTExTQ1JFRU5fQVBJ
IG9uIFdpbmRvd3MsIFBhcnQgMTogU3R1YnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU5Nzc4CisKKyAgICAgICAgQ3JlYXRlIGFsbCB0aGUgc3R1YnMg
bmVjZXNzYXJ5IHRvIGZvciBlbmFibGluZyBGVUxMU0NSRUVOX0FQSQorICAgICAgICBvbiBXaW5k
b3dzLiBUaGlzIGluY2x1ZGVzIHRoZSBDT00gaW50ZXJmYWNlcyBmb3IgcHJlZmVyZW5jZXMgYW5k
CisgICAgICAgIGZvciBvdmVycmlkaW5nIGZ1bGwgc2NyZWVuIGJlaGF2aW9yIGluIGEgVUkgRGVs
ZWdhdGUuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRs
OiBBZGQgZnVuY2l0b25zIGZvciBlbmFibGluZworICAgICAgICAgICAgZnVsbCBzY3JlZW4gcHJl
ZmVyZW5jZS4KKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJVSURlbGVnYXRlUHJpdmF0ZS5pZGw6
IEFkZCBmdW5jdGlvbnMgZm9yIG92ZXJyaWRpbmcKKyAgICAgICAgICAgIGZ1bGwgc2NyZWVuIGJl
aGF2aW9yLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgV2ViS2l0RnVs
bFNjcmVlbkVuYWJsZSBrZXkuCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAg
ICAoV2ViUHJlZmVyZW5jZXM6OmlzRnVsbFNjcmVlbkVuYWJsZWQpOiBBZGRlZC4gSW1wbGVtZW50
cyBmdW5jdGlvbgorICAgICAgICAgICBkZWZpbmVkIGluIElXZWJVSURlbGVnYXRlUHJpdmF0ZS4K
KyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRGdWxsU2NyZWVuRW5hYmxlZCk6IERpdHRvLgor
ICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6CisKIDIwMTEtMDQtMjYgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmlkbAppbmRleCBlM2ZhYmQzZTllN2UzMWZlZTZkMDI0MjhlMjNmYmM4NmY0MWY0
NDU0Li4yN2NlODJmZTlkMDkxMDJmOWY5OWM4MzBhN2M1OTg3ZTI5ZWI2ZGIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRs
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZS5pZGwKQEAgLTEyNCw0ICsxMjQsNyBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZSA6IElVbmtub3duCiAKICAgICBIUkVTVUxUIHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFn
ZUxvYWRpbmdQcmVmZXJlbmNlKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIGxvYWRz
U2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKFtvdXQsIHJldHZhbF0gQk9P
TCogZW5hYmxlZCk7CisKKyAgICBIUkVTVUxUIHNldEZ1bGxTY3JlZW5FbmFibGVkKFtpbl0gQk9P
TCBlbmFibGVkKTsKKyAgICBIUkVTVUxUIGlzRnVsbFNjcmVlbkVuYWJsZWQoW291dCwgcmV0dmFs
XSBCT09MKiBlbmFibGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlVJRGVsZWdhdGVQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlVJRGVsZWdhdGVQcml2YXRlLmlkbAppbmRleCAxNDMxZGIyMzlhNmZjOGU4NTA0
NWI5NzYxZTUzOGNlMTNjMTQ5YWRiLi5kYTMwOGM1MDMxODBjYTU0NDljNjdlZGM4NmZhZDM4MDc0
ZTg1NDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJVSURl
bGVnYXRlUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2Vi
VUlEZWxlZ2F0ZVByaXZhdGUuaWRsCkBAIC0xMTAsMyArMTEwLDE2IEBAIGludGVyZmFjZSBJV2Vi
VUlEZWxlZ2F0ZVByaXZhdGUzIDogSVdlYlVJRGVsZWdhdGVQcml2YXRlMgogewogICAgIEhSRVNV
TFQgZGlkUHJlc3NNaXNzaW5nUGx1Z2luQnV0dG9uKFtpbl0gSURPTUVsZW1lbnQqKTsKIH0KKwor
WworICAgIG9iamVjdCwKKyAgICBvbGVhdXRvbWF0aW9uLAorICAgIHV1aWQoOTQ0ZThlNDYtNmQ2
My00NTBmLWIzODEtYzVkNjhiODBiNzI3KSwKKyAgICBwb2ludGVyX2RlZmF1bHQodW5pcXVlKQor
XQoraW50ZXJmYWNlIElXZWJVSURlbGVnYXRlUHJpdmF0ZTQgOiBJV2ViVUlEZWxlZ2F0ZVByaXZh
dGUzCit7CisgICAgSFJFU1VMVCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KFtpbl0gSURP
TUVsZW1lbnQqLCBbaW5dIEJPT0wgd2l0aEtleWJvYXJkLCBbb3V0LCByZXR2YWxdIEJPT0wqIHN1
cHBvcnRzKTsKKyAgICBIUkVTVUxUIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoW2luXSBJRE9N
RWxlbWVudCopOworICAgIEhSRVNVTFQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFtpbl0gSURP
TUVsZW1lbnQqKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDE5MzVjNWZhMTIxMTcwOWYwMmMxMmE3YjU5MWVl
ZTQzNTgxMThhYTYuLjM2NmJjOWMzZjRlYjdjOTliOTRiNzhlYTA3NjIwYzAxODhlNDM1ZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtODc3LDMgKzg3Nyw0MiBAQCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4g
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZQogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKGNsaWVudCkpOwogfQogCisj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCogZWxlbWVudCwgYm9vbCB3aXRoS2V5
Ym9hcmQpCit7CisgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOworICAgIGlm
IChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKKyAgICAg
ICAgQ09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChRdWVy
eSwgdWlEZWxlZ2F0ZSk7CisgICAgICAgIEJPT0wgc3VwcG9ydHMgPSBGQUxTRTsKKyAgICAgICAg
Q09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVh
dGVJbnN0YW5jZShjb25zdF9jYXN0PEVsZW1lbnQqPihlbGVtZW50KSkpOworCisgICAgICAgIGlm
ICh1aURlbGVnYXRlUHJpdmF0ZTQgJiYgU1VDQ0VFREVEKHVpRGVsZWdhdGVQcml2YXRlNC0+c3Vw
cG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChkb21FbGVtZW50LmdldCgpLCB3aXRoS2V5Ym9hcmQs
ICZzdXBwb3J0cykpKQorICAgICAgICAgICAgcmV0dXJuIHN1cHBvcnRzOworICAgIH0KKworICAg
IHJldHVybiBGQUxTRQorfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQoreworICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0
ZT4gdWlEZWxlZ2F0ZTsKKyAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgm
dWlEZWxlZ2F0ZSkpKSB7CisgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU0PiB1
aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVsZWdhdGUpOworICAgICAgICBDT01QdHI8SURP
TUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNl
KGVsZW1lbnQpKTsKKyAgICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUNDRUVERUQo
dWlEZWxlZ2F0ZVByaXZhdGU0LT5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGRvbUVsZW1lbnQu
Z2V0KCkpKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9IAorfQorCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7Cisg
ICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOworICAgIGlmIChTVUNDRUVERUQo
bV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKKyAgICAgICAgQ09NUHRyPElX
ZWJVSURlbGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChRdWVyeSwgdWlEZWxlZ2F0
ZSk7CisgICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9N
RWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOworICAgICAgICBpZiAodWlEZWxlZ2F0
ZVByaXZhdGU0ICYmIFNVQ0NFRURFRCh1aURlbGVnYXRlUHJpdmF0ZTQtPmV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChkb21FbGVtZW50LmdldCgpKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
fQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYWRmYzg2OWJmOTZlOGM5N2UwYTgxYTU2MTUxNmZlMGUz
OTMyZGVmMS4uZjE0N2QyZGZkZDVhZGYxNWNmZGMwZTViZmZkNjQ1OGI2YjU1Yjc0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTE3Nyw2ICsxNzcsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQq
KSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtl
eWJvYXJkKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJD
b3JlOjpFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dChXZWJDb3JlOjpFbGVtZW50Kik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBDT01QdHI8SVdl
YlVJRGVsZWdhdGU+IHVpRGVsZWdhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCA5ZGQxNGVkZDNlNDRhZGQyNmE1NGNlZTcwY2QwYzE2
NDFiNDlmZGMxLi44OTk2OWQ0MjczNmI2ZjY0MGU2MzFiYzRlY2YwNTg4YzJmMTI4M2M1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTUwLDMg
KzE1MCw1IEBACiAjZGVmaW5lIFdlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZFByZWZlcmVuY2VL
ZXkgIldlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZCIKIAogI2RlZmluZSBXZWJLaXRNZW1vcnlJ
bmZvRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdE1lbW9yeUluZm9FbmFibGVkIgorCisjZGVm
aW5lIFdlYktpdEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0RnVsbFNjcmVl
bkVuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggMDY4NmMyYjMx
YzJjMzRlY2NkNTIyZDhiOWQyODNlYWVmY2QwOGVmZC4uYmU4ZWMwZmMyNzQzZDUwMzMxYjMxZGIz
ZjUwMTExZWY3NmU2NjliZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVy
ZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAt
MTUyOCw2ICsxNTI4LDI2IEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldE1lbW9yeUluZm9F
bmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBXZWJQ
cmVmZXJlbmNlczo6aXNGdWxsU2NyZWVuRW5hYmxlZChCT09MKiBlbmFibGVkKQoreworI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShDRlNU
UihXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZFByZWZlcmVuY2VLZXkpKTsKKyAgICByZXR1cm4gU19P
SzsKKyNlbHNlCisgICAgcmV0dXJuIEVfTk9USU1QTDsKKyNlbmRpZgorfQorCitIUkVTVUxUIFdl
YlByZWZlcmVuY2VzOjpzZXRGdWxsU2NyZWVuRW5hYmxlZChCT09MIGVuYWJsZWQpCit7CisjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIHNldEJvb2xWYWx1ZShDRlNUUihXZWJLaXRGdWxs
U2NyZWVuRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19PSzsK
KyNlbHNlCisgICAgcmV0dXJuIEVfTk9USU1QTDsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlByZWZl
cmVuY2VzOjp3aWxsQWRkVG9XZWJWaWV3KCkKIHsKICAgICArK21fbnVtV2ViVmlld3M7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktp
dC93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCA4OTk2MDM1NzhmM2M2YjdjZDM5YTY4NTYzZjYy
YzdlNmE1YjY1ZTliLi4zYjI5NDBkN2QxMTk4Mjc1YjhmMzMwZWMzZDc3ZjhhMGE3ZmUxM2FjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTQzMiw2ICs0MzIsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGxvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgc2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1By
ZWZlcmVuY2UoQk9PTCk7CiAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
c2V0RnVsbFNjcmVlbkVuYWJsZWQoQk9PTCk7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIGlzRnVsbFNjcmVlbkVuYWJsZWQoQk9PTCopOworCiAgICAgLy8gV2ViUHJlZmVy
ZW5jZXMKIAogICAgIC8vIFRoaXMgbWV0aG9kIGFjY2Vzc2VzIGEgZGlmZmVyZW50IHByZWZlcmVu
Y2Uga2V5IHRoYW4gZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyZmI1Mjdk
MzMwNTU3YzAyZmRkYzk3OWM2NjVmMjQ0YjY0MzQ0YzljLi4wODY3NjEyZGU2YWY1ODdlMjg1MGNj
MTBmYzljOTVmY2JkYmJmZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDQt
MjggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEZVTExTQ1JFRU5fQVBJIG9u
IFdpbmRvd3MsIFBhcnQgMTogU3R1YnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU5Nzc4CisKKyAgICAgICAgQWRkIFdpbmRvd3Mgc3BlY2lmaWMgc3R1
YnMgZm9yIFdlYktpdDIgZnVsbCBzY3JlZW4gQVBJcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy93
aW4vV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eVdpbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxTY3JlZW4pOiBBZGRlZCBz
dHViLgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpleGl0RnVs
bFNjcmVlbik6IEFkZGVkIHN0dWIuCisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHk6OmJlZ2FuRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uKTogQWRkZWQgc3R1Yi4KKyAg
ICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZmluaXNoZWRFbnRlckZ1
bGxTY3JlZW5BbmltYXRpb24pOiBBZGRlZCBzdHViLgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uKTogQWRkZWQg
c3R1Yi4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZmluaXNo
ZWRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbik6IEFkZGVkIHN0dWIuCisgICAgICAgIChXZWJLaXQ6
OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUpOiBBZGRlZCBzdHViLgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOiBBZGRlZCBzdHViLgorICAgICAg
ICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpnZXRGdWxsU2NyZWVuUmVjdCk6
IEFkZGVkIHN0dWIuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL3dpbi9XZWJGdWxs
U2NyZWVuTWFuYWdlcldpbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2Ny
ZWVuTWFuYWdlcjo6Y3JlYXRlKTogQWRkZWQuIFJldHVybnMgYSBXZWJGdWxsU2NyZWVuTWFuYWdl
cldpbi4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW46OmNyZWF0ZSk6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlcldpbjo6V2ViRnVs
bFNjcmVlbk1hbmFnZXJXaW4pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVl
bk1hbmFnZXJXaW46On5XZWJGdWxsU2NyZWVuTWFuYWdlcldpbik6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlcldpbjo6c2V0Um9vdEZ1bGxTY3JlZW5MYXllcik6
IEFkZGVkIHN0dWIuCisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luOjpi
ZWdpbkVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbik6IEFkZGVkIHN0dWIuCisgICAgICAgIChXZWJL
aXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luOjpiZWdpbkV4aXRGdWxsU2NyZWVuQW5pbWF0aW9u
KTogQWRkZWQgc3R1Yi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vd2luL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyV2luLmg6IEFkZGVkLgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJv
ajogQWRkZWQgbmV3IGNsYXNzZXMuCisKIDIwMTEtMDQtMjggIFhhbiBMb3BleiAgPHhsb3BlekBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHlXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiZGE0Yjk2NDMwYjkxNjk0NDFjOTk4ZDI5
Y2IzZWNjNjI2M2JiMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3Mvd2luL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlXaW4uY3BwCkBAIC0wLDAgKzEsMTAwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkuaCIKKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKworI2luY2x1
ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxTY3JlZW4oKQoreworICAgIGlmICghbV93
ZWJWaWV3KQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorfQorCit2
b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsU2NyZWVuKCkKK3sKKyAgICBp
ZiAoIW1fd2ViVmlldykKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQK
K30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpiZWdhbkVudGVyRnVsbFNjcmVl
bkFuaW1hdGlvbigpCit7CisgICAgaWYgKCFtX3dlYlZpZXcpCisgICAgICAgIHJldHVybjsKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6ZmluaXNoZWRFbnRlckZ1bGxTY3JlZW5BbmltYXRpb24oYm9vbCBjb21wbGV0ZWQpCit7Cisg
ICAgaWYgKCFtX3dlYlZpZXcpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6YmVnYW5FeGl0RnVsbFNj
cmVlbkFuaW1hdGlvbigpCit7CisgICAgaWYgKCFtX3dlYlZpZXcpCisgICAgICAgIHJldHVybjsK
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eTo6ZmluaXNoZWRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbihib29sIGNvbXBsZXRlZCkKK3sK
KyAgICBpZiAoIW1fd2ViVmlldykKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQKK30KKyAgICAKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZW50ZXJBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBjb250ZXh0KQor
eworICAgIGlmICghbV93ZWJWaWV3KQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IElt
cGxlbWVudAorfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSgpCit7CisgICAgaWYgKCFtX3dlYlZpZXcpCisgICAgICAgIHJl
dHVybjsKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eTo6Z2V0RnVsbFNjcmVlblJlY3QoV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKK3sK
KyAgICBpZiAoIW1fd2ViVmlldykKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL3dpbi9XZWJGdWxsU2NyZWVuTWFu
YWdlcldpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vd2luL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2E4ZDkzNDFkNTI5MDA2YmNl
YzY2YTA5OGUzNDIzODBiNjZjZDBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL3dpbi9XZWJGdWxsU2NyZWVuTWFuYWdlcldpbi5jcHAKQEAg
LTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4uaCIKKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
KworI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCisjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVy
ZmFjZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1Bhc3NSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
OjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKK3sKKyAgICByZXR1cm4gV2ViRnVsbFNjcmVlbk1hbmFn
ZXJXaW46OmNyZWF0ZShwYWdlKTsKK30KKworUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdl
cldpbj4gV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW46OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4ocGFnZSkpOwor
fQorCitXZWJGdWxsU2NyZWVuTWFuYWdlcldpbjo6V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4oV2Vi
UGFnZSogcGFnZSkKKyAgICA6IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKHBhZ2UpCit7Cit9CisKK1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyV2luOjp+V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4oKQoreworfQor
Cit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luOjpzZXRSb290RnVsbFNjcmVlbkxheWVyKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKK30KKwor
dm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcldpbjo6YmVnaW5FbnRlckZ1bGxTY3JlZW5BbmltYXRp
b24oZmxvYXQpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorfQorCit2b2lkIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyV2luOjpiZWdpbkV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uKGZsb2F0KQorewor
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vd2luL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vd2luL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyV2luLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDlhZjRkOWEwZjhjMzM0M2JhYWE5YTAzYzdlZmYxODhmYTE2
OWQ1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNj
cmVlbi93aW4vV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4uaApAQCAtMCwwICsxLDU0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJGdWxsU2NyZWVuTWFuYWdlcldpbl9oCisjZGVmaW5lIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyV2luX2gKKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKworI2lu
Y2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJl
Y3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
V2luIDogcHVibGljIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcldpbj4gY3JlYXRlKFdlYlBhZ2UqKTsKKwor
cHJpdmF0ZToKKyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlcldpbihXZWJQYWdlKik7CisgICAgdmly
dHVhbCB+V2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4oKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRS
b290RnVsbFNjcmVlbkxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgYmVnaW5FbnRlckZ1bGxTY3JlZW5BbmltYXRpb24oZmxvYXQgZHVyYXRpb24pOworICAg
IHZpcnR1YWwgdm9pZCBiZWdpbkV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uKGZsb2F0IGR1cmF0aW9u
KTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKworI2VuZGlm
IC8vIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyV2luX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyLnZjcHJvaiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpp
bmRleCAyODJmMWYxN2U4MzU4MzJlMTZkNmYzNWI5MGJjYjE4NDU1N2RkMWZlLi45MjIyMDE1OTYz
NjExNGMyYWFhYTM5ZDk3ZjQwYTIyMDMwZDI0ZDYzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNw
cm9qCkBAIC0yMTY2LDYgKzIxNjYsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcSW5qZWN0
ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJ
CQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxl
XEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRC
dW5kbGVcSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcCIKIAkJCQkJPgogCQkJCTwv
RmlsZT4KQEAgLTI0ODYsNiArMjQ5NCwzMCBAQAogCQkJCQk8L0ZpbHRlcj4KIAkJCQk8L0ZpbHRl
cj4KIAkJCTwvRmlsdGVyPgorCQkJPEZpbHRlcgorCQkJCU5hbWU9IkZ1bGxTY3JlZW4iCisJCQkJ
PgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xGdWxsU2NyZWVu
XFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcRnVsbFNjcmVlblxXZWJGdWxsU2Ny
ZWVuTWFuYWdlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWx0ZXIKKwkJCQkJTmFt
ZT0id2luIgorCQkJCQk+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlBy
b2Nlc3NcRnVsbFNjcmVlblx3aW5cV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4uY3BwIgorCQkJCQkJ
PgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlBy
b2Nlc3NcRnVsbFNjcmVlblx3aW5cV2ViRnVsbFNjcmVlbk1hbmFnZXJXaW4uaCIKKwkJCQkJCT4K
KwkJCQkJPC9GaWxlPgorCQkJCTwvRmlsdGVyPgorCQkJPC9GaWx0ZXI+CiAJCTwvRmlsdGVyPgog
CQk8RmlsdGVyCiAJCQlOYW1lPSJVSVByb2Nlc3MiCkBAIC0zNDM0LDYgKzM0NjYsMTAgQEAKIAkJ
CQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1x3aW5cV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eVdpbi5jcHAiCisJCQkJCT4KKwkJCQk8
L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3Ncd2luXFdl
YkdyYW1tYXJEZXRhaWwuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgo=
</data>
<flag name="review"
          id="84509"
          type_id="1"
          status="+"
          setter="jhoneycutt"
    />
          </attachment>
      

    </bug>

</bugzilla>