<?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>29260</bug_id>
          
          <creation_ts>2009-09-14 15:42:39 -0700</creation_ts>
          <short_desc>Add ENABLE(INSPECTOR)</short_desc>
          <delta_ts>2009-09-16 12:51:43 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Greg Bolsinga">bolsinga</reporter>
          <assigned_to name="Greg Bolsinga">bolsinga</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>147215</commentid>
    <comment_count>0</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-14 15:42:39 -0700</bug_when>
    <thetext>Wrap Inspector code in an ENABLE wrapper. This is for platforms (such as
iPhone) that do not support the Inspector.

&lt;rdar://problem/6732605&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147217</commentid>
    <comment_count>1</comment_count>
      <attachid>39577</attachid>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-14 15:44:47 -0700</bug_when>
    <thetext>Created attachment 39577
This patch implements the needed changes

This will compile and link Mac OS X without Inspector support.

Of course Mac OS X (and many other platforms) will never ship in this
configuration, so should the Mac code even be conditionally compiled for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147369</commentid>
    <comment_count>2</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-15 13:33:06 -0700</bug_when>
    <thetext>This is being conditionalized because it is turned off on iPhone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147570</commentid>
    <comment_count>3</comment_count>
      <attachid>39577</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-09-16 11:56:35 -0700</bug_when>
    <thetext>Comment on attachment 39577
This patch implements the needed changes

&gt; diff --git a/WebCore/bindings/js/JSInspectedObjectWrapper.cpp b/WebCore/bindings/js/JSInspectedObjectWrapper.cpp
&gt; index fff7aee..dc3e5dc 100644
&gt; --- a/WebCore/bindings/js/JSInspectedObjectWrapper.cpp
&gt; +++ b/WebCore/bindings/js/JSInspectedObjectWrapper.cpp
&gt; @@ -26,6 +26,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;JSInspectedObjectWrapper.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;JSInspectorCallbackWrapper.h&quot;
&gt;  #include &lt;runtime/JSGlobalObject.h&gt;
&gt;  #include &lt;wtf/StdLibExtras.h&gt;
&gt; @@ -125,3 +126,4 @@ JSValue JSInspectedObjectWrapper::prepareIncomingValue(ExecState*, JSValue value
&gt;  }
&gt;  
&gt;  } // namespace WebCore
&gt; +#endif // ENABLE(INSPECTOR)

Please add a blank line after the &quot;#if ENABLE(..&quot; statement and before the &quot;#endif // ...&quot; statement.

&gt; diff --git a/WebCore/bindings/js/JSInspectorBackendCustom.cpp b/WebCore/bindings/js/JSInspectorBackendCustom.cpp
&gt; index 782ffab..f62aecf 100644
&gt; --- a/WebCore/bindings/js/JSInspectorBackendCustom.cpp
&gt; +++ b/WebCore/bindings/js/JSInspectorBackendCustom.cpp
&gt; @@ -33,6 +33,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;JSInspectorBackend.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;Console.h&quot;
&gt;  #if ENABLE(DATABASE)
&gt;  #include &quot;Database.h&quot;
&gt; @@ -364,3 +365,4 @@ JSValue JSInspectorBackend::selectDOMStorage(ExecState*, const ArgList&amp; args)
&gt;  #endif
&gt;  
&gt;  } // namespace WebCore
&gt; +#endif // ENABLE(INSPECTOR)

Ditto.

&gt; diff --git a/WebCore/bindings/js/JSInspectorCallbackWrapper.cpp b/WebCore/bindings/js/JSInspectorCallbackWrapper.cpp
&gt; index 5c3cd29..e69aeaa 100644
&gt; --- a/WebCore/bindings/js/JSInspectorCallbackWrapper.cpp
&gt; +++ b/WebCore/bindings/js/JSInspectorCallbackWrapper.cpp
&gt; @@ -26,6 +26,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;JSInspectorCallbackWrapper.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;JSInspectedObjectWrapper.h&quot;
&gt;  #include &lt;wtf/StdLibExtras.h&gt;
&gt;  
&gt; @@ -105,3 +106,4 @@ JSValue JSInspectorCallbackWrapper::prepareIncomingValue(ExecState* unwrappedExe
&gt;  }
&gt;  
&gt;  } // namespace WebCore
&gt; +#endif // ENABLE(INSPECTOR)

Ditto.

&gt; diff --git a/WebCore/bindings/js/ScriptObjectQuarantine.cpp b/WebCore/bindings/js/ScriptObjectQuarantine.cpp
&gt; index f96f89e..10a61c5 100644
&gt; --- a/WebCore/bindings/js/ScriptObjectQuarantine.cpp
&gt; +++ b/WebCore/bindings/js/ScriptObjectQuarantine.cpp
&gt; @@ -31,6 +31,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;ScriptObjectQuarantine.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;Document.h&quot;
&gt;  #include &quot;Frame.h&quot;
&gt;  #include &quot;JSDOMBinding.h&quot;

Ditto.

&gt; diff --git a/WebCore/inspector/DOMDispatchTimelineItem.cpp b/WebCore/inspector/DOMDispatchTimelineItem.cpp
&gt; index 59c4ca5..9b6fd46 100644
&gt; --- a/WebCore/inspector/DOMDispatchTimelineItem.cpp
&gt; +++ b/WebCore/inspector/DOMDispatchTimelineItem.cpp
&gt; @@ -31,6 +31,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;DOMDispatchTimelineItem.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;Event.h&quot;
&gt;  #include &quot;InspectorFrontend.h&quot;
&gt;  

Ditto.

&gt; diff --git a/WebCore/inspector/InspectorBackend.cpp b/WebCore/inspector/InspectorBackend.cpp
&gt; index 6d82109..42b4b4d 100644
&gt; --- a/WebCore/inspector/InspectorBackend.cpp
&gt; +++ b/WebCore/inspector/InspectorBackend.cpp
&gt; @@ -30,6 +30,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;InspectorBackend.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #if ENABLE(DATABASE)
&gt;  #include &quot;Database.h&quot;
&gt;  #endif
&gt; @@ -520,3 +521,4 @@ InspectorFrontend* InspectorBackend::inspectorFrontend()
&gt;  }
&gt;  
&gt;  } // namespace WebCore
&gt; +#endif // ENABLE(INSPECTOR)

Ditto.

&gt; diff --git a/WebCore/inspector/InspectorController.cpp b/WebCore/inspector/InspectorController.cpp
&gt; index a5e8184..1415258 100644
&gt; --- a/WebCore/inspector/InspectorController.cpp
&gt; +++ b/WebCore/inspector/InspectorController.cpp
&gt; @@ -30,6 +30,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;InspectorController.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;CString.h&quot;
&gt;  #include &quot;CachedResource.h&quot;
&gt;  #include &quot;Console.h&quot;
&gt; @@ -1564,3 +1565,4 @@ void InspectorController::deleteCookie(const String&amp; cookieName)
&gt;  }
&gt;  
&gt;  } // namespace WebCore
&gt; +#endif // ENABLE(INSPECTOR)

Ditto.

&gt; diff --git a/WebCore/inspector/InspectorDOMAgent.cpp b/WebCore/inspector/InspectorDOMAgent.cpp
&gt; index fa25e4d..759d840 100644
&gt; --- a/WebCore/inspector/InspectorDOMAgent.cpp
&gt; +++ b/WebCore/inspector/InspectorDOMAgent.cpp
&gt; @@ -31,6 +31,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;InspectorDOMAgent.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;AtomicString.h&quot;
&gt;  #include &quot;ContainerNode.h&quot;
&gt;  #include &quot;Cookie.h&quot;
&gt; @@ -547,3 +548,4 @@ Document* InspectorDOMAgent::mainFrameDocument()
&gt;  }
&gt;  
&gt;  } // namespace WebCore
&gt; +#endif // ENABLE(INSPECTOR)

Ditto.

&gt; diff --git a/WebCore/inspector/InspectorDOMStorageResource.cpp b/WebCore/inspector/InspectorDOMStorageResource.cpp
&gt; index 1e56742..9278afb 100644
&gt; --- a/WebCore/inspector/InspectorDOMStorageResource.cpp
&gt; +++ b/WebCore/inspector/InspectorDOMStorageResource.cpp
&gt; @@ -30,6 +30,7 @@
&gt;  
&gt;  #include &quot;config.h&quot;
&gt;  #if ENABLE(DOM_STORAGE)
&gt; +#if ENABLE(INSPECTOR)

This should be changed to:

#if ENABLE(DOM_STORAGE) &amp;&amp; ENABLE(INSPECTOR)

&gt; @@ -80,4 +81,5 @@ void InspectorDOMStorageResource::unbind()
&gt;  
&gt;  } // namespace WebCore
&gt;  
&gt; +#endif // ENABLE(INSPECTOR)
&gt;  #endif

These #endif statements should be combined:

#endif // ENABLE(DOM_STORAGE) &amp;&amp; ENABLE(INSPECTOR)

&gt; diff --git a/WebCore/inspector/InspectorDatabaseResource.cpp b/WebCore/inspector/InspectorDatabaseResource.cpp
&gt; index fba50a5..2a78e34 100644
&gt; --- a/WebCore/inspector/InspectorDatabaseResource.cpp
&gt; +++ b/WebCore/inspector/InspectorDatabaseResource.cpp
&gt; @@ -32,6 +32,7 @@
&gt;  #if ENABLE(DATABASE)
&gt;  #include &quot;InspectorDatabaseResource.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;Database.h&quot;
&gt;  #include &quot;Document.h&quot;
&gt;  #include &quot;Frame.h&quot;
&gt; @@ -75,4 +76,5 @@ void InspectorDatabaseResource::unbind()
&gt;  
&gt;  } // namespace WebCore
&gt;  
&gt; +#endif // ENABLE(INSPECTOR)
&gt;  #endif // ENABLE(DATABASE)

I think these #if/#endif statements can be combined as well.  See previous source changes.

&gt; diff --git a/WebCore/inspector/InspectorFrontend.cpp b/WebCore/inspector/InspectorFrontend.cpp
&gt; index bb369bd..c5a3a3b 100644
&gt; --- a/WebCore/inspector/InspectorFrontend.cpp
&gt; +++ b/WebCore/inspector/InspectorFrontend.cpp
&gt; @@ -30,6 +30,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;InspectorFrontend.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;ConsoleMessage.h&quot;
&gt;  #include &quot;Frame.h&quot;
&gt;  #include &quot;InspectorController.h&quot;
&gt; @@ -430,3 +431,4 @@ void InspectorFrontend::callSimpleFunction(const String&amp; functionName)
&gt;  }
&gt;  
&gt;  } // namespace WebCore
&gt; +#endif // ENABLE(INSPECTOR)

Please add a blank line after the &quot;#if ENABLE(..&quot; statement and before the &quot;#endif // ...&quot; statement.

&gt; diff --git a/WebCore/inspector/InspectorResource.cpp b/WebCore/inspector/InspectorResource.cpp
&gt; index f4d9ed2..6c8a6ad 100644
&gt; --- a/WebCore/inspector/InspectorResource.cpp
&gt; +++ b/WebCore/inspector/InspectorResource.cpp
&gt; @@ -31,6 +31,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;InspectorResource.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;CachedResource.h&quot;
&gt;  #include &quot;DocLoader.h&quot;
&gt;  #include &quot;DocumentLoader.h&quot;
&gt; @@ -330,3 +331,4 @@ void InspectorResource::addLength(int lengthReceived)
&gt;  }
&gt;  
&gt;  } // namespace WebCore
&gt; +#endif // ENABLE(INSPECTOR)

Ditto.

&gt; diff --git a/WebCore/inspector/InspectorTimelineAgent.cpp b/WebCore/inspector/InspectorTimelineAgent.cpp
&gt; index e9d20e0..b221e80 100644
&gt; --- a/WebCore/inspector/InspectorTimelineAgent.cpp
&gt; +++ b/WebCore/inspector/InspectorTimelineAgent.cpp
&gt; @@ -31,6 +31,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;InspectorTimelineAgent.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;DOMDispatchTimelineItem.h&quot;
&gt;  #include &quot;Event.h&quot;
&gt;  #include &quot;InspectorFrontend.h&quot;
&gt; @@ -136,3 +137,4 @@ double InspectorTimelineAgent::sessionTimeInMilliseconds()
&gt;  }
&gt;  
&gt;  } // namespace WebCore
&gt; +#endif // ENABLE(INSPECTOR)

Ditto.

&gt; diff --git a/WebCore/inspector/TimelineItem.cpp b/WebCore/inspector/TimelineItem.cpp
&gt; index 05b81b4..c3e1170 100644
&gt; --- a/WebCore/inspector/TimelineItem.cpp
&gt; +++ b/WebCore/inspector/TimelineItem.cpp
&gt; @@ -31,6 +31,7 @@
&gt;  #include &quot;config.h&quot;
&gt;  #include &quot;TimelineItem.h&quot;
&gt;  
&gt; +#if ENABLE(INSPECTOR)
&gt;  #include &quot;InspectorFrontend.h&quot;
&gt;  #include &quot;ScriptArray.h&quot;
&gt;  #include &quot;ScriptObject.h&quot;
&gt; @@ -76,3 +77,4 @@ void TimelineItem::addChildItem(PassOwnPtr&lt;TimelineItem&gt; timelineItem)
&gt;  
&gt;  } // namespace WebCore
&gt;  
&gt; +#endif // ENABLE(INSPECTOR)

Ditto.

&gt; diff --git a/WebCore/page/ContextMenuController.cpp b/WebCore/page/ContextMenuController.cpp
&gt; index 0ec9d1c..a3cb9c7 100644
&gt; --- a/WebCore/page/ContextMenuController.cpp
&gt; +++ b/WebCore/page/ContextMenuController.cpp
&gt; @@ -325,10 +327,12 @@ void ContextMenuController::contextMenuItemSelected(ContextMenuItem* item)
&gt;          frame-&gt;editor()-&gt;changeBackToReplacedString(result.replacedString());
&gt;          break;
&gt;  #endif
&gt; +#if ENABLE(INSPECTOR)
&gt;      case ContextMenuItemTagInspectElement:
&gt;          if (Page* page = frame-&gt;page())
&gt;              page-&gt;inspectorController()-&gt;inspect(result.innerNonSharedNode());
&gt;          break;
&gt; +#endif
&gt;      default:
&gt;          break;
&gt;      }

The #if/#endif should go inside the case statement (but before the break statement).

&gt; diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
&gt; diff --git a/WebKit/mac/WebCoreSupport/WebInspectorClient.mm b/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
&gt; diff --git a/WebKit/mac/WebInspector/WebInspector.mm b/WebKit/mac/WebInspector/WebInspector.mm
&gt; diff --git a/WebKit/mac/WebInspector/WebNodeHighlightView.mm b/WebKit/mac/WebInspector/WebNodeHighlightView.mm
&gt; diff --git a/WebKit/mac/WebView/WebView.mm b/WebKit/mac/WebView/WebView.mm
&gt; diff --git a/WebKit/mac/WebView/WebViewData.h b/WebKit/mac/WebView/WebViewData.h
&gt; diff --git a/WebKit/mac/WebView/WebViewData.mm b/WebKit/mac/WebView/WebViewData.mm
&gt; diff --git a/WebKit/mac/WebView/WebViewPrivate.h b/WebKit/mac/WebView/WebViewPrivate.h

As we discussed offline, please leave these changes out.  It doesn&apos;t make sense to disable context menu support for code in WebKit/mac.  When WebKit code for iPhone lands, it will be refactored or moved instead of shared within WebKit/mac.  (Note that mac-specific files in WebCore are needed to prevent excessive use of EXCLUDED_SOURCE_FILE_NAMES in Xcode.)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147588</commentid>
    <comment_count>4</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-16 12:47:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; --- a/WebCore/page/ContextMenuController.cpp
&gt; &gt; +++ b/WebCore/page/ContextMenuController.cpp
&gt; &gt; @@ -325,10 +327,12 @@ void ContextMenuController::contextMenuItemSelected(ContextMenuItem* item)
&gt; &gt;          frame-&gt;editor()-&gt;changeBackToReplacedString(result.replacedString());
&gt; &gt;          break;
&gt; &gt;  #endif
&gt; &gt; +#if ENABLE(INSPECTOR)
&gt; &gt;      case ContextMenuItemTagInspectElement:
&gt; &gt;          if (Page* page = frame-&gt;page())
&gt; &gt;              page-&gt;inspectorController()-&gt;inspect(result.innerNonSharedNode());
&gt; &gt;          break;
&gt; &gt; +#endif
&gt; &gt;      default:
&gt; &gt;          break;
&gt; &gt;      }
&gt; 
&gt; The #if/#endif should go inside the case statement (but before the break
&gt; statement).

I got the rest, but this can&apos;t be done since ContextMenuItemTagInspectElement does not exist unless ENABLE(INSPECTOR) is true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147589</commentid>
    <comment_count>5</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-16 12:51:43 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/48430</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39577</attachid>
            <date>2009-09-14 15:44:47 -0700</date>
            <delta_ts>2009-09-16 11:56:34 -0700</delta_ts>
            <desc>This patch implements the needed changes</desc>
            <filename>0001-Add-ENABLE-INSPECTOR.patch</filename>
            <type>text/plain</type>
            <size>67079</size>
            <attacher name="Greg Bolsinga">bolsinga</attacher>
            
              <data encoding="base64">RnJvbSA1MWFkNGIxOTIzZTU2ZjgxNTMzYjhjZWI5MmQwNTVjODBhNjZlNGYzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIEJvbHNpbmdhIDxib2xzaW5nYUBhcHBsZS5jb20+CkRh
dGU6IE1vbiwgMTQgU2VwIDIwMDkgMTU6NDM6MjMgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBZGQg
RU5BQkxFKElOU1BFQ1RPUikKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yOTI2MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpKYXZhU2NyaXB0Q29yZToKCiog
d3RmL1BsYXRmb3JtLmg6CgpXZWJDb3JlOgoKTm8gbmV3IHRlc3RzLiAoTm8gY2hhbmdlIGluIGRl
ZmF1bHQgYmVoYXZpb3IuKQoKKiBEZXJpdmVkU291cmNlcy5tYWtlOiBVc2UgbmV3IFdlYkNvcmUu
SW5zcGVjdG9yLmV4cCBmaWxlIGlmIEVOQUJMRV9EUkFHX1NVUFBPUlQuCiogV2ViQ29yZS5iYXNl
LmV4cDogTW92ZSBJbnNwZWN0b3Igb25seSBleHBvcnRzIHRvIFdlYkNvcmUuSW5zcGVjdG9yLmV4
cC4KKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBXZWJDb3JlLkluc3Bl
Y3Rvci5leHAuCiogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDogVXNlIEVOQUJMRShJ
TlNQRUNUT1IpIHdoZXJlIGFwcGxpY2FibGUuCihXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnN1
cHBvcnRzUHJvZmlsaW5nKToKKiBiaW5kaW5ncy9qcy9KU0luc3BlY3RlZE9iamVjdFdyYXBwZXIu
Y3BwOiBXcmFwIGVudGlyZSBmaWxlIGluIEVOQUJMRShJTlNQRUNUT1IpLgoqIGJpbmRpbmdzL2pz
L0pTSW5zcGVjdG9yQmFja2VuZEN1c3RvbS5jcHA6IERpdHRvLgoqIGJpbmRpbmdzL2pzL0pTSW5z
cGVjdG9yQ2FsbGJhY2tXcmFwcGVyLmNwcDogRGl0dG8uCiogYmluZGluZ3MvanMvU2NyaXB0T2Jq
ZWN0LmNwcDogVXNlIEVOQUJMRShJTlNQRUNUT1IpIHdoZXJlIGFwcGxpY2FibGUuCiogYmluZGlu
Z3MvanMvU2NyaXB0T2JqZWN0Lmg6IERpdHRvLgoqIGJpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1
YXJhbnRpbmUuY3BwOiBXcmFwIGVudGlyZSBmaWxlIGluIEVOQUJMRShJTlNQRUNUT1IpLgoqIGRv
bS9Eb2N1bWVudC5jcHA6IFVzZSBFTkFCTEUoSU5TUEVDVE9SKSB3aGVyZSBhcHBsaWNhYmxlLgoo
V2ViQ29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKToKKFdlYkNvcmU6OkRvY3VtZW50OjphZGRN
ZXNzYWdlKToKKFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJl
cXVlc3QpOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnNjcmlwdEltcG9ydGVkKToKKiBkb20vRG9jdW1l
bnQuaDogRGl0dG8uCiogZG9tL05vZGUuY3BwOiBEaXR0by4KKFdlYkNvcmU6Ok5vZGU6OmRpc3Bh
dGNoR2VuZXJpY0V2ZW50KToKKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOiBEaXR0by4K
KFdlYkNvcmU6Oik6CiogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOiBEaXR0by4KKFdlYkNvcmU6OkhU
TUxEb2N1bWVudDo6Y3JlYXRlVG9rZW5pemVyKToKKiBodG1sL0hUTUxUb2tlbml6ZXIuY3BwOiBE
aXR0by4KKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OndyaXRlKToKKiBpbnNwZWN0b3IvQ29uc29s
ZU1lc3NhZ2UuY3BwOiBEaXR0by4KKFdlYkNvcmU6OkNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVz
c2FnZSk6CihXZWJDb3JlOjpDb25zb2xlTWVzc2FnZTo6aXNFcXVhbCk6CiogaW5zcGVjdG9yL0Nv
bnNvbGVNZXNzYWdlLmg6IERpdHRvLgoqIGluc3BlY3Rvci9ET01EaXNwYXRjaFRpbWVsaW5lSXRl
bS5jcHA6IFdyYXAgZW50aXJlIGZpbGUgaW4gRU5BQkxFKElOU1BFQ1RPUikuCiogaW5zcGVjdG9y
L0luc3BlY3RvckJhY2tlbmQuY3BwOiBEaXR0by4KKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHA6IERpdHRvLgoqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6IERpdHRv
LgoqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwOiBEaXR0by4KKiBp
bnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHA6IERpdHRvLgoqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZC5jcHA6IERpdHRvLgoqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZS5jcHA6IERpdHRvLgoqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDog
RGl0dG8uCiogaW5zcGVjdG9yL1RpbWVsaW5lSXRlbS5jcHA6IERpdHRvLgoqIGxvYWRlci9GcmFt
ZUxvYWRlci5jcHA6IFVzZSBFTkFCTEUoSU5TUEVDVE9SKSB3aGVyZSBhcHBsaWNhYmxlLgooV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQpOgooV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeSk6CihXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZGVkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOgooV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmRpc3BhdGNoV2luZG93T2JqZWN0QXZhaWxhYmxlKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVy
OjpkaXNwYXRjaERpZENvbW1pdExvYWQpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpc3BhdGNo
QXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QpOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpkaXNwYXRj
aERpZFJlY2VpdmVSZXNwb25zZSk6CihXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hEaWRS
ZWNlaXZlQ29udGVudExlbmd0aCk6CihXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hEaWRG
aW5pc2hMb2FkaW5nKToKKiBwYWdlL0Nocm9tZS5jcHA6IERpdHRvLgooV2ViQ29yZTo6Q2hyb21l
Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6CiogcGFnZS9Db25zb2xlLmNwcDogRGl0dG8uCihX
ZWJDb3JlOjpDb25zb2xlOjphZGRNZXNzYWdlKToKKFdlYkNvcmU6OkNvbnNvbGU6OmNvdW50KToK
KFdlYkNvcmU6OkNvbnNvbGU6OnByb2ZpbGUpOgooV2ViQ29yZTo6Q29uc29sZTo6cHJvZmlsZUVu
ZCk6CihXZWJDb3JlOjpDb25zb2xlOjp0aW1lKToKKFdlYkNvcmU6OkNvbnNvbGU6OnRpbWVFbmQp
OgooV2ViQ29yZTo6Q29uc29sZTo6Z3JvdXApOgooV2ViQ29yZTo6Q29uc29sZTo6Z3JvdXBFbmQp
OgoqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDogRGl0dG8uCihXZWJDb3JlOjpDb250
ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQpOgooV2ViQ29yZTo6Q29u
dGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CiogcGFnZS9ET01X
aW5kb3cuY3BwOiBEaXR0by4KKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2Vzc2lvblN0b3JhZ2UpOgoo
V2ViQ29yZTo6RE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UpOgoqIHBhZ2UvRXZlbnRIYW5kbGVyLmNw
cDogRGl0dG8uCihXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6
CiogcGFnZS9GcmFtZVZpZXcuY3BwOiBEaXR0by4KKFdlYkNvcmU6OkZyYW1lVmlldzo6bGF5b3V0
KToKKFdlYkNvcmU6OkZyYW1lVmlldzo6cGFpbnRDb250ZW50cyk6CiogcGFnZS9GcmFtZVZpZXcu
aDogRGl0dG8uCiogcGFnZS9QYWdlLmNwcDogRGl0dG8uCihXZWJDb3JlOjpQYWdlOjpQYWdlKToK
KFdlYkNvcmU6OlBhZ2U6On5QYWdlKToKKiBwYWdlL1BhZ2UuaDogRGl0dG8uCiogcGxhdGZvcm0v
Q29udGV4dE1lbnUuY3BwOiBEaXR0by4KKFdlYkNvcmU6OkNvbnRleHRNZW51OjpjaGVja09yRW5h
YmxlSWZOZWVkZWQpOgoqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOiBEaXR0by4KKFdlYkNv
cmU6Oik6Ciogc3RvcmFnZS9EYXRhYmFzZS5jcHA6IERpdHRvLgooV2ViQ29yZTo6RGF0YWJhc2U6
Om9wZW5EYXRhYmFzZSk6Ciogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDogRGl0dG8uCihXZWJD
b3JlOjpXb3JrZXJDb250ZXh0OjppbXBvcnRTY3JpcHRzKToKKiB4bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwOiBEaXR0by4KKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKToK
CldlYktpdC9tYWM6CgoqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbTogV3Jh
cCBlbnRpcmUgZmlsZSBpbiBFTkFCTEUoSU5TUEVDVE9SKS4KKiBXZWJJbnNwZWN0b3IvV2ViSW5z
cGVjdG9yLm1tOiBEaXR0by4KKiBXZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW06
IFVzZSBFTkFCTEUoSU5TUEVDVE9SKSB3aGVyZSBhcHBsaWNhYmxlLgoqIFdlYlZpZXcvV2ViVmll
dy5tbTogRGl0dG8uCigtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFt
ZTpncm91cE5hbWU6dXNlc0RvY3VtZW50Vmlld3M6XSk6CigtW1dlYlZpZXcgX2Nsb3NlXSk6Ciog
V2ViVmlldy9XZWJWaWV3RGF0YS5oOiBEaXR0by4KKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOiBE
aXR0by4KKC1bV2ViVmlld1ByaXZhdGUgZGVhbGxvY10pOgoqIFdlYlZpZXcvV2ViVmlld1ByaXZh
dGUuaDogRGl0dG8uCi0tLQogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICA5ICsrCiBKYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDUgKwogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDk3ICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysKIFdl
YkNvcmUvV2ViQ29yZS5JbnNwZWN0b3IuZXhwICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyAr
KysrCiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTcgLS0tLQogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAg
ICAgICAgfCAgICAyICsKIFdlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCAg
ICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RlZE9iamVj
dFdyYXBwZXIuY3BwICAgfCAgICAyICsKIFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JC
YWNrZW5kQ3VzdG9tLmNwcCAgIHwgICAgMiArCiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVj
dG9yQ2FsbGJhY2tXcmFwcGVyLmNwcCB8ICAgIDIgKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRPYmplY3QuY3BwICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0T2JqZWN0LmggICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuY3BwICAgICB8ICAgIDMgKwogV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKwogV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIFdl
YkNvcmUvZG9tL05vZGUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCAr
CiBXZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggICAgICAgICAgICAgICB8ICAg
IDIgKwogV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAgICAg
fCAgICAyICsKIFdlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCAgICAgICAgICAgICAgICAg
ICAgIHwgICAgNCArCiBXZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgICAgICAg
ICAgICAgICB8ICAgMTAgKysKIFdlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmggICAg
ICAgICAgICAgICAgIHwgICAgNCArCiBXZWJDb3JlL2luc3BlY3Rvci9ET01EaXNwYXRjaFRpbWVs
aW5lSXRlbS5jcHAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFj
a2VuZC5jcHAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5jcHAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCAgfCAgICAyICsKIFdlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwICAgIHwgICAgMiArCiBXZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwICAgICAgICAgICAgfCAgICAyICsKIFdl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwICAgICAgIHwgICAgMiAr
CiBXZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZUl0ZW0uY3BwICAgICAgICAgICAgICAgICB8ICAg
IDIgKwogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgICAgICAgICAgICAgICAgICAg
fCAgIDIwICsrKystCiBXZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDM1ICsrKysrKysKIFdlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuY3BwICAgICAgICAgICAgIHwgICAgNCArCiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArKwogV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIFdlYkNvcmUv
cGFnZS9QYWdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKwogV2Vi
Q29yZS9wYWdlL1BhZ2UuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsr
CiBXZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCAgICAgICAgICAgICAgICAgICB8ICAg
IDQgKwogV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCAgICAgICAgICAgICAgICAg
fCAgICAyICsKIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgMiArCiBXZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgICAgICAgICAg
ICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwICAgICAgICAg
ICAgICAgICAgICAgfCAgICAyICsKIFdlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxOCArKysrCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5tbSAgICB8ICAgIDMgKwogV2ViS2l0L21hYy9XZWJJbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yLm1tICAgICAgICAgICAgfCAgICAzICsKIFdlYktpdC9tYWMvV2ViSW5zcGVj
dG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1tICAgIHwgICAgMiArCiBXZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKystCiBXZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld0RhdGEuaCAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oICAgICAgICAgICAgICAgIHwgICAgMiAr
CiA1NSBmaWxlcyBjaGFuZ2VkLCAzNzQgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9XZWJDb3JlLkluc3BlY3Rvci5leHAKCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
aW5kZXggMTQ0MjY4NC4uNmY1MWU5MyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDA5
LTA5LTE0ICBHcmVnIEJvbHNpbmdhICA8Ym9sc2luZ2FAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBFTkFCTEUoSU5TUEVDVE9S
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkyNjAK
KworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDA5LTA5LTE0ICBDc2FiYSBPc3p0cm9n
b25hYyAgPG9zemlAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvciBB
cm5lIFZlc3Riw7guCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBi
L0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDg0MmZmYmQuLjJmYWE0MzUgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL0phdmFTY3JpcHRD
b3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC00MTEsNiArNDExLDcgQEAKICNkZWZpbmUgV1RGX1BMQVRG
T1JNX0NGIDEKICNkZWZpbmUgV1RGX1VTRV9QVEhSRUFEUyAxCiAjZGVmaW5lIEVOQUJMRV9GVFBE
SVIgMQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SIDAKICNkZWZpbmUgRU5BQkxFX01BQ19KQVZB
X0JSSURHRSAwCiAjZGVmaW5lIEVOQUJMRV9JQ09OREFUQUJBU0UgMAogI2RlZmluZSBFTkFCTEVf
R0VPTE9DQVRJT04gMQpAQCAtNTU2LDYgKzU1NywxMCBAQAogI2RlZmluZSBFTkFCTEVfREFTSEJP
QVJEX1NVUFBPUlQgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SKQor
I2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxF
X01BQ19KQVZBX0JSSURHRSkKICNkZWZpbmUgRU5BQkxFX01BQ19KQVZBX0JSSURHRSAwCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggYWE4NjBhMy4uMTM5M2FlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDAgQEAKKzIwMDktMDktMTQgIEdyZWcgQm9s
c2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIEVOQUJMRShJTlNQRUNUT1IpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTI2MAorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gKE5vIGNoYW5nZSBpbiBkZWZhdWx0IGJlaGF2aW9yLikKKworICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6IFVzZSBuZXcgV2ViQ29yZS5JbnNwZWN0b3IuZXhwIGZpbGUgaWYg
RU5BQkxFX0RSQUdfU1VQUE9SVC4KKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhwOiBNb3ZlIElu
c3BlY3RvciBvbmx5IGV4cG9ydHMgdG8gV2ViQ29yZS5JbnNwZWN0b3IuZXhwLgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIFdlYkNvcmUuSW5zcGVjdG9y
LmV4cC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOiBVc2UgRU5B
QkxFKElOU1BFQ1RPUikgd2hlcmUgYXBwbGljYWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
V2luZG93QmFzZTo6c3VwcG9ydHNQcm9maWxpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
SW5zcGVjdGVkT2JqZWN0V3JhcHBlci5jcHA6IFdyYXAgZW50aXJlIGZpbGUgaW4gRU5BQkxFKElO
U1BFQ1RPUikuCisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnNwZWN0b3JCYWNrZW5kQ3VzdG9t
LmNwcDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnNwZWN0b3JDYWxsYmFja1dy
YXBwZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRPYmplY3QuY3Bw
OiBVc2UgRU5BQkxFKElOU1BFQ1RPUikgd2hlcmUgYXBwbGljYWJsZS4KKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TY3JpcHRPYmplY3QuaDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3MvanMvU2Ny
aXB0T2JqZWN0UXVhcmFudGluZS5jcHA6IFdyYXAgZW50aXJlIGZpbGUgaW4gRU5BQkxFKElOU1BF
Q1RPUikuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDogVXNlIEVOQUJMRShJTlNQRUNUT1Ip
IHdoZXJlIGFwcGxpY2FibGUuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVjYWxjU3R5
bGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2NyaXB0SW1wb3J0ZWQpOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hHZW5lcmljRXZlbnQpOgorICAgICAgICAqIGRv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6KToK
KyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTERvY3VtZW50OjpjcmVhdGVUb2tlbml6ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFRv
a2VuaXplci5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6d3Jp
dGUpOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnNvbGVNZXNzYWdlOjppc0VxdWFsKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Q29uc29sZU1lc3NhZ2UuaDogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0RPTURpc3BhdGNo
VGltZWxpbmVJdGVtLmNwcDogV3JhcCBlbnRpcmUgZmlsZSBpbiBFTkFCTEUoSU5TUEVDVE9SKS4K
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHA6IERpdHRvLgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDogRGl0dG8uCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHA6IERpdHRvLgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcDogRGl0dG8uCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcDogRGl0dG8uCisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlLmNwcDogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvVGlt
ZWxpbmVJdGVtLmNwcDogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDog
VXNlIEVOQUJMRShJTlNQRUNUT1IpIHdoZXJlIGFwcGxpY2FibGUuCisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6ZGV0YWNoRnJvbVBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkZWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hXaW5kb3dPYmplY3RBdmFpbGFibGUp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hBc3NpZ25JZGVudGlmaWVy
VG9Jbml0aWFsUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlzcGF0
Y2hXaWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpc3Bh
dGNoRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpk
aXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHBhZ2UvQ2hyb21l
LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6Om1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KToKKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuY3BwOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnNvbGU6OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6
Y291bnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6cHJvZmlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb25zb2xlOjpwcm9maWxlRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6
OnRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6dGltZUVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb25zb2xlOjpncm91cCk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjpncm91
cEVuZCk6CisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6aGFuZGxlQ29udGV4dE1l
bnVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRl
eHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzZXNzaW9uU3RvcmFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OmxvY2FsU3RvcmFnZSk6CisgICAgICAgICogcGFnZS9FdmVu
dEhhbmRsZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VQcmVzc0V2ZW50KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OiBEaXR0by4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6flBhZ2UpOgorICAgICAg
ICAqIHBhZ2UvUGFnZS5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudS5j
cHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OmNoZWNrT3JFbmFibGVJ
Zk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmg6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmNwcDogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKToKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckNvbnRleHQ6OmltcG9ydFNjcmlwdHMpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVz
dC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlz
aExvYWRpbmcpOgorCiAyMDA5LTA5LTEyICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBm
YWU3NWUzLi4xMDY4YTE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC00NjQsNiArNDY0LDEyIEBAIEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCA9IDAKIAogZW5kaWYKIAoraWZlcSAoJChzaGVsbCBnY2Mg
LUUgLVAgLWRNIC1GICQoQlVJTFRfUFJPRFVDVFNfRElSKSAkKEZSQU1FV09SS19GTEFHUykgV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvUGxhdGZvcm0uaCB8IGdyZXAgRU5BQkxFX0lOU1BF
Q1RPUiB8IGN1dCAtZCcgJyAtZjMpLCAxKQorICAgIEVOQUJMRV9JTlNQRUNUT1IgPSAxCitlbHNl
CisgICAgRU5BQkxFX0lOU1BFQ1RPUiA9IDAKK2VuZGlmCisKICMgQ1NTIHByb3BlcnR5IG5hbWVz
IGFuZCB2YWx1ZSBrZXl3b3JkcwogCiBXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1FUyA6PSAkKFdl
YkNvcmUpL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC03NjIsNiArNzY4LDEwIEBAIGlmZXEg
KCQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSwgMSkKICAgICBXRUJDT1JFX0VYUE9SVF9ERVBF
TkRFTkNJRVMgOj0gJChXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMpIFdlYkNvcmUuRGFzaGJv
YXJkU3VwcG9ydC5leHAKIGVuZGlmCiAKK2lmZXEgKCQoRU5BQkxFX0lOU1BFQ1RPUiksIDEpCisg
ICAgV0VCQ09SRV9FWFBPUlRfREVQRU5ERU5DSUVTIDo9ICQoV0VCQ09SRV9FWFBPUlRfREVQRU5E
RU5DSUVTKSBXZWJDb3JlLkluc3BlY3Rvci5leHAKK2VuZGlmCisKIGlmZXEgKCQoZmluZHN0cmlu
ZyAxMC40LCQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUKSksIDEwLjQpCiAgICAgV0VCQ09SRV9F
WFBPUlRfREVQRU5ERU5DSUVTIDo9ICQoV0VCQ09SRV9FWFBPUlRfREVQRU5ERU5DSUVTKSBXZWJD
b3JlLlRpZ2VyLmV4cAogZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5JbnNwZWN0
b3IuZXhwIGIvV2ViQ29yZS9XZWJDb3JlLkluc3BlY3Rvci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZjc5MzQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5JbnNwZWN0b3IuZXhwCkBAIC0wLDAgKzEsMTcgQEAKK19fWk43V2ViQ29yZTE5SW5zcGVj
dG9yQ29udHJvbGxlcjEwc2V0U2V0dGluZ0VSS05TXzZTdHJpbmdFUktOUzBfN1NldHRpbmdFCitf
X1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxMmF0dGFjaFdpbmRvd0V2CitfX1pON1dl
YkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxMmRldGFjaFdpbmRvd0V2CitfX1pON1dlYkNvcmUx
OUluc3BlY3RvckNvbnRyb2xsZXIxNGVuYWJsZURlYnVnZ2VyRXYKK19fWk43V2ViQ29yZTE5SW5z
cGVjdG9yQ29udHJvbGxlcjE0ZW5hYmxlUHJvZmlsZXJFYmIKK19fWk43V2ViQ29yZTE5SW5zcGVj
dG9yQ29udHJvbGxlcjE1ZGlzYWJsZURlYnVnZ2VyRWIKK19fWk43V2ViQ29yZTE5SW5zcGVjdG9y
Q29udHJvbGxlcjE1ZGlzYWJsZVByb2ZpbGVyRWIKK19fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29u
dHJvbGxlcjE2c2V0V2luZG93VmlzaWJsZUViYgorX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMjZzdG9wVXNlckluaXRpYXRlZFByb2ZpbGluZ0V2CitfX1pON1dlYkNvcmUxOUluc3Bl
Y3RvckNvbnRyb2xsZXIyN3N0YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZ0VQTlNfNVRpbWVySVMw
X0VFCitfX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXI0c2hvd0V2CitfX1pON1dlYkNv
cmUxOUluc3BlY3RvckNvbnRyb2xsZXI1Y2xvc2VFdgorX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JD
b250cm9sbGVyN2luc3BlY3RFUE5TXzROb2RlRQorX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyOXNob3dQYW5lbEVOUzBfMTNTcGVjaWFsUGFuZWxzRQorX19aTks3V2ViQ29yZTE5SW5z
cGVjdG9yQ29udHJvbGxlcjE3ZHJhd05vZGVIaWdobGlnaHRFUk5TXzE1R3JhcGhpY3NDb250ZXh0
RQorX19aTks3V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjdlbmFibGVkRXYKK19fWk5LN1dl
YkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXI3c2V0dGluZ0VSS05TXzZTdHJpbmdFCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAK
aW5kZXggNzRjZjMzNS4uODNmYjI0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cApAQCAtNDA1LDIwICs0MDUsNiBAQCBf
X1pON1dlYkNvcmUxOGlzU3RhcnRPZlBhcmFncmFwaEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRQog
X19aTjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVyMjBwYXVzZUFuaW1hdGlvbkF0VGltZUVQ
TlNfMTJSZW5kZXJPYmplY3RFUktOU182U3RyaW5nRWQKIF9fWk43V2ViQ29yZTE5QW5pbWF0aW9u
Q29udHJvbGxlcjIxcGF1c2VUcmFuc2l0aW9uQXRUaW1lRVBOU18xMlJlbmRlck9iamVjdEVSS05T
XzZTdHJpbmdFZAogX19aTjdXZWJDb3JlMTlDU1NTdHlsZURlY2xhcmF0aW9uMTFzZXRQcm9wZXJ0
eUVSS05TXzZTdHJpbmdFUzNfUmkKLV9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjEw
c2V0U2V0dGluZ0VSS05TXzZTdHJpbmdFUktOUzBfN1NldHRpbmdFCi1fX1pON1dlYkNvcmUxOUlu
c3BlY3RvckNvbnRyb2xsZXIxMmF0dGFjaFdpbmRvd0V2Ci1fX1pON1dlYkNvcmUxOUluc3BlY3Rv
ckNvbnRyb2xsZXIxMmRldGFjaFdpbmRvd0V2Ci1fX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRy
b2xsZXIxNGVuYWJsZURlYnVnZ2VyRXYKLV9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxl
cjE0ZW5hYmxlUHJvZmlsZXJFYmIKLV9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1
ZGlzYWJsZURlYnVnZ2VyRWIKLV9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1ZGlz
YWJsZVByb2ZpbGVyRWIKLV9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE2c2V0V2lu
ZG93VmlzaWJsZUViYgotX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMjZzdG9wVXNl
ckluaXRpYXRlZFByb2ZpbGluZ0V2Ci1fX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIy
N3N0YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZ0VQTlNfNVRpbWVySVMwX0VFCi1fX1pON1dlYkNv
cmUxOUluc3BlY3RvckNvbnRyb2xsZXI0c2hvd0V2Ci1fX1pON1dlYkNvcmUxOUluc3BlY3RvckNv
bnRyb2xsZXI1Y2xvc2VFdgotX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyN2luc3Bl
Y3RFUE5TXzROb2RlRQotX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyOXNob3dQYW5l
bEVOUzBfMTNTcGVjaWFsUGFuZWxzRQogX19aTjdXZWJDb3JlMTlTZWxlY3Rpb25Db250cm9sbGVy
MTBzZXRGb2N1c2VkRWIKIF9fWk43V2ViQ29yZTE5U2VsZWN0aW9uQ29udHJvbGxlcjEyc2V0U2Vs
ZWN0aW9uRVJLTlNfMTZWaXNpYmxlU2VsZWN0aW9uRWJiYgogX19aTjdXZWJDb3JlMTlTZWxlY3Rp
b25Db250cm9sbGVyMTZzZXRTZWxlY3RlZFJhbmdlRVBOU181UmFuZ2VFTlNfOUVBZmZpbml0eUVi
CkBAIC04NjMsOSArODQ5LDYgQEAgX19aTks3V2ViQ29yZTE2VmlzaWJsZVNlbGVjdGlvbjIzaXND
b250ZW50UmljaGx5RWRpdGFibGVFdgogX19aTks3V2ViQ29yZTE2VmlzaWJsZVNlbGVjdGlvbjVp
c0FsbEVOU18yMVN0YXlJbkVkaXRhYmxlQ29udGVudEUKIF9fWk5LN1dlYkNvcmUxN1Jlc291cmNl
RXJyb3JCYXNlOGxhenlJbml0RXYKIF9fWk5LN1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIy
NG51bWJlck9mQWN0aXZlQW5pbWF0aW9uc0V2Ci1fX1pOSzdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMTdkcmF3Tm9kZUhpZ2hsaWdodEVSTlNfMTVHcmFwaGljc0NvbnRleHRFCi1fX1pOSzdX
ZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyN2VuYWJsZWRFdgotX19aTks3V2ViQ29yZTE5SW5z
cGVjdG9yQ29udHJvbGxlcjdzZXR0aW5nRVJLTlNfNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmUxOVJl
c291cmNlUmVxdWVzdEJhc2UxMGh0dHBNZXRob2RFdgogX19aTks3V2ViQ29yZTE5UmVzb3VyY2VS
ZXF1ZXN0QmFzZTN1cmxFdgogX19aTks3V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTdpc0Vt
cHR5RXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjk1
NjQ5Ni4uZGRmNjNlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTk4MDksNiArOTgwOSw3IEBACiAJCUY5MTZDNDhDMERCNTEwRjgwMDc2Q0Q4MyAvKiBK
U1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjlGMEVENzcwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY5
RjBFRDc4MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRTBBQTI4RTEwNUVDNEY3MDAyREI0QjUg
LyogV2ViQ29yZS5JbnNwZWN0b3IuZXhwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5leHBvcnRzOyBw
YXRoID0gV2ViQ29yZS5JbnNwZWN0b3IuZXhwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGRTQ5RUY5NzBEQzUxNDYyMDA0MjY2RTEgLyogRGFzaGJvYXJkU3VwcG9ydENTU1Byb3BlcnR5
TmFtZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGFzaGJvYXJkU3VwcG9ydENTU1Byb3Bl
cnR5TmFtZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFNkZENDg1MEY2NzZF
NTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb29yZGluYXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTZGRDQ4
NjBGNjc2RTU3MDAwOTI4NzMgLyogQ29vcmRpbmF0ZXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IENvb3JkaW5hdGVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNDM1
LDYgKzEwNDM2LDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUY1OEVGNThFMDJERkRGQjcwMTg2
MzVDQSAvKiBXZWJDb3JlLmJhc2UuZXhwICovLAogCQkJCTQ0OTE5NTlEMEZCRTE3RDcwMEQ5Rjgy
NCAvKiBXZWJDb3JlLkRhc2hib2FyZFN1cHBvcnQuZXhwICovLAorCQkJCUZFMEFBMjhFMTA1RUM0
RjcwMDJEQjRCNSAvKiBXZWJDb3JlLkluc3BlY3Rvci5leHAgKi8sCiAJCQkJNDQ5MTk1OUMwRkJF
MTdENzAwRDlGODI0IC8qIFdlYkNvcmUuSk5JLmV4cCAqLywKIAkJCQk0NDkxOTU5QjBGQkUxN0Q3
MDBEOUY4MjQgLyogV2ViQ29yZS5MUDY0LmV4cCAqLywKIAkJCQk0NDkxOTU5QTBGQkUxN0Q3MDBE
OUY4MjQgLyogV2ViQ29yZS5OUEFQSS5leHAgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAKaW5kZXggNGVkYzdhNi4uNmVjYTNlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIEV4ZWNTdGF0ZSogSlNET01X
aW5kb3dCYXNlOjpnbG9iYWxFeGVjKCkKIAogYm9vbCBKU0RPTVdpbmRvd0Jhc2U6OnN1cHBvcnRz
UHJvZmlsaW5nKCkgY29uc3QKIHsKLSNpZiAhRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCisj
aWYgIUVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSB8fCAhRU5BQkxFKElOU1BFQ1RPUikKICAg
ICByZXR1cm4gZmFsc2U7CiAjZWxzZQogICAgIEZyYW1lKiBmcmFtZSA9IGltcGwoKS0+ZnJhbWUo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0ZWRPYmplY3RXcmFw
cGVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyLmNw
cAppbmRleCBmZmY3YWVlLi5kYzNlNWRjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW5zcGVjdGVkT2JqZWN0V3JhcHBlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0luc3BlY3RlZE9iamVjdFdyYXBwZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyLmgiCiAKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogI2luY2x1ZGUgIkpTSW5zcGVjdG9yQ2FsbGJhY2tXcmFwcGVyLmgi
CiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbE9iamVjdC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KQEAgLTEyNSwzICsxMjYsNCBAQCBKU1ZhbHVlIEpTSW5zcGVjdGVkT2JqZWN0
V3JhcHBlcjo6cHJlcGFyZUluY29taW5nVmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZQog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JCYWNrZW5kQ3VzdG9t
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JCYWNrZW5kQ3VzdG9tLmNwcApp
bmRleCA3ODJmZmFiLi5mNjJhZWNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SW5zcGVjdG9yQmFja2VuZEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lu
c3BlY3RvckJhY2tlbmRDdXN0b20uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSlNJbnNwZWN0b3JCYWNrZW5kLmgiCiAKKyNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAjaW5j
bHVkZSAiRGF0YWJhc2UuaCIKQEAgLTM2NCwzICszNjUsNCBAQCBKU1ZhbHVlIEpTSW5zcGVjdG9y
QmFja2VuZDo6c2VsZWN0RE9NU3RvcmFnZShFeGVjU3RhdGUqLCBjb25zdCBBcmdMaXN0JiBhcmdz
KQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZiAvLyBFTkFCTEUoSU5T
UEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckNhbGxi
YWNrV3JhcHBlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yQ2FsbGJhY2tX
cmFwcGVyLmNwcAppbmRleCA1YzNjZDI5Li5lNjlhZWFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSW5zcGVjdG9yQ2FsbGJhY2tXcmFwcGVyLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSW5zcGVjdG9yQ2FsbGJhY2tXcmFwcGVyLmNwcApAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTSW5zcGVjdG9yQ2FsbGJhY2tXcmFw
cGVyLmgiCiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogI2luY2x1ZGUgIkpTSW5zcGVjdGVkT2Jq
ZWN0V3JhcHBlci5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtMTA1LDMg
KzEwNiw0IEBAIEpTVmFsdWUgSlNJbnNwZWN0b3JDYWxsYmFja1dyYXBwZXI6OnByZXBhcmVJbmNv
bWluZ1ZhbHVlKEV4ZWNTdGF0ZSogdW53cmFwcGVkRXhlCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRPYmplY3QuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRP
YmplY3QuY3BwCmluZGV4IGFhOWUzYTYuLmI1MjdhOTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dE9iamVjdC5jcHAKQEAgLTEyNCw2ICsxMjQsNyBAQCBib29sIFNjcmlwdEdsb2JhbE9iamVjdDo6
c2V0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgUwog
ICAgIHJldHVybiBoYW5kbGVFeGNlcHRpb24oc2NyaXB0U3RhdGUpOwogfQogCisjaWYgRU5BQkxF
KElOU1BFQ1RPUikKIGJvb2wgU2NyaXB0R2xvYmFsT2JqZWN0OjpzZXQoU2NyaXB0U3RhdGUqIHNj
cmlwdFN0YXRlLCBjb25zdCBjaGFyKiBuYW1lLCBJbnNwZWN0b3JCYWNrZW5kKiB2YWx1ZSkKIHsK
ICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwpAQCAtMTMxLDYgKzEzMiw3
IEBAIGJvb2wgU2NyaXB0R2xvYmFsT2JqZWN0OjpzZXQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRl
LCBjb25zdCBjaGFyKiBuYW1lLCBJbnNwZWN0CiAgICAgZ2xvYmFsT2JqZWN0LT5wdXREaXJlY3Qo
SWRlbnRpZmllcihzY3JpcHRTdGF0ZSwgbmFtZSksIHRvSlMoc2NyaXB0U3RhdGUsIGdsb2JhbE9i
amVjdCwgdmFsdWUpKTsKICAgICByZXR1cm4gaGFuZGxlRXhjZXB0aW9uKHNjcmlwdFN0YXRlKTsK
IH0KKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQogCiBib29sIFNjcmlwdEdsb2JhbE9iamVj
dDo6Z2V0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgY2hhciogbmFtZSwgU2NyaXB0
T2JqZWN0JiB2YWx1ZSkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
T2JqZWN0LmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5oCmluZGV4IDUwYjYz
YWQuLmE4YjExZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0
LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3QuaApAQCAtNjMsNyArNjMs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU2NyaXB0R2xvYmFsT2JqZWN0IHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBib29sIHNldChTY3JpcHRTdGF0ZSosIGNvbnN0
IGNoYXIqIG5hbWUsIGNvbnN0IFNjcmlwdE9iamVjdCYpOworI2lmIEVOQUJMRShJTlNQRUNUT1Ip
CiAgICAgICAgIHN0YXRpYyBib29sIHNldChTY3JpcHRTdGF0ZSosIGNvbnN0IGNoYXIqIG5hbWUs
IEluc3BlY3RvckJhY2tlbmQqKTsKKyNlbmRpZgogICAgICAgICBzdGF0aWMgYm9vbCBnZXQoU2Ny
aXB0U3RhdGUqLCBjb25zdCBjaGFyKiBuYW1lLCBTY3JpcHRPYmplY3QmKTsKICAgICAgICAgc3Rh
dGljIGJvb2wgcmVtb3ZlKFNjcmlwdFN0YXRlKiwgY29uc3QgY2hhciogbmFtZSk7CiAgICAgcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0UXVhcmFu
dGluZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuY3Bw
CmluZGV4IGY5NmY4OWUuLjEwYTYxYzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0T2JqZWN0UXVhcmFudGluZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRPYmplY3RRdWFyYW50aW5lLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlNjcmlwdE9iamVjdFF1YXJhbnRpbmUuaCIKIAorI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkpTRE9NQmluZGluZy5oIgpAQCAtMTI1LDMgKzEyNiw1IEBAIGJvb2wgZ2V0UXVhcmFu
dGluZWRTY3JpcHRPYmplY3QoRE9NV2luZG93KiBkb21XaW5kb3csIFNjcmlwdE9iamVjdCYgcXVh
cmFudGluZWRPCiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyZjMzNzIwLi45NzFjZjgzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0xMjE0LDkgKzEyMTQsMTEgQEAgdm9pZCBEb2N1bWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFu
Z2UgY2hhbmdlKQogICAgIGlmIChtX2luU3R5bGVSZWNhbGMpCiAgICAgICAgIHJldHVybjsgLy8g
R3VhcmQgYWdhaW5zdCByZS1lbnRyYW5jeS4gLWR3aAogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikK
ICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCgpOwogICAgIGlmICh0aW1lbGluZUFnZW50KQogICAgICAgICB0aW1lbGluZUFn
ZW50LT53aWxsUmVjYWxjdWxhdGVTdHlsZSgpOworI2VuZGlmCiAKICAgICBtX2luU3R5bGVSZWNh
bGMgPSB0cnVlOwogICAgIHN1c3BlbmRQb3N0QXR0YWNoQ2FsbGJhY2tzKCk7CkBAIC0xMjkxLDgg
KzEyOTMsMTAgQEAgYmFpbF9vdXQ6CiAgICAgICAgIGltcGxpY2l0Q2xvc2UoKTsKICAgICB9CiAK
KyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmICh0aW1lbGluZUFnZW50KQogICAgICAgICB0
aW1lbGluZUFnZW50LT5kaWRSZWNhbGN1bGF0ZVN0eWxlKCk7CisjZW5kaWYKIH0KIAogdm9pZCBE
b2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgpCkBAIC00NDkzLDEwICs0NDk3LDEyIEBAIHZv
aWQgRG9jdW1lbnQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0CiB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VE
ZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBl
IHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKICAgICBzd2l0Y2ggKGRl
c3RpbmF0aW9uKSB7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBjYXNlIEluc3BlY3RvckNv
bnRyb2xsZXJEZXN0aW5hdGlvbjoKICAgICAgICAgaWYgKHBhZ2UoKSkKICAgICAgICAgICAgIHBh
Z2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwg
dHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CiAgICAgICAgIHJl
dHVybjsKKyNlbmRpZgogICAgIGNhc2UgQ29uc29sZURlc3RpbmF0aW9uOgogICAgICAgICBpZiAo
RE9NV2luZG93KiB3aW5kb3cgPSBkb21XaW5kb3coKSkKICAgICAgICAgICAgIHdpbmRvdy0+Y29u
c29sZSgpLT5hZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1i
ZXIsIHNvdXJjZVVSTCk7CkBAIC00NTA3LDggKzQ1MTMsMTAgQEAgdm9pZCBEb2N1bWVudDo6YWRk
TWVzc2FnZShNZXNzYWdlRGVzdGluYXRpb24gZGVzdGluYXRpb24sIE1lc3NhZ2VTb3VyY2Ugc291
cmNlLAogCiB2b2lkIERvY3VtZW50OjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3Qo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTY3JpcHRTdHJpbmcmIHNvdXJjZVN0cmlu
ZykKIHsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChwYWdlKCkpCiAgICAgICAgIHBh
Z2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5yZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJl
cXVlc3QoaWRlbnRpZmllciwgc291cmNlU3RyaW5nKTsKKyNlbmRpZgogICAgIEZyYW1lKiBmcmFt
ZSA9IHRoaXMtPmZyYW1lKCk7CiAgICAgaWYgKGZyYW1lKSB7CiAgICAgICAgIEZyYW1lTG9hZGVy
KiBmcmFtZUxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKTsKQEAgLTQ1MTgsOCArNDUyNiwxMyBAQCB2
b2lkIERvY3VtZW50OjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdAogCiB2b2lkIERvY3VtZW50OjpzY3JpcHRJbXBvcnRlZCh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nKQogewor
I2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKHBhZ2UoKSkKICAgICAgICAgcGFnZSgpLT5p
bnNwZWN0b3JDb250cm9sbGVyKCktPnNjcmlwdEltcG9ydGVkKGlkZW50aWZpZXIsIHNvdXJjZVN0
cmluZyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKKyAgICBVTlVTRURf
UEFSQU0oc291cmNlU3RyaW5nKTsKKyNlbmRpZgogfQogCiBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0VGFza1RpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkMDEwOTcyLi41
OWUwOTExIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTM3Nyw3ICszNzcsOSBAQCBwdWJsaWM6CiAgICAgRnJhbWUqIGZy
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfSAvLyBjYW4gYmUgTlVMTAogICAgIFBhZ2Uq
IHBhZ2UoKSBjb25zdDsgLy8gY2FuIGJlIE5VTEwKICAgICBTZXR0aW5ncyogc2V0dGluZ3MoKSBj
b25zdDsgLy8gY2FuIGJlIE5VTEwKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQqIGluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSBjb25zdDsgLy8gY2FuIGJl
IE5VTEwKKyNlbmRpZgogCiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gY3JlYXRlUmFuZ2UoKTsKIApA
QCAtMTEyMCw5ICsxMTIyLDExIEBAIGlubGluZSBib29sIE5vZGU6OmlzRG9jdW1lbnROb2RlKCkg
Y29uc3QKICAgICByZXR1cm4gdGhpcyA9PSBtX2RvY3VtZW50OwogfQogCisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKIGlubGluZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiBEb2N1bWVudDo6aW5zcGVj
dG9yVGltZWxpbmVBZ2VudCgpIGNvbnN0IHsKICAgICByZXR1cm4gcGFnZSgpID8gcGFnZSgpLT5p
bnNwZWN0b3JUaW1lbGluZUFnZW50KCkgOiAwOwogfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAppbmRleCA4MWMxODY3Li5hMTI4NWU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjU1MSw5ICsyNTUxLDEx
IEBAIGJvb2wgTm9kZTo6ZGlzcGF0Y2hHZW5lcmljRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gcHJw
RXZlbnQpCiAgICAgQVNTRVJUKGV2ZW50LT50YXJnZXQoKSk7CiAgICAgQVNTRVJUKCFldmVudC0+
dHlwZSgpLmlzTnVsbCgpKTsgLy8gSmF2YVNjcmlwdCBjb2RlIGNhbiBjcmVhdGUgYW4gZXZlbnQg
d2l0aCBhbiBlbXB0eSBuYW1lLCBidXQgbm90IG51bGwuCiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBkb2N1bWVudCgp
LT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CiAgICAgaWYgKHRpbWVsaW5lQWdlbnQpCiAgICAg
ICAgIHRpbWVsaW5lQWdlbnQtPndpbGxEaXNwYXRjaERPTUV2ZW50KCpldmVudCk7CisjZW5kaWYK
IAogICAgIC8vIE1ha2UgYSB2ZWN0b3Igb2YgYW5jZXN0b3JzIHRvIHNlbmQgdGhlIGV2ZW50IHRv
LgogICAgIC8vIElmIHRoZSBub2RlIGlzIG5vdCBpbiBhIGRvY3VtZW50IGp1c3Qgc2VuZCB0aGUg
ZXZlbnQgdG8gaXQuCkBAIC0yNjY2LDggKzI2NjgsMTAgQEAgZG9uZURpc3BhdGNoaW5nOgogICAg
IH0KIAogZG9uZVdpdGhEZWZhdWx0OgorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKHRp
bWVsaW5lQWdlbnQpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZERpc3BhdGNoRE9NRXZlbnQo
KTsKKyNlbmRpZgogCiAgICAgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlRm9yQWxsRG9jdW1lbnRzKCk7
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCAzZjhmZWJjLi5iYjc4YjZm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC00NCw3ICs0NCw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTdHJpbmc7CiAKICAgICBlbnVtIE1lc3NhZ2VE
ZXN0aW5hdGlvbiB7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgSW5zcGVjdG9yQ29u
dHJvbGxlckRlc3RpbmF0aW9uLAorI2VuZGlmCiAgICAgICAgIENvbnNvbGVEZXN0aW5hdGlvbiwK
ICAgICB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCmluZGV4IDljNmUxNGMuLmZkOTM5YzggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MRG9jdW1lbnQuY3BwCkBAIC0yODQsOCArMjg0LDEwIEBAIHZvaWQgSFRNTERvY3VtZW50Ojpy
ZWxlYXNlRXZlbnRzKCkKIFRva2VuaXplciAqSFRNTERvY3VtZW50OjpjcmVhdGVUb2tlbml6ZXIo
KQogewogICAgIGJvb2wgcmVwb3J0RXJyb3JzID0gZmFsc2U7CisjaWYgRU5BQkxFKElOU1BFQ1RP
UikKICAgICBpZiAoUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKICAgICAgICAgcmVwb3J0RXJy
b3JzID0gcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT53aW5kb3dWaXNpYmxlKCk7CisjZW5k
aWYKIAogICAgIHJldHVybiBuZXcgSFRNTFRva2VuaXplcih0aGlzLCByZXBvcnRFcnJvcnMpOwog
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwIGIvV2ViQ29yZS9o
dG1sL0hUTUxUb2tlbml6ZXIuY3BwCmluZGV4IGM1YjEzZDguLjcxZmFhYzAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRv
a2VuaXplci5jcHAKQEAgLTE2NjIsOSArMTY2MiwxMSBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6Ondy
aXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc3RyLCBib29sIGFwcGVuZERhdGEpCiAgICAgaW50
IHByb2Nlc3NlZENvdW50ID0gMDsKICAgICBkb3VibGUgc3RhcnRUaW1lID0gY3VycmVudFRpbWUo
KTsKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCog
dGltZWxpbmVBZ2VudCA9IG1fZG9jLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CiAgICAgaWYg
KHRpbWVsaW5lQWdlbnQpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxXcml0ZUhUTUwoKTsK
KyNlbmRpZgogICAKICAgICBGcmFtZSogZnJhbWUgPSBtX2RvYy0+ZnJhbWUoKTsKIApAQCAtMTc4
Nyw4ICsxNzg5LDEwIEBAIHZvaWQgSFRNTFRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVudGVk
U3RyaW5nJiBzdHIsIGJvb2wgYXBwZW5kRGF0YSkKICAgICAgICAgcHJpbnRmKCJFbmRpbmcgd3Jp
dGUgYXQgdGltZSAlZFxuIiwgbV9kb2MtPmVsYXBzZWRUaW1lKCkpOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogICAgIGlmICh0aW1lbGluZUFnZW50KQogICAgICAgICB0aW1lbGlu
ZUFnZW50LT5kaWRXcml0ZUhUTUwoKTsKKyNlbmRpZgogCiAgICAgbV9pbldyaXRlID0gd2FzSW5X
cml0ZTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3Bw
IGIvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGY5ZDg3MDguLjZj
ZmI3NWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTU0LDcgKzU0LDkg
QEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2Fn
ZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIFMKICAgICA6IG1fc291cmNlKHMpCiAgICAgLCBtX3R5
cGUodCkKICAgICAsIG1fbGV2ZWwobCkKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICwgbV93
cmFwcGVkQXJndW1lbnRzKGNhbGxTdGFjay0+YXQoMCkuYXJndW1lbnRDb3VudCgpKQorI2VuZGlm
CiAgICAgLCBtX2ZyYW1lcyhzdG9yZVRyYWNlID8gY2FsbFN0YWNrLT5zaXplKCkgOiAwKQogICAg
ICwgbV9ncm91cExldmVsKGcpCiAgICAgLCBtX3JlcGVhdENvdW50KDEpCkBAIC03MSwxMCArNzMs
MTMgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVz
c2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIFMKICAgICAgICAgICAgIG1fZnJhbWVzW2ldID0g
Y2FsbFN0YWNrLT5hdChpKS5mdW5jdGlvbk5hbWUoKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsYXN0Q2FsbGVyLmFyZ3VtZW50
Q291bnQoKTsgKytpKQogICAgICAgICBtX3dyYXBwZWRBcmd1bWVudHNbaV0gPSBxdWFyYW50aW5l
VmFsdWUoY2FsbFN0YWNrLT5zdGF0ZSgpLCBsYXN0Q2FsbGVyLmFyZ3VtZW50QXQoaSkpOworI2Vu
ZGlmCiB9CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogdm9pZCBDb25zb2xlTWVzc2FnZTo6YWRk
VG9Db25zb2xlKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKIHsKICAgICBTY3JpcHRPYmpl
Y3QganNvbk9iaiA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKQEAgLTg3LDkgKzkyLDEx
IEBAIHZvaWQgQ29uc29sZU1lc3NhZ2U6OmFkZFRvQ29uc29sZShJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQpCiAgICAganNvbk9iai5zZXQoInJlcGVhdENvdW50Iiwgc3RhdGljX2Nhc3Q8aW50
PihtX3JlcGVhdENvdW50KSk7CiAgICAgZnJvbnRlbmQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoanNv
bk9iaiwgbV9mcmFtZXMsIG1fd3JhcHBlZEFyZ3VtZW50cywgIG1fbWVzc2FnZSk7CiB9CisjZW5k
aWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKIAogYm9vbCBDb25zb2xlTWVzc2FnZTo6aXNFcXVhbChT
Y3JpcHRTdGF0ZSogc3RhdGUsIENvbnNvbGVNZXNzYWdlKiBtc2cpIGNvbnN0CiB7CisjaWYgRU5B
QkxFKElOU1BFQ1RPUikKICAgICBpZiAobXNnLT5tX3dyYXBwZWRBcmd1bWVudHMuc2l6ZSgpICE9
IG1fd3JhcHBlZEFyZ3VtZW50cy5zaXplKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBp
ZiAoIXN0YXRlICYmIG1zZy0+bV93cmFwcGVkQXJndW1lbnRzLnNpemUoKSkKQEAgLTEwMSw2ICsx
MDgsOSBAQCBib29sIENvbnNvbGVNZXNzYWdlOjppc0VxdWFsKFNjcmlwdFN0YXRlKiBzdGF0ZSwg
Q29uc29sZU1lc3NhZ2UqIG1zZykgY29uc3QKICAgICAgICAgaWYgKCFtX3dyYXBwZWRBcmd1bWVu
dHNbaV0uaXNFcXVhbChzdGF0ZSwgbXNnLT5tX3dyYXBwZWRBcmd1bWVudHNbaV0pKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHN0YXRl
KTsKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQogCiAgICAgc2l6ZV90IGZyYW1lQ291bnQg
PSBtc2ctPm1fZnJhbWVzLnNpemUoKTsKICAgICBpZiAoZnJhbWVDb3VudCAhPSBtX2ZyYW1lcy5z
aXplKCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oIGIv
V2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAppbmRleCA5MTBhMDA3Li5kMDNmMmI3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmgKQEAgLTQ3LDcgKzQ3LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNz
YWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIHVuc2lnbmVkIGxpLCBjb25z
dCBTdHJpbmcmIHUsIHVuc2lnbmVkIGcpOyAgICAgICAgCiAgICAgICAgIENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIFNjcmlwdENhbGxTdGFj
ayosIHVuc2lnbmVkIGcsIGJvb2wgc3RvcmVUcmFjZSA9IGZhbHNlKTsKIAorI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgICAgIHZvaWQgYWRkVG9Db25zb2xlKEluc3BlY3RvckZyb250ZW5kKiBm
cm9udGVuZCk7CisjZW5kaWYKICAgICAgICAgdm9pZCBpbmNyZW1lbnRDb3VudCgpIHsgKyttX3Jl
cGVhdENvdW50OyB9OwogICAgICAgICBib29sIGlzRXF1YWwoU2NyaXB0U3RhdGUqLCBDb25zb2xl
TWVzc2FnZSogbXNnKSBjb25zdDsKIApAQCAtNTksNyArNjEsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIE1lc3NhZ2VUeXBlIG1fdHlwZTsKICAgICAgICAgTWVzc2FnZUxldmVsIG1f
bGV2ZWw7CiAgICAgICAgIFN0cmluZyBtX21lc3NhZ2U7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikK
ICAgICAgICAgVmVjdG9yPFNjcmlwdFZhbHVlPiBtX3dyYXBwZWRBcmd1bWVudHM7CisjZW5kaWYK
ICAgICAgICAgVmVjdG9yPFNjcmlwdFN0cmluZz4gbV9mcmFtZXM7CiAgICAgICAgIHVuc2lnbmVk
IG1fbGluZTsKICAgICAgICAgU3RyaW5nIG1fdXJsOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvRE9NRGlzcGF0Y2hUaW1lbGluZUl0ZW0uY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvRE9N
RGlzcGF0Y2hUaW1lbGluZUl0ZW0uY3BwCmluZGV4IDU5YzRjYTUuLjliNmZkNDYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL0RPTURpc3BhdGNoVGltZWxpbmVJdGVtLmNwcAorKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9ET01EaXNwYXRjaFRpbWVsaW5lSXRlbS5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJET01EaXNwYXRjaFRpbWVsaW5l
SXRlbS5oIgogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICNpbmNsdWRlICJFdmVudC5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAKQEAgLTUzLDMgKzU0LDQgQEAgU2NyaXB0T2Jq
ZWN0IERPTURpc3BhdGNoVGltZWxpbmVJdGVtOjpjb252ZXJ0VG9TY3JpcHRPYmplY3QoSW5zcGVj
dG9yRnJvbnRlbmQqIGYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZW5kaWYgLy8gRU5B
QkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJh
Y2tlbmQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKaW5kZXgg
NmQ4MjEwOS4uNDJiNGI0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QmFja2VuZC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JCYWNrZW5kLmgiCiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogI2lmIEVOQUJMRShEQVRBQkFT
RSkKICNpbmNsdWRlICJEYXRhYmFzZS5oIgogI2VuZGlmCkBAIC01MjAsMyArNTIxLDQgQEAgSW5z
cGVjdG9yRnJvbnRlbmQqIEluc3BlY3RvckJhY2tlbmQ6Omluc3BlY3RvckZyb250ZW5kKCkKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGE1ZTgxODQuLjE0
MTUyNTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29u
dHJvbGxlci5oIgogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICNpbmNsdWRlICJDU3RyaW5nLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCkBAIC0x
NTY0LDMgKzE1NjUsNCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRlbGV0ZUNvb2tpZShj
b25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNl
bmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCmluZGV4IGZhMjVlNGQuLjc1OWQ4NDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICNp
bmNsdWRlICJBdG9taWNTdHJpbmcuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCiAjaW5j
bHVkZSAiQ29va2llLmgiCkBAIC01NDcsMyArNTQ4LDQgQEAgRG9jdW1lbnQqIEluc3BlY3RvckRP
TUFnZW50OjptYWluRnJhbWVEb2N1bWVudCgpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAKaW5kZXggMWU1Njc0Mi4uOTI3OGFmYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNw
cAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3Bw
CkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBFTkFCTEUoRE9N
X1NUT1JBR0UpCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkluc3BlY3RvckRP
TVN0b3JhZ2VSZXNvdXJjZS5oIgogCkBAIC04MCw0ICs4MSw1IEBAIHZvaWQgSW5zcGVjdG9yRE9N
U3RvcmFnZVJlc291cmNlOjp1bmJpbmQoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNl
bmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwCmluZGV4IGZiYTUwYTUuLjJhNzhlMzQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3Bw
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwCkBA
IC0zMiw2ICszMiw3IEBACiAjaWYgRU5BQkxFKERBVEFCQVNFKQogI2luY2x1ZGUgIkluc3BlY3Rv
ckRhdGFiYXNlUmVzb3VyY2UuaCIKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAjaW5jbHVkZSAi
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBA
IC03NSw0ICs3Niw1IEBAIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZTo6dW5iaW5kKCkK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikK
ICNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5jcHAKaW5kZXggYmIzNjliZC4uYzVhM2EzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQog
I2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCkBAIC00MzAsMyArNDMxLDQgQEAgdm9pZCBJbnNwZWN0
b3JGcm9udGVuZDo6Y2FsbFNpbXBsZUZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1l
KQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RP
UikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcCBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcAppbmRleCBmNGQ5ZWQyLi42
YzhhNmFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5j
cHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVzb3Vy
Y2UuaCIKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2Uu
aCIKICNpbmNsdWRlICJEb2NMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpA
QCAtMzMwLDMgKzMzMSw0IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2U6OmFkZExlbmd0aChpbnQg
bGVuZ3RoUmVjZWl2ZWQpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZiAvLyBF
TkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcAppbmRleCBlOWQyMGUwLi5iMjIxZTgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKIAorI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAjaW5jbHVkZSAiRE9NRGlzcGF0Y2hUaW1lbGluZUl0ZW0uaCIKICNpbmNs
dWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCkBAIC0xMzYsMyAr
MTM3LDQgQEAgZG91YmxlIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNlc3Npb25UaW1lSW5NaWxs
aXNlY29uZHMoKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYgLy8gRU5BQkxF
KElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lSXRlbS5j
cHAgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZUl0ZW0uY3BwCmluZGV4IDA1YjgxYjQuLmMz
ZTExNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lSXRlbS5jcHAKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVJdGVtLmNwcApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRpbWVsaW5lSXRlbS5oIgogCisjaWYgRU5B
QkxFKElOU1BFQ1RPUikKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUg
IlNjcmlwdEFycmF5LmgiCiAjaW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCkBAIC03NiwzICs3Nyw0
IEBAIHZvaWQgVGltZWxpbmVJdGVtOjphZGRDaGlsZEl0ZW0oUGFzc093blB0cjxUaW1lbGluZUl0
ZW0+IHRpbWVsaW5lSXRlbSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZW5kaWYgLy8g
RU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA5N2I3ZmU4Li43ZTk5
NWQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zNTkzLDggKzM1OTMsMTAgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6ZGV0YWNoRnJvbVBhcmVudCgpCiAgICAgc2F2ZVNjcm9sbFBvc2l0aW9uQW5k
Vmlld1N0YXRlVG9JdGVtKGN1cnJlbnRIaXN0b3J5SXRlbSgpKTsKICAgICBkZXRhY2hDaGlsZHJl
bigpOwogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJh
bWUtPnBhZ2UoKSkKICAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5mcmFtZURl
dGFjaGVkRnJvbVBhcmVudChtX2ZyYW1lKTsKKyNlbmRpZgogCiAgICAgZGV0YWNoVmlld3NBbmRE
b2N1bWVudExvYWRlcigpOwogCkBAIC00MDc1LDcgKzQwNzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgUGFzcwogICAgIGlmICghbV9mcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm47CiAKLSNp
ZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikgJiYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUt
PnBhZ2UoKSkgewogICAgICAgICBpZiAocGFnZS0+bWFpbkZyYW1lKCkgPT0gbV9mcmFtZSkKICAg
ICAgICAgICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+cmVzdW1lRGVidWdnZXIoKTsK
QEAgLTQxNjYsNyArNDE2OCw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRlZFJlc291cmNlRnJv
bU1lbW9yeUNhY2hlKGNvbnN0IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgcGFnZS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUobV9k
b2N1bWVudExvYWRlci5nZXQoKSwgcmVzb3VyY2UpOworI2VuZGlmCiAKICAgICBpZiAoIXJlc291
cmNlLT5zZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgfHwgbV9kb2N1bWVudExvYWRlci0+aGF2
ZVRvbGRDbGllbnRBYm91dExvYWQocmVzb3VyY2UtPnVybCgpKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNTE0MywxMCArNTE0NywxMiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkaXNwYXRjaFdpbmRvd09i
amVjdEF2YWlsYWJsZSgpCiAKICAgICBtX2NsaWVudC0+d2luZG93T2JqZWN0Q2xlYXJlZCgpOwog
CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBh
Z2UoKSkgewogICAgICAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yID0gcGFn
ZS0+cGFyZW50SW5zcGVjdG9yQ29udHJvbGxlcigpKQogICAgICAgICAgICAgaW5zcGVjdG9yLT53
aW5kb3dTY3JpcHRPYmplY3RBdmFpbGFibGUoKTsKICAgICB9CisjZW5kaWYKIH0KIAogUGFzc1Jl
ZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IElu
dFNpemUmIHNpemUsIEhUTUxBcHBsZXRFbGVtZW50KiBlbGVtZW50LCBjb25zdCBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiYgYXJncykKQEAgLTUyMTEsMTYgKzUyMTcsMjAgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkKIAogICAgIG1fY2xpZW50LT5kaXNwYXRjaERp
ZENvbW1pdExvYWQoKTsKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKFBhZ2UqIHBh
Z2UgPSBtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIo
KS0+ZGlkQ29tbWl0TG9hZChtX2RvY3VtZW50TG9hZGVyLmdldCgpKTsKKyNlbmRpZgogfQogCiB2
b2lkIEZyYW1lTG9hZGVyOjpkaXNwYXRjaEFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIG1fY2xpZW50LT5hc3NpZ25JZGVudGlm
aWVyVG9Jbml0aWFsUmVxdWVzdChpZGVudGlmaWVyLCBsb2FkZXIsIHJlcXVlc3QpOwogCisjaWYg
RU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkK
ICAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5pZGVudGlmaWVyRm9ySW5pdGlh
bFJlcXVlc3QoaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0KTsKKyNlbmRpZgogfQogCiB2b2lk
IEZyYW1lTG9hZGVyOjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciogbG9h
ZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKQEAgLTUyMzQsMzIgKzUy
NDQsNDAgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1l
bnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZwogICAgIGlmICghcmVxdWVzdC5pc051bGwo
KSAmJiBvbGRSZXF1ZXN0VVJMICE9IHJlcXVlc3QudXJsKCkuc3RyaW5nKCkuaW1wbCgpKQogICAg
ICAgICBtX2RvY3VtZW50TG9hZGVyLT5kaWRUZWxsQ2xpZW50QWJvdXRMb2FkKHJlcXVlc3QudXJs
KCkpOwogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJh
bWUtPnBhZ2UoKSkKICAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT53aWxsU2Vu
ZFJlcXVlc3QobG9hZGVyLCBpZGVudGlmaWVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsK
KyNlbmRpZgogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25z
ZShEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHIpCiB7CiAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkUmVjZWl2
ZVJlc3BvbnNlKGxvYWRlciwgaWRlbnRpZmllciwgcik7CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQogICAgICAgICBwYWdlLT5p
bnNwZWN0b3JDb250cm9sbGVyKCktPmRpZFJlY2VpdmVSZXNwb25zZShsb2FkZXIsIGlkZW50aWZp
ZXIsIHIpOworI2VuZGlmCiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmRpc3BhdGNoRGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBpbnQgbGVuZ3RoKQogewogICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZFJlY2VpdmVD
b250ZW50TGVuZ3RoKGxvYWRlciwgaWRlbnRpZmllciwgbGVuZ3RoKTsKIAorI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAg
IHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobG9h
ZGVyLCBpZGVudGlmaWVyLCBsZW5ndGgpOworI2VuZGlmCiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6
OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIpCiB7CiAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkRmluaXNoTG9h
ZGluZyhsb2FkZXIsIGlkZW50aWZpZXIpOwogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBp
ZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcGFnZS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLT5kaWRGaW5pc2hMb2FkaW5nKGxvYWRlciwgaWRlbnRpZmllcik7CisjZW5k
aWYKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6dGVsbENsaWVudEFib3V0UGFzdE1lbW9yeUNhY2hl
TG9hZHMoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcAppbmRleCA3NjJkZDhhLi5hMTZkYjY4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMzE2LDgg
KzMxNiwxMCBAQCB2b2lkIENocm9tZTo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0
VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBtb2RpZgogICAgIH0KICAgICBtX2NsaWVudC0+
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQocmVzdWx0LCBtb2RpZmllckZsYWdzKTsKIAorI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvciA9
IG1fcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpKQogICAgICAgICBpbnNwZWN0b3ItPm1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KHJlc3VsdCwgbW9kaWZpZXJGbGFncyk7CisjZW5kaWYKIH0KIAog
dm9pZCBDaHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwIGIvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
Y3BwCmluZGV4IGQwY2VlMzcuLjc5NjEzZDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Db25z
b2xlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKQEAgLTE1MCw3ICsxNTAsOSBA
QCB2b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VU
eXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZQogICAgIGlmIChzb3VyY2UgPT0gSlNNZXNzYWdlU291
cmNlKQogICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNv
bGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsK
IAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVO
dW1iZXIsIHNvdXJjZVVSTCk7CisjZW5kaWYKIAogICAgIGlmICghQ29uc29sZTo6c2hvdWxkUHJp
bnRFeGNlcHRpb25zKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE3Niw3ICsxNzgsOSBAQCB2b2lk
IENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVs
LCBTY3JpcHRDYWxsU3RhY2sqCiAgICAgaWYgKGdldEZpcnN0QXJndW1lbnRBc1N0cmluZyhjYWxs
U3RhY2stPnN0YXRlKCksIGxhc3RDYWxsZXIsIG1lc3NhZ2UpKQogICAgICAgICBwYWdlLT5jaHJv
bWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCB0eXBl
LCBsZXZlbCwgbWVzc2FnZSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuc291
cmNlVVJMKCkucHJldHR5VVJMKCkpOwogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBwYWdl
LT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291
cmNlLCB0eXBlLCBsZXZlbCwgY2FsbFN0YWNrKTsKKyNlbmRpZgogCiAgICAgaWYgKCFDb25zb2xl
OjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjQ5LDYgKzI1
Myw3IEBAIHZvaWQgQ29uc29sZTo6YXNzZXJ0Q29uZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBTY3Jp
cHRDYWxsU3RhY2sqIGNhbGxTdGFjaykKIAogdm9pZCBDb25zb2xlOjpjb3VudChTY3JpcHRDYWxs
U3RhY2sqIGNhbGxTdGFjaykKIHsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFBhZ2UqIHBh
Z2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CkBAIC0y
NjAsNiArMjY1LDkgQEAgdm9pZCBDb25zb2xlOjpjb3VudChTY3JpcHRDYWxsU3RhY2sqIGNhbGxT
dGFjaykKICAgICBnZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcoY2FsbFN0YWNrLT5zdGF0ZSgpLCBs
YXN0Q2FsbGVyLCB0aXRsZSk7CiAKICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmNv
dW50KHRpdGxlLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSwgbGFzdENhbGxlci5zb3VyY2VVUkwo
KS5zdHJpbmcoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShjYWxsU3RhY2spOworI2VuZGlm
CiB9CiAKICNpZiBFTkFCTEUoV01MKQpAQCAtMjk2LDE5ICszMDQsMjcgQEAgdm9pZCBDb25zb2xl
Ojpwcm9maWxlKGNvbnN0IEpTQzo6VVN0cmluZyYgdGl0bGUsIFNjcmlwdENhbGxTdGFjayogY2Fs
bFN0YWNrKQogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBjb250cm9sbGVyID0gcGFnZS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpOwogICAgIC8vIEZJWE1FOiBsb2cgYSBjb25zb2xlIG1lc3NhZ2Ug
d2hlbiBwcm9maWxpbmcgaXMgZGlzYWJsZWQuCiAgICAgaWYgKCFjb250cm9sbGVyLT5wcm9maWxl
ckVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOworI2VuZGlmCiAKICAgICBKU0M6OlVTdHJpbmcg
cmVzb2x2ZWRUaXRsZSA9IHRpdGxlOwogICAgIGlmICh0aXRsZS5pc051bGwoKSkgICAvLyBubyB0
aXRsZSBzbyBnaXZlIGl0IHRoZSBuZXh0IHVzZXIgaW5pdGlhdGVkIHByb2ZpbGUgdGl0bGUuCisj
aWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgcmVzb2x2ZWRUaXRsZSA9IGNvbnRyb2xsZXIt
PmdldEN1cnJlbnRVc2VySW5pdGlhdGVkUHJvZmlsZU5hbWUodHJ1ZSk7CisjZWxzZQorICAgICAg
ICByZXNvbHZlZFRpdGxlID0gIiI7CisjZW5kaWYKIAogICAgIEpTQzo6UHJvZmlsZXI6OnByb2Zp
bGVyKCktPnN0YXJ0UHJvZmlsaW5nKGNhbGxTdGFjay0+c3RhdGUoKSwgcmVzb2x2ZWRUaXRsZSk7
CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSYgbGFz
dENhbGxlciA9IGNhbGxTdGFjay0+YXQoMCk7CiAgICAgY29udHJvbGxlci0+YWRkU3RhcnRQcm9m
aWxpbmdNZXNzYWdlVG9Db25zb2xlKHJlc29sdmVkVGl0bGUsIGxhc3RDYWxsZXIubGluZU51bWJl
cigpLCBsYXN0Q2FsbGVyLnNvdXJjZVVSTCgpKTsKKyNlbmRpZgogfQogCiB2b2lkIENvbnNvbGU6
OnByb2ZpbGVFbmQoY29uc3QgSlNDOjpVU3RyaW5nJiB0aXRsZSwgU2NyaXB0Q2FsbFN0YWNrKiBj
YWxsU3RhY2spCkBAIC0zMjAsOSArMzM2LDExIEBAIHZvaWQgQ29uc29sZTo6cHJvZmlsZUVuZChj
b25zdCBKU0M6OlVTdHJpbmcmIHRpdGxlLCBTY3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaykKICAg
ICBpZiAoIXRoaXMtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBjb250cm9sbGVyID0gcGFnZS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpOwogICAgIGlmICghY29udHJvbGxlci0+cHJvZmlsZXJFbmFibGVkKCkp
CiAgICAgICAgIHJldHVybjsKKyNlbmRpZgogCiAgICAgUmVmUHRyPEpTQzo6UHJvZmlsZT4gcHJv
ZmlsZSA9IEpTQzo6UHJvZmlsZXI6OnByb2ZpbGVyKCktPnN0b3BQcm9maWxpbmcoY2FsbFN0YWNr
LT5zdGF0ZSgpLCB0aXRsZSk7CiAgICAgaWYgKCFwcm9maWxlKQpAQCAtMzMwLDE0ICszNDgsMTcg
QEAgdm9pZCBDb25zb2xlOjpwcm9maWxlRW5kKGNvbnN0IEpTQzo6VVN0cmluZyYgdGl0bGUsIFNj
cmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQogCiAgICAgbV9wcm9maWxlcy5hcHBlbmQocHJvZmls
ZSk7CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSYg
bGFzdENhbGxlciA9IGNhbGxTdGFjay0+YXQoMCk7CiAgICAgY29udHJvbGxlci0+YWRkUHJvZmls
ZShwcm9maWxlLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSwgbGFzdENhbGxlci5zb3VyY2VVUkwo
KSk7CisjZW5kaWYKIH0KIAogI2VuZGlmCiAKIHZvaWQgQ29uc29sZTo6dGltZShjb25zdCBTdHJp
bmcmIHRpdGxlKQogeworI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgUGFnZSogcGFnZSA9IHRo
aXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKQEAgLTM0OCwxMCAr
MzY5LDE0IEBAIHZvaWQgQ29uc29sZTo6dGltZShjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgICAg
ICByZXR1cm47CiAKICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnN0YXJ0VGltaW5n
KHRpdGxlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHRpdGxlKTsKKyNlbmRpZgogfQogCiB2
b2lkIENvbnNvbGU6OnRpbWVFbmQoY29uc3QgU3RyaW5nJiB0aXRsZSwgU2NyaXB0Q2FsbFN0YWNr
KiBjYWxsU3RhY2spCiB7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBQYWdlKiBwYWdlID0g
dGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzY5LDI0
ICszOTQsMzQgQEAgdm9pZCBDb25zb2xlOjp0aW1lRW5kKGNvbnN0IFN0cmluZyYgdGl0bGUsIFNj
cmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQogCiAgICAgY29uc3QgU2NyaXB0Q2FsbEZyYW1lJiBs
YXN0Q2FsbGVyID0gY2FsbFN0YWNrLT5hdCgwKTsKICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9s
bGVyKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSwgbGFz
dENhbGxlci5zb3VyY2VVUkwoKS5zdHJpbmcoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0
aXRsZSk7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxTdGFjayk7CisjZW5kaWYKIH0KIAogdm9pZCBD
b25zb2xlOjpncm91cChTY3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaykKIHsKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdl
KQogICAgICAgICByZXR1cm47CiAKICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnN0
YXJ0R3JvdXAoSlNNZXNzYWdlU291cmNlLCBjYWxsU3RhY2spOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oY2FsbFN0YWNrKTsKKyNlbmRpZgogfQogCiB2b2lkIENvbnNvbGU6Omdyb3VwRW5kKCkK
IHsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICBwYWdlLT5pbnNwZWN0b3JD
b250cm9sbGVyKCktPmVuZEdyb3VwKEpTTWVzc2FnZVNvdXJjZSwgMCwgU3RyaW5nKCkpOworI2Vu
ZGlmCiB9CiAKIHZvaWQgQ29uc29sZTo6d2FybihTY3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaykK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvV2Vi
Q29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggMGVjOWQxYy4uYTNjYjlj
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysr
IGIvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTk1LDggKzk1LDEw
IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2
ZW50KiBldmVudCkKIAogICAgIG1fY29udGV4dE1lbnUuc2V0KG5ldyBDb250ZXh0TWVudShyZXN1
bHQpKTsKICAgICBtX2NvbnRleHRNZW51LT5wb3B1bGF0ZSgpOworI2lmIEVOQUJMRShJTlNQRUNU
T1IpCiAgICAgaWYgKG1fcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5lbmFibGVkKCkpCiAg
ICAgICAgIG1fY29udGV4dE1lbnUtPmFkZEluc3BlY3RFbGVtZW50SXRlbSgpOworI2VuZGlmCiAK
ICAgICBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBjdXN0b21NZW51ID0gbV9jbGllbnQtPmdldEN1
c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgIG1fY29u
dGV4dE1lbnUtPnNldFBsYXRmb3JtRGVzY3JpcHRpb24oY3VzdG9tTWVudSk7CkBAIC0zMjUsMTAg
KzMyNywxMiBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2Vs
ZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiBpdGVtKQogICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmNo
YW5nZUJhY2tUb1JlcGxhY2VkU3RyaW5nKHJlc3VsdC5yZXBsYWNlZFN0cmluZygpKTsKICAgICAg
ICAgYnJlYWs7CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQ6CiAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZnJh
bWUtPnBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+aW5z
cGVjdChyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpOwogICAgICAgICBicmVhazsKKyNlbmRp
ZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXgg
NDBjZjVmNC4uYjA2NzY4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTU2Niw3ICs1NjYsOSBAQCBTdG9y
YWdlKiBET01XaW5kb3c6OnNlc3Npb25TdG9yYWdlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhID0gcGFnZS0+c2Vzc2lvblN0
b3JhZ2UoKS0+c3RvcmFnZUFyZWEoZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpOworI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaWRVc2VE
T01TdG9yYWdlKHN0b3JhZ2VBcmVhLmdldCgpLCBmYWxzZSwgbV9mcmFtZSk7CisjZW5kaWYKIAog
ICAgIG1fc2Vzc2lvblN0b3JhZ2UgPSBTdG9yYWdlOjpjcmVhdGUobV9mcmFtZSwgc3RvcmFnZUFy
ZWEucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbV9zZXNzaW9uU3RvcmFnZS5nZXQoKTsKQEAgLTU5
MSw3ICs1OTMsOSBAQCBTdG9yYWdlKiBET01XaW5kb3c6OmxvY2FsU3RvcmFnZSgpIGNvbnN0CiAg
ICAgU3RvcmFnZU5hbWVzcGFjZSogbG9jYWxTdG9yYWdlID0gcGFnZS0+Z3JvdXAoKS5sb2NhbFN0
b3JhZ2UoKTsKICAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhID0gbG9jYWxTdG9y
YWdlID8gbG9jYWxTdG9yYWdlLT5zdG9yYWdlQXJlYShkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4o
KSkgOiAwOyAKICAgICBpZiAoc3RvcmFnZUFyZWEpIHsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQog
ICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpZFVzZURPTVN0b3JhZ2Uoc3Rv
cmFnZUFyZWEuZ2V0KCksIHRydWUsIG1fZnJhbWUpOworI2VuZGlmCiAgICAgICAgIG1fbG9jYWxT
dG9yYWdlID0gU3RvcmFnZTo6Y3JlYXRlKG1fZnJhbWUsIHN0b3JhZ2VBcmVhLnJlbGVhc2UoKSk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGU5ZGQzYmYuLjQ2MjQxYzkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCkBAIC0xMTI4LDYgKzExMjgsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6
aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVu
dCkKIAogICAgIG1fbW91c2VQcmVzc05vZGUgPSBtZXYudGFyZ2V0Tm9kZSgpOwogCisjaWYgRU5B
QkxFKElOU1BFQ1RPUikKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewog
ICAgICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3IgPSBwYWdlLT5pbnNwZWN0b3JD
b250cm9sbGVyKCk7CiAgICAgICAgIGlmIChpbnNwZWN0b3IgJiYgaW5zcGVjdG9yLT5lbmFibGVk
KCkgJiYgaW5zcGVjdG9yLT5zZWFyY2hpbmdGb3JOb2RlSW5QYWdlKCkpIHsKQEAgLTExMzYsNiAr
MTEzNyw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KICAgICB9CisjZW5kaWYKIAogICAgIEZyYW1lKiBzdWJmcmFtZSA9IHN1YmZy
YW1lRm9ySGl0VGVzdFJlc3VsdChtZXYpOwogICAgIGlmIChzdWJmcmFtZSAmJiBwYXNzTW91c2VQ
cmVzc0V2ZW50VG9TdWJmcmFtZShtZXYsIHN1YmZyYW1lKSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBi
MjhjMzJiLi45OWVmNzY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAor
KysgYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNDkyLDkgKzQ5MiwxMSBAQCB2b2lk
IEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVlKQogICAgIGlmIChpc1BhaW50aW5n
KCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3BlY3RvclRpbWVsaW5lQWdlbnQo
KTsKICAgICBpZiAodGltZWxpbmVBZ2VudCkKICAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbExh
eW91dCgpOworI2VuZGlmCiAKICAgICBpZiAoIWFsbG93U3VidHJlZSAmJiBtX2xheW91dFJvb3Qp
IHsKICAgICAgICAgbV9sYXlvdXRSb290LT5tYXJrQ29udGFpbmluZ0Jsb2Nrc0ZvckxheW91dChm
YWxzZSk7CkBAIC02ODAsOCArNjgyLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBh
bGxvd1N1YnRyZWUpCiAgICAgICAgIEFTU0VSVChtX2VucXVldWVFdmVudHMpOwogICAgIH0KIAor
I2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKHRpbWVsaW5lQWdlbnQpCiAgICAgICAgIHRp
bWVsaW5lQWdlbnQtPmRpZExheW91dCgpOworI2VuZGlmCiAKICAgICBtX25lc3RlZExheW91dENv
dW50LS07CiB9CkBAIC0xNTA2LDkgKzE1MTAsMTEgQEAgdm9pZCBGcmFtZVZpZXc6OnBhaW50Q29u
dGVudHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlmICgh
ZnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpOwogICAgIGlmICh0aW1lbGluZUFnZW50KQogICAgICAgICB0aW1lbGluZUFnZW50LT53
aWxsUGFpbnQoKTsKKyNlbmRpZgogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUoKS0+
ZG9jdW1lbnQoKTsKIApAQCAtMTU3NCw4ICsxNTgwLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpwYWlu
dENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCogcCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBp
ZiAoaXNUb3BMZXZlbFBhaW50ZXIpCiAgICAgICAgIHNDdXJyZW50UGFpbnRUaW1lU3RhbXAgPSAw
OwogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAodGltZWxpbmVBZ2VudCkKICAgICAg
ICAgdGltZWxpbmVBZ2VudC0+ZGlkUGFpbnQoKTsKKyNlbmRpZgogfQogCiB2b2lkIEZyYW1lVmll
dzo6c2V0UGFpbnRSZXN0cmljdGlvbihQYWludFJlc3RyaWN0aW9uIHByKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4
IDA0YzM2YjQuLjYxN2E4ZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAor
KysgYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTIzNiw3ICsyMzYsOSBAQCBwcml2YXRl
OgogICAgIGJvb2wgdXBkYXRlV2lkZ2V0cygpOwogICAgIHZvaWQgc2Nyb2xsVG9BbmNob3IoKTsK
IAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogaW5z
cGVjdG9yVGltZWxpbmVBZ2VudCgpIGNvbnN0OworI2VuZGlmCiAgICAgCiAgICAgYm9vbCBoYXND
dXN0b21TY3JvbGxiYXJzKCkgY29uc3Q7CiAKQEAgLTMxNCwxMCArMzE2LDEyIEBAIHByaXZhdGU6
CiAgICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogbV9zY3JvbGxDb3JuZXI7CiB9OwogCisjaWYgRU5B
QkxFKElOU1BFQ1RPUikKIGlubGluZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiBGcmFtZVZpZXc6
Omluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSBjb25zdAogewogICAgIHJldHVybiBtX2ZyYW1lLT5w
YWdlKCkgPyBtX2ZyYW1lLT5wYWdlKCktPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSA6IDA7CiB9
CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNGM0M2VjZS4uZmVi
ZTMwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcApAQCAtMTAzLDcgKzEwMyw5IEBAIFBhZ2U6OlBhZ2UoQ2hyb21lQ2xpZW50KiBj
aHJvbWVDbGllbnQsIENvbnRleHRNZW51Q2xpZW50KiBjb250ZXh0TWVudUNsaWVudCwgRWRpCiAg
ICAgLCBtX2RyYWdDb250cm9sbGVyKG5ldyBEcmFnQ29udHJvbGxlcih0aGlzLCBkcmFnQ2xpZW50
KSkKICAgICAsIG1fZm9jdXNDb250cm9sbGVyKG5ldyBGb2N1c0NvbnRyb2xsZXIodGhpcykpCiAg
ICAgLCBtX2NvbnRleHRNZW51Q29udHJvbGxlcihuZXcgQ29udGV4dE1lbnVDb250cm9sbGVyKHRo
aXMsIGNvbnRleHRNZW51Q2xpZW50KSkKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICwgbV9p
bnNwZWN0b3JDb250cm9sbGVyKG5ldyBJbnNwZWN0b3JDb250cm9sbGVyKHRoaXMsIGluc3BlY3Rv
ckNsaWVudCkpCisjZW5kaWYKICAgICAsIG1fc2V0dGluZ3MobmV3IFNldHRpbmdzKHRoaXMpKQog
ICAgICwgbV9wcm9ncmVzcyhuZXcgUHJvZ3Jlc3NUcmFja2VyKQogICAgICwgbV9iYWNrRm9yd2Fy
ZExpc3QoQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUodGhpcykpCkBAIC0xMTcsNyArMTE5LDkgQEAg
UGFnZTo6UGFnZShDaHJvbWVDbGllbnQqIGNocm9tZUNsaWVudCwgQ29udGV4dE1lbnVDbGllbnQq
IGNvbnRleHRNZW51Q2xpZW50LCBFZGkKICAgICAsIG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxs
c0VuYWJsZWQodHJ1ZSkKICAgICAsIG1fbWVkaWFWb2x1bWUoMSkKICAgICAsIG1famF2YVNjcmlw
dFVSTHNBcmVBbGxvd2VkKHRydWUpCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAsIG1fcGFy
ZW50SW5zcGVjdG9yQ29udHJvbGxlcigwKQorI2VuZGlmCiAgICAgLCBtX2RpZExvYWRVc2VyU3R5
bGVTaGVldChmYWxzZSkKICAgICAsIG1fdXNlclN0eWxlU2hlZXRNb2RpZmljYXRpb25UaW1lKDAp
CiAgICAgLCBtX2dyb3VwKDApCkBAIC0xMjYsNiArMTMwLDkgQEAgUGFnZTo6UGFnZShDaHJvbWVD
bGllbnQqIGNocm9tZUNsaWVudCwgQ29udGV4dE1lbnVDbGllbnQqIGNvbnRleHRNZW51Q2xpZW50
LCBFZGkKICAgICAsIG1fY3VzdG9tSFRNTFRva2VuaXplckNodW5rU2l6ZSgtMSkKICAgICAsIG1f
Y2FuU3RhcnRQbHVnaW5zKHRydWUpCiB7CisjaWYgIUVOQUJMRShJTlNQRUNUT1IpCisgICAgVU5V
U0VEX1BBUkFNKGluc3BlY3RvckNsaWVudCk7CisjZW5kaWYKICAgICBpZiAoIWFsbFBhZ2VzKSB7
CiAgICAgICAgIGFsbFBhZ2VzID0gbmV3IEhhc2hTZXQ8UGFnZSo+OwogICAgICAgICAKQEAgLTE1
NCw5ICsxNjEsMTEgQEAgUGFnZTo6flBhZ2UoKQogICAgICAgICBmcmFtZS0+cGFnZURlc3Ryb3ll
ZCgpOwogCiAgICAgbV9lZGl0b3JDbGllbnQtPnBhZ2VEZXN0cm95ZWQoKTsKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogICAgIGlmIChtX3BhcmVudEluc3BlY3RvckNvbnRyb2xsZXIpCiAgICAgICAg
IG1fcGFyZW50SW5zcGVjdG9yQ29udHJvbGxlci0+cGFnZURlc3Ryb3llZCgpOwogICAgIG1faW5z
cGVjdG9yQ29udHJvbGxlci0+aW5zcGVjdGVkUGFnZURlc3Ryb3llZCgpOworI2VuZGlmCiAKICAg
ICBtX2JhY2tGb3J3YXJkTGlzdC0+Y2xvc2UoKTsKIApAQCAtNjUxLDkgKzY2MCwxMSBAQCBib29s
IFBhZ2U6OmphdmFTY3JpcHRVUkxzQXJlQWxsb3dlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1famF2
YVNjcmlwdFVSTHNBcmVBbGxvd2VkOwogfQogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQqIFBhZ2U6Omluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2luc3BlY3RvckNvbnRyb2xsZXItPnRpbWVsaW5lQWdlbnQoKTsKIH0K
KyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oIGIvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCAzYzhhYWZhLi5jOTkzMDNiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlLmgK
QEAgLTEyOCwxMiArMTI4LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRHJhZ0Nv
bnRyb2xsZXIqIGRyYWdDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9kcmFnQ29udHJvbGxl
ci5nZXQoKTsgfQogICAgICAgICBGb2N1c0NvbnRyb2xsZXIqIGZvY3VzQ29udHJvbGxlcigpIGNv
bnN0IHsgcmV0dXJuIG1fZm9jdXNDb250cm9sbGVyLmdldCgpOyB9CiAgICAgICAgIENvbnRleHRN
ZW51Q29udHJvbGxlciogY29udGV4dE1lbnVDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9j
b250ZXh0TWVudUNvbnRyb2xsZXIuZ2V0KCk7IH0KKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
ICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbnNwZWN0b3JDb250cm9sbGVyLmdldCgpOyB9CisjZW5kaWYKICAgICAgICAgU2V0
dGluZ3MqIHNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0aW5ncy5nZXQoKTsgfQogICAg
ICAgICBQcm9ncmVzc1RyYWNrZXIqIHByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9ncmVz
cy5nZXQoKTsgfQogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgdm9pZCBzZXRQYXJl
bnRJbnNwZWN0b3JDb250cm9sbGVyKEluc3BlY3RvckNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpIHsg
bV9wYXJlbnRJbnNwZWN0b3JDb250cm9sbGVyID0gY29udHJvbGxlcjsgfQogICAgICAgICBJbnNw
ZWN0b3JDb250cm9sbGVyKiBwYXJlbnRJbnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyByZXR1
cm4gbV9wYXJlbnRJbnNwZWN0b3JDb250cm9sbGVyOyB9CisjZW5kaWYKICAgICAgICAgCiAgICAg
ICAgIHZvaWQgc2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKGJvb2wgYikgeyBtX3RhYktl
eUN5Y2xlc1Rocm91Z2hFbGVtZW50cyA9IGI7IH0KICAgICAgICAgYm9vbCB0YWJLZXlDeWNsZXNU
aHJvdWdoRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX3RhYktleUN5Y2xlc1Rocm91Z2hFbGVt
ZW50czsgfQpAQCAtMjExLDcgKzIxNSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dm9pZCBzZXRKYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgamF2
YVNjcmlwdFVSTHNBcmVBbGxvd2VkKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQog
ICAgICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiBpbnNwZWN0b3JUaW1lbGluZUFnZW50KCkg
Y29uc3Q7CisjZW5kaWYKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGluaXRHcm91cCgpOwog
CkBAIC0yMjAsNyArMjI2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBPd25QdHI8
RHJhZ0NvbnRyb2xsZXI+IG1fZHJhZ0NvbnRyb2xsZXI7CiAgICAgICAgIE93blB0cjxGb2N1c0Nv
bnRyb2xsZXI+IG1fZm9jdXNDb250cm9sbGVyOwogICAgICAgICBPd25QdHI8Q29udGV4dE1lbnVD
b250cm9sbGVyPiBtX2NvbnRleHRNZW51Q29udHJvbGxlcjsKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgICAgICBPd25QdHI8SW5zcGVjdG9yQ29udHJvbGxlcj4gbV9pbnNwZWN0b3JDb250cm9s
bGVyOworI2VuZGlmCiAgICAgICAgIE93blB0cjxTZXR0aW5ncz4gbV9zZXR0aW5nczsKICAgICAg
ICAgT3duUHRyPFByb2dyZXNzVHJhY2tlcj4gbV9wcm9ncmVzczsKICAgICAgICAgCkBAIC0yNDgs
NyArMjU2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgbV9qYXZhU2Ny
aXB0VVJMc0FyZUFsbG93ZWQ7CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICBJbnNw
ZWN0b3JDb250cm9sbGVyKiBtX3BhcmVudEluc3BlY3RvckNvbnRyb2xsZXI7CisjZW5kaWYKIAog
ICAgICAgICBTdHJpbmcgbV91c2VyU3R5bGVTaGVldFBhdGg7CiAgICAgICAgIG11dGFibGUgU3Ry
aW5nIG1fdXNlclN0eWxlU2hlZXQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRl
eHRNZW51LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwCmluZGV4IGNjYTEx
YjUuLmE3Zjc4MzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwCkBAIC01MTQsNiArNTE0LDcg
QEAgdm9pZCBDb250ZXh0TWVudTo6cG9wdWxhdGUoKQogICAgIH0KIH0KIAorI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiB2b2lkIENvbnRleHRNZW51OjphZGRJbnNwZWN0RWxlbWVudEl0ZW0oKQogewog
ICAgIE5vZGUqIG5vZGUgPSBtX2hpdFRlc3RSZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCk7CkBA
IC01MzUsNiArNTM2LDcgQEAgdm9pZCBDb250ZXh0TWVudTo6YWRkSW5zcGVjdEVsZW1lbnRJdGVt
KCkKICAgICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCkpOwogICAgIGFwcGVuZEl0ZW0oSW5z
cGVjdEVsZW1lbnRJdGVtKTsKIH0KKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQogCiB2b2lk
IENvbnRleHRNZW51OjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVt
KSBjb25zdAogewpAQCAtNzcyLDcgKzc3NCw5IEBAIHZvaWQgQ29udGV4dE1lbnU6OmNoZWNrT3JF
bmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiAgICAgICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnU6CiAgICAgICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnUERGU2luZ2xlUGFnZVNjcm9sbGluZzoKICAgICAgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdQREZGYWNpbmdQYWdlc1Njcm9sbGluZzoKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50OgorI2VuZGlm
CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnOgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKaW5kZXggMWVj
NTNiNi4uMGM2YjgxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xMjEsNyAr
MTIxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdS
aWdodFRvTGVmdCwKICAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnUERGU2luZ2xlUGFnZVNjcm9s
bGluZywKICAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnUERGRmFjaW5nUGFnZXNTY3JvbGxpbmcs
CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnSW5zcGVj
dEVsZW1lbnQsCisjZW5kaWYKICAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlv
bk1lbnUsIC8vIFRleHQgRGlyZWN0aW9uIHN1Yi1tZW51CiAgICAgICAgIENvbnRleHRNZW51SXRl
bVRhZ1RleHREaXJlY3Rpb25EZWZhdWx0LAogICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdUZXh0
RGlyZWN0aW9uTGVmdFRvUmlnaHQsCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJh
c2UuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmNwcAppbmRleCBmMTg5MGY5Li5iZTBj
NDkwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAKQEAgLTEyMyw4ICsxMjMsMTAgQEAgUGFzc1JlZlB0cjxE
YXRhYmFzZT4gRGF0YWJhc2U6Om9wZW5EYXRhYmFzZShEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgbmEKIAogICAgIGRvY3VtZW50LT5zZXRIYXNPcGVuRGF0YWJhc2VzKCk7CiAKKyNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPmZyYW1l
KCktPnBhZ2UoKSkKICAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaWRPcGVu
RGF0YWJhc2UoZGF0YWJhc2UuZ2V0KCksIGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5ob3N0
KCksIG5hbWUsIGV4cGVjdGVkVmVyc2lvbik7CisjZW5kaWYKIAogICAgIHJldHVybiBkYXRhYmFz
ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcCBiL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAppbmRleCA0ZDdhZmQxLi4zNWM1MjBhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCkBAIC0yMzksNiArMjM5LDEwIEBAIHZvaWQgV29y
a2VyQ29udGV4dDo6Y2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElkKQogCiB2b2lkIFdvcmtlckNv
bnRleHQ6OmltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIGNvbnN0IFN0
cmluZyYgY2FsbGVyVVJMLCBpbnQgY2FsbGVyTGluZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Cisj
aWYgIUVOQUJMRShJTlNQRUNUT1IpCisgICAgVU5VU0VEX1BBUkFNKGNhbGxlclVSTCk7CisgICAg
VU5VU0VEX1BBUkFNKGNhbGxlckxpbmUpOworI2VuZGlmCiAgICAgZWMgPSAwOwogICAgIFZlY3Rv
cjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciB1cmxzRW5kID0gdXJscy5lbmQoKTsKICAgICBWZWN0
b3I8S1VSTD4gY29tcGxldGVkVVJMczsKQEAgLTI2Myw3ICsyNjcsOSBAQCB2b2lkIFdvcmtlckNv
bnRleHQ6OmltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIGNvbnN0IFN0
cmluZyYgY2FsbAogICAgICAgICB9CiAKICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5zY3JpcHRJbXBvcnRlZChzY3JpcHRMb2FkZXIuaWRlbnRpZmllcigpLCBzY3JpcHRMb2FkZXIu
c2NyaXB0KCkpOworI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+YWRkTWVzc2FnZShJbnNwZWN0b3JDb250cm9sbGVyRGVzdGluYXRpb24sIEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgIldvcmtlciBz
Y3JpcHQgaW1wb3J0ZWQ6IFwiIiArICppdCArICJcIi4iLCBjYWxsZXJMaW5lLCBjYWxsZXJVUkwp
OworI2VuZGlmCiAKICAgICAgICAgU2NyaXB0VmFsdWUgZXhjZXB0aW9uOwogICAgICAgICBtX3Nj
cmlwdC0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShzY3JpcHRMb2FkZXIuc2NyaXB0KCksICpp
dCksICZleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDYwMmZiZDUuLjNlODgz
MGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTg2NSw3ICs4NjUsOSBAQCB2b2lkIFhNTEh0
dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKICAg
ICAgICAgbV9yZXNwb25zZVRleHQgKz0gbV9kZWNvZGVyLT5mbHVzaCgpOwogCiAgICAgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5yZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoaWRl
bnRpZmllciwgbV9yZXNwb25zZVRleHQpOworI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRNZXNzYWdlKEluc3BlY3RvckNvbnRyb2xsZXJEZXN0
aW5hdGlvbiwgSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVs
LCAiWEhSIGZpbmlzaGVkIGxvYWRpbmc6IFwiIiArIG1fdXJsICsgIlwiLiIsIG1fbGFzdFNlbmRM
aW5lTnVtYmVyLCBtX2xhc3RTZW5kVVJMKTsKKyNlbmRpZgogCiAgICAgYm9vbCBoYWRMb2FkZXIg
PSBtX2xvYWRlcjsKICAgICBtX2xvYWRlciA9IDA7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0No
YW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDdmY2ZmNGMuLmU3MjNmNzUgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMDktMTQgIEdyZWcgQm9sc2luZ2EgIDxib2xzaW5nYUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIEVOQUJMRShJTlNQRUNUT1IpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yOTI2MAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50Lm1tOiBXcmFwIGVudGlyZSBmaWxlIGluIEVOQUJMRShJTlNQRUNUT1IpLgor
ICAgICAgICAqIFdlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3IubW06IERpdHRvLgorICAgICAgICAq
IFdlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbTogVXNlIEVOQUJMRShJTlNQRUNU
T1IpIHdoZXJlIGFwcGxpY2FibGUuCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOiBEaXR0
by4KKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1l
Omdyb3VwTmFtZTp1c2VzRG9jdW1lbnRWaWV3czpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfY2xv
c2VdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6IERpdHRvLgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlld0RhdGEubW06IERpdHRvLgorICAgICAgICAoLVtXZWJWaWV3UHJpdmF0
ZSBkZWFsbG9jXSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOiBEaXR0by4K
KwogMjAwOS0wOS0xMiAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggM2YwYjQzZC4uZWE4ZWFjOCAxMDA2NDQKLS0t
IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KKysrIGIv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2ltcG9ydCAiV2ViSW5zcGVjdG9yQ2xpZW50LmgiCiAKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJEZWxl
Z2F0ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5oIgogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5o
IgpAQCAtNDk1LDMgKzQ5Niw1IEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0b3JX
aW5kb3dPYmplY3RDbGVhcmVkKCkKIH0KIAogQGVuZAorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BF
Q1RPUikKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5t
bSBiL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5tbQppbmRleCBjMDRhNTZj
Li44NjY3OTBmIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNwZWN0
b3IubW0KKysrIGIvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1tCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW1wb3J0ICJXZWJJbnNwZWN0b3IuaCIKICNpbXBvcnQgIldlYkZyYW1l
SW50ZXJuYWwuaCIKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAjaW5jbHVkZSA8V2ViQ29yZS9E
b2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0luc3BlY3RvckNvbnRyb2xsZXIuaD4KQEAgLTIxNCwzICsyMTUsNSBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKICAgICBbc2VsZiBzaG93OnNlbmRlcl07CiB9CiBAZW5kCisKKyNlbmRpZiAv
LyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3Iv
V2ViTm9kZUhpZ2hsaWdodFZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2Rl
SGlnaGxpZ2h0Vmlldy5tbQppbmRleCBiM2NkNjllLi44ZDM5ZTgyIDEwMDY0NAotLS0gYS9XZWJL
aXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbQorKysgYi9XZWJLaXQv
bWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbQpAQCAtNjUsNiArNjUsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICByZXR1cm4gWUVTOwogfQogCisjaWYgRU5B
QkxFKElOU1BFQ1RPUikKIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0IAogewogICAgIFtO
U0dyYXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0ZV07CkBAIC03Niw2ICs3Nyw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHJlc3RvcmVH
cmFwaGljc1N0YXRlXTsKIH0KKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQogCiAtIChXZWJO
b2RlSGlnaGxpZ2h0ICopd2ViTm9kZUhpZ2hsaWdodAogewpkaWZmIC0tZ2l0IGEvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRl
eCBiN2VkYThlLi43ODEwMWVkIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNjE5LDcgKzYxOSwx
MiBAQCBzdGF0aWMgYm9vbCBydW5uaW5nVGlnZXJNYWlsKCkKICAgICAgICAgZGlkT25lVGltZUlu
aXRpYWxpemF0aW9uID0gdHJ1ZTsKICAgICB9CiAKLSAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQ
YWdlKG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZiksIG5ldyBXZWJDb250ZXh0TWVudUNsaWVudChz
ZWxmKSwgbmV3IFdlYkVkaXRvckNsaWVudChzZWxmKSwgbmV3IFdlYkRyYWdDbGllbnQoc2VsZiks
IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZikpOworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisg
ICAgV2ViSW5zcGVjdG9yQ2xpZW50ICp3ZWJJbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVj
dG9yQ2xpZW50KHNlbGYpOworI2Vsc2UKKyAgICBXZWJJbnNwZWN0b3JDbGllbnQgKndlYkluc3Bl
Y3RvckNsaWVudCA9IDA7CisjZW5kaWYKKyAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKG5l
dyBXZWJDaHJvbWVDbGllbnQoc2VsZiksIG5ldyBXZWJDb250ZXh0TWVudUNsaWVudChzZWxmKSwg
bmV3IFdlYkVkaXRvckNsaWVudChzZWxmKSwgbmV3IFdlYkRyYWdDbGllbnQoc2VsZiksIHdlYklu
c3BlY3RvckNsaWVudCk7CiAKICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0TG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoKFtbc2VsZiBwcmVmZXJlbmNlc10gX2xvY2FsU3RvcmFnZURh
dGFiYXNlUGF0aF0pOwogCkBAIC0xMDExLDcgKzEwMTYsOSBAQCBzdGF0aWMgYm9vbCBmYXN0RG9j
dW1lbnRUZWFyZG93bkVuYWJsZWQoKQogICAgIFtzZWxmIHNldFNjcmlwdERlYnVnRGVsZWdhdGU6
bmlsXTsKICAgICBbc2VsZiBzZXRVSURlbGVnYXRlOm5pbF07CiAKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgIFtfcHJpdmF0ZS0+aW5zcGVjdG9yIHdlYlZpZXdDbG9zZWRdOworI2VuZGlmCiAK
ICAgICAvLyBzZXRIb3N0V2luZG93Om5pbCBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhpcyB2YWx1
ZSBpcyBzZXQgKHNlZSA1NDA4MTg2KQogICAgIF9wcml2YXRlLT5jbG9zZWQgPSBZRVM7CkBAIC0x
MTE1LDEyICsxMTIyLDE0IEBAIHN0YXRpYyBib29sIGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxl
ZCgpCiAgICAgcmV0dXJuIG5ld1dpbmRvd1dlYlZpZXc7CiB9CiAKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogLSAoV2ViSW5zcGVjdG9yICopaW5zcGVjdG9yCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+
aW5zcGVjdG9yKQogICAgICAgICBfcHJpdmF0ZS0+aW5zcGVjdG9yID0gW1tXZWJJbnNwZWN0b3Ig
YWxsb2NdIGluaXRXaXRoV2ViVmlldzpzZWxmXTsKICAgICByZXR1cm4gX3ByaXZhdGUtPmluc3Bl
Y3RvcjsKIH0KKyNlbmRpZgogCiAtIChXZWJDb3JlOjpQYWdlKilwYWdlCiB7CmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3RGF0YS5oCmluZGV4IDkxZDgzYTcuLjQzZGYyYzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5oCkBAIC02NSw3ICs2NSw5IEBAIGV4dGVybiBpbnQgcGx1Z2luRGF0YWJhc2VDbGllbnRD
b3VudDsKICAgICBpZCBlZGl0aW5nRGVsZWdhdGVGb3J3YXJkZXI7CiAgICAgaWQgc2NyaXB0RGVi
dWdEZWxlZ2F0ZTsKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgV2ViSW5zcGVjdG9yICpp
bnNwZWN0b3I7CisjZW5kaWYKICAgICBXZWJOb2RlSGlnaGxpZ2h0ICpjdXJyZW50Tm9kZUhpZ2hs
aWdodDsKIAogICAgIEJPT0wgYWxsb3dzVW5kbzsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3RGF0YS5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQpp
bmRleCA0OGU3ZjZjLi42NmFlYTQxIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCkBAIC04
Myw3ICs4Myw5IEBAIGludCBwbHVnaW5EYXRhYmFzZUNsaWVudENvdW50ID0gMDsKIAogICAgIFth
cHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgcmVsZWFzZV07CiAgICAgW2JhY2tncm91bmRDb2xv
ciByZWxlYXNlXTsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFtpbnNwZWN0b3IgcmVsZWFz
ZV07CisjZW5kaWYKICAgICBbY3VycmVudE5vZGVIaWdobGlnaHQgcmVsZWFzZV07CiAgICAgW2hv
c3RXaW5kb3cgcmVsZWFzZV07CiAgICAgW3BvbGljeURlbGVnYXRlRm9yd2FyZGVyIHJlbGVhc2Vd
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmggYi9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAppbmRleCAxNWI3ZDQyLi5iYjhmZmQ0IDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAorKysgYi9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaApAQCAtMTkwLDcgKzE5MCw5IEBAIHR5cGVk
ZWYgZW51bSB7CiAKIEBpbnRlcmZhY2UgV2ViVmlldyAoV2ViUHJpdmF0ZSkKIAorI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAtIChXZWJJbnNwZWN0b3IgKilpbnNwZWN0b3I7CisjZW5kaWYKIAogLyoh
CiAgICAgQG1ldGhvZCBzZXRCYWNrZ3JvdW5kQ29sb3I6Ci0tIAoxLjYuMy4zCgo=
</data>
<flag name="review"
          id="20685"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
    <flag name="commit-queue"
          id="20768"
          type_id="3"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>