<?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>116606</bug_id>
          
          <creation_ts>2013-05-22 03:53:45 -0700</creation_ts>
          <short_desc>Move RunLoop from WebCore to WTF</short_desc>
          <delta_ts>2013-11-09 12:57:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>118125</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>nick.diego</cc>
    
    <cc>philn</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>892214</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-05-22 03:53:45 -0700</bug_when>
    <thetext>Move RunLoop from WebCore to WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892216</commentid>
    <comment_count>1</comment_count>
      <attachid>202518</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-05-22 03:59:00 -0700</bug_when>
    <thetext>Created attachment 202518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892217</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-22 04:01:01 -0700</bug_when>
    <thetext>Attachment 202518 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/WTF.vcproj/WTF.vcproj&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj&apos;, u&apos;Source/WTF/WTF.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;, u&apos;Source/WTF/wtf/PlatformBlackBerry.cmake&apos;, u&apos;Source/WTF/wtf/PlatformEfl.cmake&apos;, u&apos;Source/WTF/wtf/PlatformGTK.cmake&apos;, u&apos;Source/WTF/wtf/PlatformWinCE.cmake&apos;, u&apos;Source/WTF/wtf/RunLoop.cpp&apos;, u&apos;Source/WTF/wtf/RunLoop.h&apos;, u&apos;Source/WTF/wtf/WindowsExtras.h&apos;, u&apos;Source/WTF/wtf/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WTF/wtf/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WTF/wtf/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WTF/wtf/mac/RunLoopMac.mm&apos;, u&apos;Source/WTF/wtf/qt/RunLoopQt.cpp&apos;, u&apos;Source/WTF/wtf/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/PlatformBlackBerry.cmake&apos;, u&apos;Source/WebCore/PlatformEfl.cmake&apos;, u&apos;Source/WebCore/PlatformGTK.cmake&apos;, u&apos;Source/WebCore/PlatformWinCE.cmake&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/WebCore.vcproj/WebCore.vcproj&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/PlatformKeyboardEvent.h&apos;, u&apos;Source/WebCore/platform/PlatformMouseEvent.h&apos;, u&apos;Source/WebCore/platform/PlatformWheelEvent.h&apos;, u&apos;Source/WebCore/platform/RunLoop.cpp&apos;, u&apos;Source/WebCore/platform/RunLoop.h&apos;, u&apos;Source/WebCore/platform/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/cf/RunLoopCF.cpp&apos;, u&apos;Source/WebCore/platform/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WebCore/platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h&apos;, u&apos;Source/WebCore/platform/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WebCore/platform/mac/RunLoopMac.mm&apos;, u&apos;Source/WebCore/platform/qt/RunLoopQt.cpp&apos;, u&apos;Source/WebCore/platform/win/MIMETypeRegistryWin.cpp&apos;, u&apos;Source/WebCore/platform/win/PasteboardWin.cpp&apos;, u&apos;Source/WebCore/platform/win/PopupMenuWin.cpp&apos;, u&apos;Source/WebCore/platform/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/platform/win/SharedTimerWin.cpp&apos;, u&apos;Source/WebCore/platform/win/WindowMessageListener.h&apos;, u&apos;Source/WebCore/platform/win/WindowsExtras.h&apos;, u&apos;Source/WebCore/plugins/win/PluginDatabaseWin.cpp&apos;, u&apos;Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/History/WebBackForwardList.mm&apos;, u&apos;Source/WebKit/mac/History/WebHistoryItem.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebCache.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebElementDictionary.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebIconDatabase.mm&apos;, u&apos;Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBasePluginPackage.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebArchive.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebDataSource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebHTMLView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebPreferences.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebResource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebTextIterator.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebViewData.mm&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.h&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.h&apos;, u&apos;Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.h&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/PluginProcess/PluginControllerProxy.h&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.h&apos;, u&apos;Source/WebKit2/PluginProcess/WebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.h&apos;, u&apos;Source/WebKit2/Shared/ChildProcessProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h&apos;, u&apos;Source/WebKit2/Shared/WebKit2Initialize.cpp&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.cpp&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKView.mm&apos;, u&apos;Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.h&apos;, u&apos;Source/WebKit2/UIProcess/SharedWorkers/SharedWorkerProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/VisitedLinkProvider.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageOverlay.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/efl/RunLoopEfl.cpp:61:  Omit int when using unsigned  [runtime/unsigned] [1]
Source/WTF/wtf/RunLoop.cpp:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WTF/wtf/win/RunLoopWin.cpp:102:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/WTF/wtf/WindowsExtras.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WTF/wtf/WindowsExtras.h:35:  HWND_MESSAGE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/RunLoop.h:180:  Omit int when using unsigned  [runtime/unsigned] [1]
Total errors found: 6 in 99 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892220</commentid>
    <comment_count>3</comment_count>
      <attachid>202518</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-22 04:05:28 -0700</bug_when>
    <thetext>Comment on attachment 202518
Patch

Attachment 202518 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/541139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892221</commentid>
    <comment_count>4</comment_count>
      <attachid>202518</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-22 04:05:38 -0700</bug_when>
    <thetext>Comment on attachment 202518
Patch

Attachment 202518 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/550115</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892222</commentid>
    <comment_count>5</comment_count>
      <attachid>202518</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-05-22 04:05:40 -0700</bug_when>
    <thetext>Comment on attachment 202518
Patch

Attachment 202518 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/555103</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892224</commentid>
    <comment_count>6</comment_count>
      <attachid>202518</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-22 04:07:22 -0700</bug_when>
    <thetext>Comment on attachment 202518
Patch

Attachment 202518 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/542110</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892355</commentid>
    <comment_count>7</comment_count>
      <attachid>202518</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-05-22 09:18:29 -0700</bug_when>
    <thetext>Comment on attachment 202518
Patch

I like this change, but it looks like it didn&apos;t build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892395</commentid>
    <comment_count>8</comment_count>
      <attachid>202576</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-05-22 11:05:25 -0700</bug_when>
    <thetext>Created attachment 202576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892397</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-22 11:06:58 -0700</bug_when>
    <thetext>Attachment 202576 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/WTF.vcproj/WTF.vcproj&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj&apos;, u&apos;Source/WTF/WTF.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;, u&apos;Source/WTF/wtf/PlatformBlackBerry.cmake&apos;, u&apos;Source/WTF/wtf/PlatformEfl.cmake&apos;, u&apos;Source/WTF/wtf/PlatformGTK.cmake&apos;, u&apos;Source/WTF/wtf/PlatformWinCE.cmake&apos;, u&apos;Source/WTF/wtf/RunLoop.cpp&apos;, u&apos;Source/WTF/wtf/RunLoop.h&apos;, u&apos;Source/WTF/wtf/WindowsExtras.h&apos;, u&apos;Source/WTF/wtf/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WTF/wtf/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WTF/wtf/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WTF/wtf/mac/RunLoopMac.mm&apos;, u&apos;Source/WTF/wtf/qt/RunLoopQt.cpp&apos;, u&apos;Source/WTF/wtf/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/PlatformBlackBerry.cmake&apos;, u&apos;Source/WebCore/PlatformEfl.cmake&apos;, u&apos;Source/WebCore/PlatformGTK.cmake&apos;, u&apos;Source/WebCore/PlatformWinCE.cmake&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/WebCore.vcproj/WebCore.vcproj&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingThread.h&apos;, u&apos;Source/WebCore/platform/PlatformKeyboardEvent.h&apos;, u&apos;Source/WebCore/platform/PlatformMouseEvent.h&apos;, u&apos;Source/WebCore/platform/PlatformWheelEvent.h&apos;, u&apos;Source/WebCore/platform/RunLoop.cpp&apos;, u&apos;Source/WebCore/platform/RunLoop.h&apos;, u&apos;Source/WebCore/platform/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/cf/RunLoopCF.cpp&apos;, u&apos;Source/WebCore/platform/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h&apos;, u&apos;Source/WebCore/platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h&apos;, u&apos;Source/WebCore/platform/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WebCore/platform/mac/RunLoopMac.mm&apos;, u&apos;Source/WebCore/platform/qt/RunLoopQt.cpp&apos;, u&apos;Source/WebCore/platform/win/MIMETypeRegistryWin.cpp&apos;, u&apos;Source/WebCore/platform/win/PasteboardWin.cpp&apos;, u&apos;Source/WebCore/platform/win/PopupMenuWin.cpp&apos;, u&apos;Source/WebCore/platform/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/platform/win/SharedTimerWin.cpp&apos;, u&apos;Source/WebCore/platform/win/WindowMessageListener.h&apos;, u&apos;Source/WebCore/platform/win/WindowsExtras.h&apos;, u&apos;Source/WebCore/plugins/win/PluginDatabaseWin.cpp&apos;, u&apos;Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/History/WebBackForwardList.mm&apos;, u&apos;Source/WebKit/mac/History/WebHistoryItem.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebCache.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebElementDictionary.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebIconDatabase.mm&apos;, u&apos;Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBasePluginPackage.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebArchive.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebDataSource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebHTMLView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebPreferences.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebResource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebTextIterator.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebViewData.mm&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.h&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.h&apos;, u&apos;Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.h&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/PluginProcess/PluginControllerProxy.h&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.h&apos;, u&apos;Source/WebKit2/PluginProcess/WebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.h&apos;, u&apos;Source/WebKit2/Shared/ChildProcessProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h&apos;, u&apos;Source/WebKit2/Shared/WebKit2Initialize.cpp&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.cpp&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKView.mm&apos;, u&apos;Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.h&apos;, u&apos;Source/WebKit2/UIProcess/SharedWorkers/SharedWorkerProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/VisitedLinkProvider.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageOverlay.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/efl/RunLoopEfl.cpp:61:  Omit int when using unsigned  [runtime/unsigned] [1]
Source/WTF/wtf/RunLoop.cpp:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WTF/wtf/win/RunLoopWin.cpp:102:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/WTF/wtf/WindowsExtras.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WTF/wtf/WindowsExtras.h:35:  HWND_MESSAGE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/RunLoop.h:180:  Omit int when using unsigned  [runtime/unsigned] [1]
Total errors found: 6 in 102 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892402</commentid>
    <comment_count>10</comment_count>
      <attachid>202576</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-22 11:17:13 -0700</bug_when>
    <thetext>Comment on attachment 202576
Patch

Attachment 202576 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/553220</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892485</commentid>
    <comment_count>11</comment_count>
      <attachid>202611</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-05-22 12:19:06 -0700</bug_when>
    <thetext>Created attachment 202611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892486</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-22 12:20:42 -0700</bug_when>
    <thetext>Attachment 202611 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/WTF.vcproj/WTF.vcproj&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj&apos;, u&apos;Source/WTF/WTF.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;, u&apos;Source/WTF/wtf/PlatformBlackBerry.cmake&apos;, u&apos;Source/WTF/wtf/PlatformEfl.cmake&apos;, u&apos;Source/WTF/wtf/PlatformGTK.cmake&apos;, u&apos;Source/WTF/wtf/PlatformWinCE.cmake&apos;, u&apos;Source/WTF/wtf/RunLoop.cpp&apos;, u&apos;Source/WTF/wtf/RunLoop.h&apos;, u&apos;Source/WTF/wtf/WindowsExtras.h&apos;, u&apos;Source/WTF/wtf/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WTF/wtf/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WTF/wtf/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WTF/wtf/mac/RunLoopMac.mm&apos;, u&apos;Source/WTF/wtf/qt/RunLoopQt.cpp&apos;, u&apos;Source/WTF/wtf/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/PlatformBlackBerry.cmake&apos;, u&apos;Source/WebCore/PlatformEfl.cmake&apos;, u&apos;Source/WebCore/PlatformGTK.cmake&apos;, u&apos;Source/WebCore/PlatformWinCE.cmake&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/WebCore.vcproj/WebCore.vcproj&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingThread.h&apos;, u&apos;Source/WebCore/platform/PlatformKeyboardEvent.h&apos;, u&apos;Source/WebCore/platform/PlatformMouseEvent.h&apos;, u&apos;Source/WebCore/platform/PlatformWheelEvent.h&apos;, u&apos;Source/WebCore/platform/RunLoop.cpp&apos;, u&apos;Source/WebCore/platform/RunLoop.h&apos;, u&apos;Source/WebCore/platform/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/cf/RunLoopCF.cpp&apos;, u&apos;Source/WebCore/platform/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h&apos;, u&apos;Source/WebCore/platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h&apos;, u&apos;Source/WebCore/platform/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WebCore/platform/mac/RunLoopMac.mm&apos;, u&apos;Source/WebCore/platform/qt/RunLoopQt.cpp&apos;, u&apos;Source/WebCore/platform/win/MIMETypeRegistryWin.cpp&apos;, u&apos;Source/WebCore/platform/win/PasteboardWin.cpp&apos;, u&apos;Source/WebCore/platform/win/PopupMenuWin.cpp&apos;, u&apos;Source/WebCore/platform/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/platform/win/SharedTimerWin.cpp&apos;, u&apos;Source/WebCore/platform/win/WindowMessageListener.h&apos;, u&apos;Source/WebCore/platform/win/WindowsExtras.h&apos;, u&apos;Source/WebCore/plugins/win/PluginDatabaseWin.cpp&apos;, u&apos;Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/History/WebBackForwardList.mm&apos;, u&apos;Source/WebKit/mac/History/WebHistoryItem.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebCache.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebElementDictionary.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebIconDatabase.mm&apos;, u&apos;Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBasePluginPackage.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebArchive.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebDataSource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebHTMLView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebPreferences.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebResource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebTextIterator.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebViewData.mm&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.h&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.h&apos;, u&apos;Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.h&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/PluginProcess/PluginControllerProxy.h&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.h&apos;, u&apos;Source/WebKit2/PluginProcess/WebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.h&apos;, u&apos;Source/WebKit2/Shared/ChildProcessProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h&apos;, u&apos;Source/WebKit2/Shared/WebKit2Initialize.cpp&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.cpp&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKView.mm&apos;, u&apos;Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/efl/ProcessLauncherEfl.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.h&apos;, u&apos;Source/WebKit2/UIProcess/SharedWorkers/SharedWorkerProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/VisitedLinkProvider.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageOverlay.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp&apos;, u&apos;Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp&apos;, u&apos;Source/WebKit2/WebProcess/qt/WebProcessMainQt.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/efl/RunLoopEfl.cpp:61:  Omit int when using unsigned  [runtime/unsigned] [1]
Source/WTF/wtf/RunLoop.cpp:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WTF/wtf/win/RunLoopWin.cpp:102:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/WTF/wtf/WindowsExtras.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WTF/wtf/WindowsExtras.h:35:  HWND_MESSAGE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/RunLoop.h:180:  Omit int when using unsigned  [runtime/unsigned] [1]
Total errors found: 6 in 111 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892503</commentid>
    <comment_count>13</comment_count>
      <attachid>202611</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-05-22 12:52:02 -0700</bug_when>
    <thetext>Comment on attachment 202611
Patch

Attachment 202611 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/542254</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892849</commentid>
    <comment_count>14</comment_count>
      <attachid>202705</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-05-23 07:05:22 -0700</bug_when>
    <thetext>Created attachment 202705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892851</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-23 07:06:57 -0700</bug_when>
    <thetext>Attachment 202705 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/WTF.vcproj/WTF.vcproj&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj&apos;, u&apos;Source/WTF/WTF.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;, u&apos;Source/WTF/wtf/PlatformBlackBerry.cmake&apos;, u&apos;Source/WTF/wtf/PlatformEfl.cmake&apos;, u&apos;Source/WTF/wtf/PlatformGTK.cmake&apos;, u&apos;Source/WTF/wtf/PlatformWinCE.cmake&apos;, u&apos;Source/WTF/wtf/RunLoop.cpp&apos;, u&apos;Source/WTF/wtf/RunLoop.h&apos;, u&apos;Source/WTF/wtf/WindowsExtras.h&apos;, u&apos;Source/WTF/wtf/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WTF/wtf/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WTF/wtf/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WTF/wtf/mac/RunLoopMac.mm&apos;, u&apos;Source/WTF/wtf/qt/RunLoopQt.cpp&apos;, u&apos;Source/WTF/wtf/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/PlatformBlackBerry.cmake&apos;, u&apos;Source/WebCore/PlatformEfl.cmake&apos;, u&apos;Source/WebCore/PlatformGTK.cmake&apos;, u&apos;Source/WebCore/PlatformWinCE.cmake&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/WebCore.vcproj/WebCore.vcproj&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingThread.h&apos;, u&apos;Source/WebCore/platform/PlatformKeyboardEvent.h&apos;, u&apos;Source/WebCore/platform/PlatformMouseEvent.h&apos;, u&apos;Source/WebCore/platform/PlatformWheelEvent.h&apos;, u&apos;Source/WebCore/platform/RunLoop.cpp&apos;, u&apos;Source/WebCore/platform/RunLoop.h&apos;, u&apos;Source/WebCore/platform/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/cf/RunLoopCF.cpp&apos;, u&apos;Source/WebCore/platform/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h&apos;, u&apos;Source/WebCore/platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h&apos;, u&apos;Source/WebCore/platform/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WebCore/platform/mac/RunLoopMac.mm&apos;, u&apos;Source/WebCore/platform/qt/RunLoopQt.cpp&apos;, u&apos;Source/WebCore/platform/win/MIMETypeRegistryWin.cpp&apos;, u&apos;Source/WebCore/platform/win/PasteboardWin.cpp&apos;, u&apos;Source/WebCore/platform/win/PopupMenuWin.cpp&apos;, u&apos;Source/WebCore/platform/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/platform/win/SharedTimerWin.cpp&apos;, u&apos;Source/WebCore/platform/win/WindowMessageListener.h&apos;, u&apos;Source/WebCore/platform/win/WindowsExtras.h&apos;, u&apos;Source/WebCore/plugins/win/PluginDatabaseWin.cpp&apos;, u&apos;Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/History/WebBackForwardList.mm&apos;, u&apos;Source/WebKit/mac/History/WebHistoryItem.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebCache.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebElementDictionary.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebIconDatabase.mm&apos;, u&apos;Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBasePluginPackage.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebArchive.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebDataSource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebHTMLView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebPreferences.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebResource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebTextIterator.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebViewData.mm&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.h&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.h&apos;, u&apos;Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.h&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/PluginProcess/PluginControllerProxy.h&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.h&apos;, u&apos;Source/WebKit2/PluginProcess/WebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.h&apos;, u&apos;Source/WebKit2/Shared/ChildProcessProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h&apos;, u&apos;Source/WebKit2/Shared/WebKit2Initialize.cpp&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.cpp&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKView.mm&apos;, u&apos;Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/efl/ProcessLauncherEfl.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.h&apos;, u&apos;Source/WebKit2/UIProcess/SharedWorkers/SharedWorkerProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/VisitedLinkProvider.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageOverlay.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp&apos;, u&apos;Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp&apos;, u&apos;Source/WebKit2/WebProcess/qt/WebProcessMainQt.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/efl/RunLoopEfl.cpp:61:  Omit int when using unsigned  [runtime/unsigned] [1]
Source/WTF/wtf/RunLoop.cpp:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WTF/wtf/win/RunLoopWin.cpp:102:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/WTF/wtf/WindowsExtras.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WTF/wtf/WindowsExtras.h:35:  HWND_MESSAGE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/RunLoop.h:180:  Omit int when using unsigned  [runtime/unsigned] [1]
Total errors found: 6 in 111 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893421</commentid>
    <comment_count>16</comment_count>
      <attachid>202705</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-24 13:19:49 -0700</bug_when>
    <thetext>Comment on attachment 202705
Patch

This will make JSC link against AppKit, which is something we don’t want. I’ll try to come up with a better solution for that that’s specific for WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937947</commentid>
    <comment_count>17</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-09 09:33:38 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 202705 [details])
&gt; This will make JSC link against AppKit, which is something we don’t want. I’ll try to come up with a better solution for that that’s specific for WebKit2.

I removed RunLoopMac in http://trac.webkit.org/changeset/157168.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937958</commentid>
    <comment_count>18</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-10-09 09:43:09 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; (From update of attachment 202705 [details] [details])
&gt; &gt; This will make JSC link against AppKit, which is something we don’t want. I’ll try to come up with a better solution for that that’s specific for WebKit2.
&gt; 
&gt; I removed RunLoopMac in http://trac.webkit.org/changeset/157168.

Is it ok to start working on this again, or will it conflict with other stuff you want to do in the near future?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937984</commentid>
    <comment_count>19</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-09 10:48:13 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Is it ok to start working on this again, or will it conflict with other stuff you want to do in the near future?

Should be OK to work on this now!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941742</commentid>
    <comment_count>20</comment_count>
      <attachid>214708</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-10-21 00:37:48 -0700</bug_when>
    <thetext>Created attachment 214708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941743</commentid>
    <comment_count>21</comment_count>
      <attachid>214709</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-10-21 00:45:26 -0700</bug_when>
    <thetext>Created attachment 214709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941744</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-21 00:48:41 -0700</bug_when>
    <thetext>Attachment 214709 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj&apos;, u&apos;Source/WTF/WTF.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;, u&apos;Source/WTF/wtf/PlatformBlackBerry.cmake&apos;, u&apos;Source/WTF/wtf/PlatformEfl.cmake&apos;, u&apos;Source/WTF/wtf/PlatformGTK.cmake&apos;, u&apos;Source/WTF/wtf/PlatformWin.cmake&apos;, u&apos;Source/WTF/wtf/RunLoop.cpp&apos;, u&apos;Source/WTF/wtf/RunLoop.h&apos;, u&apos;Source/WTF/wtf/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WTF/wtf/cf/RunLoopCF.cpp&apos;, u&apos;Source/WTF/wtf/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WTF/wtf/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WTF/wtf/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/PlatformBlackBerry.cmake&apos;, u&apos;Source/WebCore/PlatformEfl.cmake&apos;, u&apos;Source/WebCore/PlatformGTK.cmake&apos;, u&apos;Source/WebCore/PlatformWin.cmake&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/RunLoop.cpp&apos;, u&apos;Source/WebCore/platform/RunLoop.h&apos;, u&apos;Source/WebCore/platform/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/cf/RunLoopCF.cpp&apos;, u&apos;Source/WebCore/platform/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h&apos;, u&apos;Source/WebCore/platform/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WebCore/platform/win/RunLoopWin.cpp&apos;, u&apos;Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/History/WebBackForwardList.mm&apos;, u&apos;Source/WebKit/mac/History/WebHistoryItem.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebCache.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebElementDictionary.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebIconDatabase.mm&apos;, u&apos;Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBasePluginPackage.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebArchive.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebDataSource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebHTMLView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebPreferences.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebResource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebTextIterator.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebViewData.mm&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.h&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.h&apos;, u&apos;Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.h&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/PluginProcess/PluginControllerProxy.h&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.h&apos;, u&apos;Source/WebKit2/PluginProcess/WebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.h&apos;, u&apos;Source/WebKit2/Shared/ChildProcessProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm&apos;, u&apos;Source/WebKit2/Shared/Plugins/NPObjectProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/WebKit2Initialize.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKView.mm&apos;, u&apos;Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/efl/ProcessLauncherEfl.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.h&apos;, u&apos;Source/WebKit2/UIProcess/VisitedLinkProvider.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebProcessProxy.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageOverlay.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp&apos;, u&apos;Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/RunLoop.cpp:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 93 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941751</commentid>
    <comment_count>23</comment_count>
      <attachid>214709</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-21 01:40:01 -0700</bug_when>
    <thetext>Comment on attachment 214709
Patch

Attachment 214709 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/7128059</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941753</commentid>
    <comment_count>24</comment_count>
      <attachid>214714</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-10-21 01:51:41 -0700</bug_when>
    <thetext>Created attachment 214714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941755</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-21 01:53:29 -0700</bug_when>
    <thetext>Attachment 214714 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj&apos;, u&apos;Source/WTF/WTF.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;, u&apos;Source/WTF/wtf/PlatformBlackBerry.cmake&apos;, u&apos;Source/WTF/wtf/PlatformEfl.cmake&apos;, u&apos;Source/WTF/wtf/PlatformGTK.cmake&apos;, u&apos;Source/WTF/wtf/PlatformWin.cmake&apos;, u&apos;Source/WTF/wtf/RunLoop.cpp&apos;, u&apos;Source/WTF/wtf/RunLoop.h&apos;, u&apos;Source/WTF/wtf/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WTF/wtf/cf/RunLoopCF.cpp&apos;, u&apos;Source/WTF/wtf/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WTF/wtf/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WTF/wtf/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/PlatformBlackBerry.cmake&apos;, u&apos;Source/WebCore/PlatformEfl.cmake&apos;, u&apos;Source/WebCore/PlatformGTK.cmake&apos;, u&apos;Source/WebCore/PlatformWin.cmake&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/RunLoop.cpp&apos;, u&apos;Source/WebCore/platform/RunLoop.h&apos;, u&apos;Source/WebCore/platform/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/cf/RunLoopCF.cpp&apos;, u&apos;Source/WebCore/platform/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h&apos;, u&apos;Source/WebCore/platform/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WebCore/platform/win/RunLoopWin.cpp&apos;, u&apos;Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/History/WebBackForwardList.mm&apos;, u&apos;Source/WebKit/mac/History/WebHistoryItem.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebCache.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebElementDictionary.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebIconDatabase.mm&apos;, u&apos;Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBasePluginPackage.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebArchive.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebDataSource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebHTMLView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebPreferences.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebResource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebTextIterator.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebViewData.mm&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.h&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.h&apos;, u&apos;Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.h&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/PluginProcess/PluginControllerProxy.h&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.h&apos;, u&apos;Source/WebKit2/PluginProcess/WebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.h&apos;, u&apos;Source/WebKit2/Shared/ChildProcessProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm&apos;, u&apos;Source/WebKit2/Shared/Plugins/NPObjectProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/WebKit2Initialize.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKView.mm&apos;, u&apos;Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/efl/ProcessLauncherEfl.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.h&apos;, u&apos;Source/WebKit2/UIProcess/VisitedLinkProvider.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebProcessProxy.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageOverlay.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp&apos;, u&apos;Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/RunLoop.cpp:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 93 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945436</commentid>
    <comment_count>26</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-10-31 01:15:56 -0700</bug_when>
    <thetext>@andersca: ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948714</commentid>
    <comment_count>27</comment_count>
      <attachid>214714</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-08 10:17:47 -0800</bug_when>
    <thetext>Comment on attachment 214714
Patch

Rejecting attachment 214714 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 214714, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
cceeded at 862 (offset 7 lines).
Hunk #2 FAILED at 904.
1 out of 2 hunks FAILED -- saving rejects to file Source/WebKit2/WebProcess/WebPage/WebPage.h.rej
patching file Source/WebKit2/WebProcess/WebProcess.cpp
patching file Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp
patching file Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Anders Carlsson&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/22778480</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949022</commentid>
    <comment_count>28</comment_count>
      <attachid>216487</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-11-09 01:54:32 -0800</bug_when>
    <thetext>Created attachment 216487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949023</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-09 01:56:56 -0800</bug_when>
    <thetext>Attachment 216487 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj&apos;, u&apos;Source/WTF/WTF.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;, u&apos;Source/WTF/wtf/PlatformBlackBerry.cmake&apos;, u&apos;Source/WTF/wtf/PlatformEfl.cmake&apos;, u&apos;Source/WTF/wtf/PlatformGTK.cmake&apos;, u&apos;Source/WTF/wtf/PlatformWin.cmake&apos;, u&apos;Source/WTF/wtf/RunLoop.cpp&apos;, u&apos;Source/WTF/wtf/RunLoop.h&apos;, u&apos;Source/WTF/wtf/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WTF/wtf/cf/RunLoopCF.cpp&apos;, u&apos;Source/WTF/wtf/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WTF/wtf/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WTF/wtf/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/PlatformBlackBerry.cmake&apos;, u&apos;Source/WebCore/PlatformEfl.cmake&apos;, u&apos;Source/WebCore/PlatformGTK.cmake&apos;, u&apos;Source/WebCore/PlatformWin.cmake&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/RunLoop.cpp&apos;, u&apos;Source/WebCore/platform/RunLoop.h&apos;, u&apos;Source/WebCore/platform/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/cf/RunLoopCF.cpp&apos;, u&apos;Source/WebCore/platform/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h&apos;, u&apos;Source/WebCore/platform/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WebCore/platform/win/RunLoopWin.cpp&apos;, u&apos;Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/History/WebBackForwardList.mm&apos;, u&apos;Source/WebKit/mac/History/WebHistoryItem.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebCache.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebElementDictionary.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebIconDatabase.mm&apos;, u&apos;Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBasePluginPackage.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebArchive.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebDataSource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebHTMLView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebPreferences.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebResource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebTextIterator.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebViewData.mm&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.h&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.h&apos;, u&apos;Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.h&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/PluginProcess/PluginControllerProxy.h&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.h&apos;, u&apos;Source/WebKit2/PluginProcess/WebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.h&apos;, u&apos;Source/WebKit2/Shared/ChildProcessProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm&apos;, u&apos;Source/WebKit2/Shared/Plugins/NPObjectProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/WebKit2Initialize.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKView.mm&apos;, u&apos;Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/efl/ProcessLauncherEfl.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.h&apos;, u&apos;Source/WebKit2/UIProcess/VisitedLinkProvider.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebProcessProxy.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageOverlay.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp&apos;, u&apos;Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/RunLoop.cpp:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WTF/wtf/RunLoop.cpp:123:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WTF/wtf/RunLoop.h:60:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WTF/wtf/RunLoop.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 92 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949025</commentid>
    <comment_count>30</comment_count>
      <attachid>216487</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-09 02:23:37 -0800</bug_when>
    <thetext>Comment on attachment 216487
Patch

Attachment 216487 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/22748725</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949028</commentid>
    <comment_count>31</comment_count>
      <attachid>216487</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-09 02:57:16 -0800</bug_when>
    <thetext>Comment on attachment 216487
Patch

Attachment 216487 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/22768718</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949041</commentid>
    <comment_count>32</comment_count>
      <attachid>216487</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-09 03:53:20 -0800</bug_when>
    <thetext>Comment on attachment 216487
Patch

Attachment 216487 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/22368768</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949045</commentid>
    <comment_count>33</comment_count>
      <attachid>216493</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-11-09 06:22:10 -0800</bug_when>
    <thetext>Created attachment 216493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949046</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-09 06:24:57 -0800</bug_when>
    <thetext>Attachment 216493 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj&apos;, u&apos;Source/WTF/WTF.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;, u&apos;Source/WTF/wtf/PlatformBlackBerry.cmake&apos;, u&apos;Source/WTF/wtf/PlatformEfl.cmake&apos;, u&apos;Source/WTF/wtf/PlatformGTK.cmake&apos;, u&apos;Source/WTF/wtf/PlatformWin.cmake&apos;, u&apos;Source/WTF/wtf/RunLoop.cpp&apos;, u&apos;Source/WTF/wtf/RunLoop.h&apos;, u&apos;Source/WTF/wtf/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WTF/wtf/cf/RunLoopCF.cpp&apos;, u&apos;Source/WTF/wtf/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WTF/wtf/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WTF/wtf/win/RunLoopWin.cpp&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/PlatformBlackBerry.cmake&apos;, u&apos;Source/WebCore/PlatformEfl.cmake&apos;, u&apos;Source/WebCore/PlatformGTK.cmake&apos;, u&apos;Source/WebCore/PlatformWin.cmake&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/RunLoop.cpp&apos;, u&apos;Source/WebCore/platform/RunLoop.h&apos;, u&apos;Source/WebCore/platform/blackberry/RunLoopBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/cf/RunLoopCF.cpp&apos;, u&apos;Source/WebCore/platform/efl/RunLoopEfl.cpp&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h&apos;, u&apos;Source/WebCore/platform/gtk/RunLoopGtk.cpp&apos;, u&apos;Source/WebCore/platform/win/RunLoopWin.cpp&apos;, u&apos;Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/History/WebBackForwardList.mm&apos;, u&apos;Source/WebKit/mac/History/WebHistoryItem.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebCache.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebElementDictionary.mm&apos;, u&apos;Source/WebKit/mac/Misc/WebIconDatabase.mm&apos;, u&apos;Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebBasePluginPackage.mm&apos;, u&apos;Source/WebKit/mac/Plugins/WebNetscapePluginView.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebArchive.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebDataSource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebHTMLView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebPreferences.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebResource.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebTextIterator.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebViewData.mm&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.h&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.h&apos;, u&apos;Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.h&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/PluginProcess/PluginControllerProxy.h&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.h&apos;, u&apos;Source/WebKit2/PluginProcess/WebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.cpp&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.h&apos;, u&apos;Source/WebKit2/Shared/ChildProcessProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h&apos;, u&apos;Source/WebKit2/Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm&apos;, u&apos;Source/WebKit2/Shared/Plugins/NPObjectProxy.cpp&apos;, u&apos;Source/WebKit2/Shared/WebKit2Initialize.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKView.mm&apos;, u&apos;Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/efl/ProcessLauncherEfl.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.cpp&apos;, u&apos;Source/WebKit2/UIProcess/ResponsivenessTimer.h&apos;, u&apos;Source/WebKit2/UIProcess/VisitedLinkProvider.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebProcessProxy.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageOverlay.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp&apos;, u&apos;Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/RunLoop.cpp:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WTF/wtf/RunLoop.cpp:123:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WTF/wtf/RunLoop.h:60:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WTF/wtf/RunLoop.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 92 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949052</commentid>
    <comment_count>35</comment_count>
      <attachid>216493</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-09 12:57:26 -0800</bug_when>
    <thetext>Comment on attachment 216493
Patch

Clearing flags on attachment: 216493

Committed r159001: &lt;http://trac.webkit.org/changeset/159001&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949053</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-09 12:57:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202518</attachid>
            <date>2013-05-22 03:59:00 -0700</date>
            <delta_ts>2013-05-22 11:05:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116606-20130522125746.patch</filename>
            <type>text/plain</type>
            <size>193108</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MjMxODRlZTQ5Y2VmYmVlNzUxN2E4MjIzZDc4NzBhZDM5NGMxNTljLi5lYWNmYzMxNjExZjIxNTUy
MmYwMGE1OGZiMWZjZWJjYzAwYzUyZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMy0wNS0yMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0
Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEzLTA1LTIxICBCcmVudCBGdWxnaGFt
ICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5kb3dzXSBVbnJldmlld2VkIHNw
ZWN1bGF0aXZlIGZpeCBmb3IgdGVzdC1ib3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjNTk2YTg5MTg0YjgzNmFjM2NkN2Iz
YWRhZmIyYzlhOWIwNzQ0M2U0Li5hYzg0OTg2NTAzOTA0NzhlMDkyZTU4NDI3YTBiNWU1YWY3Yjk5
ZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAxMy0wNS0yMiAgUGF0cmljayBHYW5zdGVyZXIg
IDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3Jl
IHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE2NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2l0aCB0aGlzIGNoYW5nZSBSdW5Mb29wIGNhbiBiZSB1c2VkIGluIEphdmFTY3JpcHRDb3JlIHRv
by4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLnBybzoK
KyAgICAgICAgKiBXVEYudmNwcm9qL1dURi52Y3Byb2o6CisgICAgICAgICogV1RGLnZjeHByb2ov
V1RGLnZjeHByb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUJsYWNr
QmVycnkuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAq
IHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XaW5DRS5jbWFr
ZToKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3ApOgorICAgICAgICAo
UnVuTG9vcDo6SG9sZGVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6SG9sZGVyOjpIb2xkZXIp
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpIb2xkZXI6OnJ1bkxvb3ApOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpjdXJyZW50KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6bWFpbik6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2gp
OgorICAgICAgICAqIHd0Zi9SdW5Mb29wLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9SdW5Mb29wLmguCisgICAgICAgIChXVEYpOgorICAgICAgICAoUnVuTG9vcCk6Cisg
ICAgICAgIChUaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0
YXJ0UmVwZWF0aW5nKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydE9u
ZVNob3QpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzUmVwZWF0aW5nKToK
KyAgICAgICAgKFRpbWVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXI6OlRpbWVyKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXI6OmZpcmVkKToKKyAgICAgICAgKiB3dGYvV2lu
ZG93c0V4dHJhcy5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dp
bmRvd3NFeHRyYXMuaC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OmdldFJlZ2lzdHJ5
VmFsdWUpOgorICAgICAgICAoV1RGOjpnZXRXaW5kb3dQb2ludGVyKToKKyAgICAgICAgKFdURjo6
c2V0V2luZG93UG9pbnRlcik6CisgICAgICAgICogd3RmL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNr
QmVycnkuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJy
eS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAqIHd0Zi9lZmwvUnVuTG9vcEVm
bC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUnVuTG9vcEVm
bC5jcHAuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpydW4pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6d2FrZVVwRXZlbnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6
OlRpbWVyQmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFz
ZTo6c3RhcnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYv
Z3RrL1J1bkxvb3BHdGsuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1J1bkxvb3BHdGsuY3BwLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6aW5uZXJtb3N0TG9v
cCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnB1c2hOZXN0ZWRNYWluTG9vcCk6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnF1ZXVlV29yayk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNl
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spOgor
ICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJC
YXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogd3RmL21hYy9SdW5Mb29wTWFjLm1tOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9vcENGLmNwcC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9u
TWFpblJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpwZXJmb3JtV29yayk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp+UnVu
TG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6VGlt
ZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6aXNBY3RpdmUpOgorICAgICAgICAqIHd0Zi9xdC9SdW5Mb29wUXQuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChSdW5Mb29wOjpUaW1lck9iamVjdCk6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OlRpbWVyT2JqZWN0OjpUaW1lck9iamVjdCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6
OlRpbWVyT2JqZWN0OjpwZXJmb3JtV29yayk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
T2JqZWN0Ojp3YWtlVXApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lck9iamVjdDo6dGlt
ZXJFdmVudCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJ1bik6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OnN0b3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXAp
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQpOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRp
bWVyQmFzZTo6c3RhcnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3Ap
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAg
KiB3dGYvd2luL1J1bkxvb3BXaW4uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6UnVuTG9vcFduZFByb2MpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3bmRQcm9j
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5k
b3dDbGFzcyk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjp+UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChX
VEY6OmdlbmVyYXRlVGltZXJJRCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNl
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRp
bWVyQmFzZTo6aXNBY3RpdmUpOgorCiAyMDEzLTA1LTIxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdhM2Ux
MDQyOTg2ZmYwOGM0MzhmYzg5OGZlYjE1OTI2MzEwMTI3OGEuLjJjODdkMDY1YjZkNDU5MDcyNGE3
Y2EzZjY1NzE2OGMxNDY3NGEyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMy0w
NS0yMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBN
b3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFBsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbkNFLmNtYWtlOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZv
cm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZUZ1bGxz
Y3JlZW5XaW5kb3cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbTogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vTUlNRVR5cGVSZWdpc3RyeVdpbi5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TaGFyZWRU
aW1lcldpbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vd2luL1dpbmRvd01lc3NhZ2VMaXN0ZW5l
ci5oOgorICAgICAgICAqIHBsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcDoKKwogMjAx
My0wNS0yMSAgTWloYWkgVGljYSAgPG1pdGljYUBhZG9iZS5jb20+CiAgICAgICAgIAogICAgICAg
ICBVcGRhdGUgdGhlIGJhY2tncm91bmQgYmxlbmRpbmcgaW1wbGVtZW50YXRpb24gdG8gbWF0Y2gg
dGhlIGNoYW5nZXMgZG9uZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGM0YWFlMDg4NjYxNjIyNDg1ZGZh
YmVhMjlmMWZmZWY0OTljZmRiOGIuLmI0ODdhOWUxN2ViYzE2YWY3OGQ0NTI5MDg3MzMwZGMyOGJk
OTYwMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxMy0wNS0yMiAgUGF0
cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxv
b3AgZnJvbSBXZWJDb3JlIHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBDYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbToKKyAgICAgICAg
KCtbQ2FyYm9uV2luZG93QWRhcHRlciBpbml0aWFsaXplXSk6CisgICAgICAgICogSGlzdG9yeS9X
ZWJCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgICgrW1dlYkJhY2tGb3J3YXJkTGlzdCBpbml0
aWFsaXplXSk6CisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbToKKyAgICAgICAg
KCtbV2ViSGlzdG9yeUl0ZW0gaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIE1pc2MvV2ViQ2FjaGUu
bW06CisgICAgICAgICgrW1dlYkNhY2hlIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBNaXNjL1dl
YkVsZW1lbnREaWN0aW9uYXJ5Lm1tOgorICAgICAgICAoK1tXZWJFbGVtZW50RGljdGlvbmFyeSBp
bml0aWFsaXplXSk6CisgICAgICAgICogTWlzYy9XZWJJY29uRGF0YWJhc2UubW06CisgICAgICAg
ICgrW1dlYkljb25EYXRhYmFzZSBpbml0aWFsaXplXSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoK1tXZWJIb3N0ZWRO
ZXRzY2FwZVBsdWdpblZpZXcgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViQmFz
ZU5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIFBs
dWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW06CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKCtbV2ViTmV0
c2NhcGVQbHVnaW5WaWV3IGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgICgrW1dlYlVuZG9TdGVwIGluaXRpYWxpemVdKToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkFyY2hpdmUubW06CisgICAgICAgICgrW1dlYkFyY2hpdmVQcml2YXRl
IGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06CisgICAg
ICAgICgrW1dlYkRhdGFTb3VyY2UgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
SFRNTFZpZXcubW06CisgICAgICAgICgrW1dlYkhUTUxWaWV3UHJpdmF0ZSBpbml0aWFsaXplXSk6
CisgICAgICAgICgrW1dlYkhUTUxWaWV3IGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXpl
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJSZXNvdXJjZS5tbToKKyAgICAgICAgKCtbV2ViUmVz
b3VyY2VQcml2YXRlIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRJdGVy
YXRvci5tbToKKyAgICAgICAgKCtbV2ViVGV4dEl0ZXJhdG9yUHJpdmF0ZSBpbml0aWFsaXplXSk6
CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoK1tXZWJWaWV3IGluaXRp
YWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgorICAgICAgICAoK1tX
ZWJWaWV3UHJpdmF0ZSBpbml0aWFsaXplXSk6CisKIDIwMTMtMDUtMjAgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBTeW5jaHJvbml6ZSBGZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDZkZmI5ZDU2NjkwMzMwOWRiYjBiZTE2OTQyZTM0MWJk
MjJiZmVjMmYuLjBkN2I4ZjM0MTE0ZTFiMWNjNTlmMGRkNWE5MGZmZjNjNjQ2OGI0ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAxMy0wNS0yMiAgUGF0cmljayBHYW5zdGVyZXIgIDxw
YXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRv
IFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2
NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNo
ZU1vbml0b3IuaDoKKyAgICAgICAgKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGluZVN0b3Jh
Z2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAoQ29u
bmVjdGlvbik6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5j
cHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L1BsdWdpblByb2Nlc3NNYWluLm1tOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbToKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oOgorICAgICAgICAoUGx1Z2luQ29u
dHJvbGxlclByb3h5KToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3Bw
OgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAoUGx1
Z2luUHJvY2Vzcyk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHA6CisgICAgICAgICogU2hh
cmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAgICAoQ2hpbGRQcm9jZXNzKToKKyAgICAgICAgKiBT
aGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzTWFpbik6CisgICAgICAgICogU2hhcmVkL1dlYktp
dDJJbml0aWFsaXplLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIpOgor
ICAgICAgICAqIFNoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHA6Cisg
ICAgICAgICogU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmg6CisgICAg
ICAgIChTaGFyZWRXb3JrZXJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9G
aW5kSW5kaWNhdG9yV2luZG93Lmg6CisgICAgICAgIChGaW5kSW5kaWNhdG9yV2luZG93KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICogVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHlJbXBsLmg6CisgICAgICAgIChEcmF3aW5nQXJlYVByb3h5SW1wbCk6
CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaDoKKyAgICAgICAgKFJlc3BvbnNpdmVuZXNzVGltZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaDoKKyAg
ICAgICAgKFZpc2l0ZWRMaW5rUHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250
ZXh0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nl
c3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW06CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorICAg
ICAgICAoV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmg6CisgICAgICAgIChOUFJ1bnRpbWVP
YmplY3RNYXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZVBsdWdpbi5oOgorICAgICAgICAoVGltZXIpOgorICAgICAgICAoTmV0c2NhcGVQbHVnaW4pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVh
bS5oOgorICAgICAgICAoTmV0c2NhcGVQbHVnaW5TdHJlYW0pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChQbHVnaW5WaWV3KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmg6CisgICAgICAgIChEcmF3aW5n
QXJlYUltcGwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oOgorICAgICAg
ICAoUGFnZU92ZXJsYXkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2Vi
UGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKwogMjAxMy0wNS0y
MiAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFtFRkxdW1dLMl0gQ2hhbmdlIEV3a19Db250ZXh0X01lbnVfSXRlbSdzIHBhcmVudCBt
ZW51IHRvIHJhdyBwb2ludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU4MGFh
MWU1ZDJlNDg2MjZkYmY4YjdjYmIyODU0Y2YxNWIwZTc3NGUuLmY2MDIwODIyZGUxNzgwOWY3Njdm
Y2MxNWFiZTJmZTJmNjgyM2I5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
MDksNiArNTA5LDcgQEAKIAkJMUFDRjczNzcxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDRjczNzYxNzFD
QTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwICovOyB9OwogCQkyNjAwQjVBNjE1MkJBQUE3MDA5MUVF
NUYgLyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVy
LmNwcCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVB
NTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKKwkJMkNCM0U3MTYx
NzNBQ0E3MzAwQUE3QkZEIC8qIEFwcEtpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0IzRTcxNTE3M0FDQTczMDBBQTdCRkQgLyog
QXBwS2l0LmZyYW1ld29yayAqLzsgfTsKIAkJNDEzNTlDRjMwRkREODlBRDAwMjA2MTgwIC8qIERh
dGVDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEMjEyMDIyOTBBRDQzMTBDMDBFRDc5QjYgLyogRGF0ZUNvbnZlcnNpb24uaCAqLzsgfTsK
IAkJNDQ0M0FFMzMxNkUxODhEOTAwNzZGMTEwIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMEVCNjEwNUM4
NkM2QjAwRTZERjFCIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQk0NTE1MzlCOTEy
REM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDUxNTM5QjgxMkRDOTk0NTAwRUY3QUM0IC8qIFlhcnIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM4OCw2ICsxMzg5
LDcgQEAKIAkJMUNBQThCNEIwRDMyQzM5QTAwNDFCQ0ZGIC8qIEphdmFTY3JpcHRDb3JlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHRDb3JlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0cmlu
Z0pvaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE1MTUyQkFB
QTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1N0cmluZ0pvaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
Q0IzRTcxNTE3M0FDQTczMDBBQTdCRkQgLyogQXBwS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBu
YW1lID0gQXBwS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0FwcEtpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCTQ0OTA5
N0VFMEY4RjgxQjUwMDc2QTMyNyAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUxNTM5QjgxMkRDOTk0NTAwRUY3QUM0IC8qIFlhcnIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gWWFyci5oOyBwYXRoID0geWFyci9ZYXJy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1RTEyRDg4MDZBNDlCMEYwMEU5REY4
NCAvKiBqc2MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0ganNjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA0
OyB9OwpAQCAtMTg2NCw2ICsxODY2LDcgQEAKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBo
YXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJ
CTJDQjNFNzE2MTczQUNBNzMwMEFBN0JGRCAvKiBBcHBLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8sCiAJCQkJOTMyRjVCRDMwODIyQTFDNzAwNzM2OTc1IC8qIENvcmVGb3VuZGF0aW9uLmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCUE3MzFCMjVBMTMwMDkzODgwMDQwQTdGQSAv
KiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTkzMkY1QkQ3MDgy
MkExQzcwMDczNjk3NSAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCkBAIC0x
OTQwLDYgKzE5NDMsNyBAQAogCQkwODY3RDY5QUZFODQwMjhGQzAyQUFDMDcgLyogRnJhbWV3b3Jr
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMkNCM0U3
MTUxNzNBQ0E3MzAwQUE3QkZEIC8qIEFwcEtpdC5mcmFtZXdvcmsgKi8sCiAJCQkJNjU2MEE0Q0Yw
NEIzQjNFNzAwOEFFOTUyIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQk1MUYw
RUI2MTA1Qzg2QzZCMDBFNkRGMUIgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJNUQ1
RDhBRDAwRTBEMEVCRTAwRjlDNjkyIC8qIGxpYmVkaXQuZHlsaWIgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggMWQ3ZjBiMzYyYTJmZjVhYWYzNGVkYzc4NjY1ZGMxYTRlZjM1ODU0OC4uYThk
MDZhMjM1Mjg5MzNhNWQ4ZWY1MDY1ZTA1ZWZlOTI2ZWE4MWMyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlz
dC5hbQpAQCAtMTQwLDYgKzE0MCw4IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RG
L3d0Zi9SZWZQdHIuaCBcCiAgICAgU291cmNlL1dURi93dGYvUmVmUHRySGFzaE1hcC5oIFwKICAg
ICBTb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaCBcCisgICAgU291cmNlL1dURi93dGYvUnVuTG9v
cC5jcHAgXAorICAgIFNvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaCBcCiAgICAgU291cmNlL1dURi93
dGYvU0hBMS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL1NIQTEuaCBcCiAgICAgU291cmNlL1dU
Ri93dGYvU2F0dXJhdGVkQXJpdGhtZXRpYy5oIFwKQEAgLTIyMCw2ICsyMjIsNyBAQCB3dGZfc291
cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvZ29iamVjdC9HbGliVXRpbGl0aWVzLmNwcCBc
CiAgICAgU291cmNlL1dURi93dGYvZ29iamVjdC9HbGliVXRpbGl0aWVzLmggXAogICAgIFNvdXJj
ZS9XVEYvd3RmL2d0ay9NYWluVGhyZWFkR3RrLmNwcCBcCisgICAgU291cmNlL1dURi93dGYvZ3Rr
L1J1bkxvb3BHdGsuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJRmFzdFBhdGgu
aCBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwIFwKICAgICBTb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
V1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRleCBlM2Y5MGI4Nzg4MWIxOWM4MzJkNmE0
MmJmZGZkZmZjNzgxNTdlN2E5Li5hNmY1YzViNWYzMTQyNWEwZTlmZTQ4OTMzM2Y2MTcwNWI1MDlj
ZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8KKysrIGIvU291cmNlL1dURi9XVEYu
cHJvCkBAIC0xMjgsNiArMTI4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgUmVmUHRyLmggXAogICAg
IFJlZlB0ckhhc2hNYXAuaCBcCiAgICAgUmV0YWluUHRyLmggXAorICAgIFJ1bkxvb3AuaCBcCiAg
ICAgU0hBMS5oIFwKICAgICBTYXR1cmF0ZWRBcml0aG1ldGljLmggXAogICAgIFNwZWN0cnVtLmgg
XApAQCAtMjE2LDggKzIxNywxMCBAQCBTT1VSQ0VTICs9IFwKICAgICBOdWxsUHRyLmNwcCBcCiAg
ICAgTnVtYmVyT2ZDb3Jlcy5jcHAgXAogICAgIFJBTVNpemUuY3BwIFwKKyAgICBSdW5Mb29wLmNw
cCBcCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwIFwKICAgICBxdC9NYWluVGhyZWFkUXQuY3BwIFwK
KyAgICBxdC9SdW5Mb29wUXQuY3BwIFwKICAgICBxdC9TdHJpbmdRdC5jcHAgXAogICAgIFBhZ2VB
bGxvY2F0aW9uQWxpZ25lZC5jcHAgXAogICAgIFBhZ2VCbG9jay5jcHAgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ov
V1RGLnZjcHJvagppbmRleCAzMDFhOGJmZGJjYzNlNWU1NWIxNGVhZDg5NGE3YjJiMTUwYzc3MWUx
Li4xMGY5Njc3N2Y5YmY1YjU2NTc4NzJlYWUyM2NiZDg2NWRlNjY5YmEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3By
b2ovV1RGLnZjcHJvagpAQCAtMzQ1LDYgKzM0NSwxMCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
d3RmXHdpblxPd25QdHJXaW4uY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlx3dGZcd2luXFJ1bkxvb3BXaW4uY3BwIgorCQkJCT4KKwkJCTwvRmls
ZT4KIAkJPC9GaWx0ZXI+CiAJCTxGaWx0ZXIKIAkJCU5hbWU9InVuaWNvZGUiCkBAIC0xMTI3LDYg
KzExMzEsMTQgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIu
Llx3dGZcUnVuTG9vcC5jcHAiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0aXZl
UGF0aD0iLi5cd3RmXFJ1bkxvb3AuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVs
YXRpdmVQYXRoPSIuLlx3dGZcU2F0dXJhdGVkQXJpdGhtZXRpYy5oIgogCQkJPgogCQk8L0ZpbGU+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qIGIvU291cmNl
L1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvagppbmRleCA2ZTdmNGIzODA3MDNjNGRiZGNlMDM1
Mzg1M2ViYjRhMmIyMDk3MzcxLi40ZDFjN2FlYTc0YTI5YTBkNzllZTQ5YjYzNWI2MDQ4YmZlZTFm
NzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCisrKyBi
L1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oKQEAgLTY2LDYgKzY2LDcgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxSQU1TaXplLmNwcCIgLz4NCiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlx3dGZcUmFuZG9tTnVtYmVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlx3dGZcUmVmQ291bnRlZExlYWtDb3VudGVyLmNwcCIgLz4NCisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcUnVuTG9vcC5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cd3RmXFNIQTEuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHd0ZlxTaXplTGltaXRzLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZc
U3RhY2tCb3VuZHMuY3BwIiAvPg0KQEAgLTg4LDYgKzg5LDcgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHd0Zlx1bmljb2RlXFVURjguY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHd0Zlx3aW5cTWFpblRocmVhZFdpbi5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cd3RmXHdpblxPd25QdHJXaW4uY3BwIiAvPg0KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHd0Zlx3aW5cUnVuTG9vcFdpbi5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cd3RmXFdURlRocmVhZERhdGEuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHd0ZlxTY2hlZHVsZVBhaXJDRi5jcHAiIC8+DQogICA8L0l0ZW1Hcm91cD4NCkBAIC0yMDAs
NiArMjAyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxSZWZQdHIuaCIgLz4N
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUmVmUHRySGFzaE1hcC5oIiAvPg0KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxSZXRhaW5QdHIuaCIgLz4NCisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcUnVuTG9vcC5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHd0ZlxTYXR1cmF0ZWRBcml0aG1ldGljLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cd3RmXFNjaGVkdWxlUGFpci5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHd0ZlxTZWdtZW50ZWRWZWN0b3IuaCIgLz4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA1YzJiYTFmZDc3MTk2NzVmZDFiZDcxZTdiNWZlYjlhYzE3MDUw
Zjk5Li5jYmU5Mzg2MjI1ZWVlNGZjY2FhMDc5NTQ2ZGFjYTAwNDE0MTUyMGJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3LDYgKzQ3LDkgQEAKIAkJMUE2
QkI3NjkxNjJGMzAwNTAwREQxNkRCIC8qIFN0cmVhbUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2QkI3NjgxNjJGMzAwNTAwREQxNkRCIC8q
IFN0cmVhbUJ1ZmZlci5oICovOyB9OwogCQkyNjE0N0IwQTE1RERDQ0RDMDBEREI5MDcgLyogSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjYxNDdCMDgxNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmlu
Z0NvbnZlcnNpb24uaCAqLzsgfTsKIAkJMkMwNTM4NTQxNUJDODE5MDAwRjIxQjk2IC8qIEdyZWdv
cmlhbkRhdGVUaW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyQzA1Mzg1MzE1QkM4MTkwMDBGMjFCOTYgLyogR3JlZ29yaWFuRGF0ZVRpbWUuaCAqLzsg
fTsKKwkJMkNCM0U3MTExNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNCM0U3MEYxNzNBQjhCRjAwQUE3
QkZEIC8qIFJ1bkxvb3AuY3BwICovOyB9OworCQkyQ0IzRTcxMjE3M0FCOEJGMDBBQTdCRkQgLyog
UnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkNCM0U3MTAxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxvb3AuaCAqLzsgfTsKKwkJMkNCM0U3MTQx
NzNBQjhFQjAwQUE3QkZEIC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0IzRTcxMzE3M0FCOEVCMDBBQTdCRkQgLyogUnVuTG9v
cE1hYy5tbSAqLzsgfTsKIAkJMkNDRDg5MkExNUMwMzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRh
dGVUaW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJDQ0Q4OTI5MTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgKi87IH07
CiAJCTQ0RjY2MDA4MTcxQUZBRTYwMEU0QUQxOSAvKiBFbnVtQ2xhc3MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RjY2MDA3MTcxQUZBQTkwMEU0QUQx
OSAvKiBFbnVtQ2xhc3MuaCAqLzsgfTsKIAkJNEYwMzIxQkMxNTZBQThEMTAwNkVCQUY2IC8qIEJp
dEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RjAzMjFCQjE1NkFBOEQxMDA2RUJBRjYgLyogQml0QXJyYXkuaCAqLzsgfTsKQEAgLTMxMCw2ICsz
MTMsOSBAQAogCQkxQTZCQjc2ODE2MkYzMDA1MDBERDE2REIgLyogU3RyZWFtQnVmZmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmVhbUJ1ZmZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0IwODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRv
U3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRl
Z2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJD
MDUzODUzMTVCQzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRlVGltZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBHcmVnb3JpYW5EYXRlVGltZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyQ0IzRTcwRjE3M0FCOEJGMDBBQTdCRkQgLyogUnVuTG9vcC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdW5Mb29wLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCM0U3MTAxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxv
b3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9vcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyQ0IzRTcxMzE3M0FCOEVCMDBBQTdCRkQgLyogUnVuTG9v
cE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bkxvb3BN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDQ0Q4OTI5MTVDMDM5MDIwMDI4
NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBHcmVnb3JpYW5EYXRlVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ0REVFNzRBMTUyMjc0QkIwMEM2RUMzNyAvKiBpT1MueGNjb25maWcgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gaU9TLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NEY2NjAwNzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEVudW1DbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzQw
LDYgKzc0Niw4IEBACiAJCQkJQThBNDczMDMxNTFBODI1QjAwNDEyM0ZGIC8qIFJlZlB0ci5oICov
LAogCQkJCUE4QTQ3MzA0MTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZQdHJIYXNoTWFwLmggKi8sCiAJ
CQkJQThBNDczMDUxNTFBODI1QjAwNDEyM0ZGIC8qIFJldGFpblB0ci5oICovLAorCQkJCTJDQjNF
NzBGMTczQUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29wLmNwcCAqLywKKwkJCQkyQ0IzRTcxMDE3M0FC
OEJGMDBBQTdCRkQgLyogUnVuTG9vcC5oICovLAogCQkJCTE0Njk0MTkwMTZFQUFGNkQwMDI0RTE0
NiAvKiBSdW5Mb29wVGltZXIuaCAqLywKIAkJCQkxNDY5NDE5MTE2RUFBRjZEMDAyNEUxNDYgLyog
UnVuTG9vcFRpbWVyQ0YuY3BwICovLAogCQkJCTE0RjNCMEY2MTVFNDVFNDYwMDIxMDA2OSAvKiBT
YXR1cmF0ZWRBcml0aG1ldGljLmggKi8sCkBAIC04MzMsNiArODQxLDcgQEAKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQThBNDcyQzUxNTFBODI1QTAwNDEyM0ZGIC8q
IE1haW5UaHJlYWRNYWMubW0gKi8sCisJCQkJMkNCM0U3MTMxNzNBQjhFQjAwQUE3QkZEIC8qIFJ1
bkxvb3BNYWMubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0xMDM0LDYgKzEwNDMsOCBAQAogCQkJCUE4QTQ3NDFDMTUxQTgyNUIwMDQx
MjNGRiAvKiBSZWZQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDFEMTUxQTgyNUIwMDQx
MjNGRiAvKiBSZWZQdHJIYXNoTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQxRTE1MUE4
MjVCMDA0MTIzRkYgLyogUmV0YWluUHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQ0IzRTcxMjE3
M0FCOEJGMDBBQTdCRkQgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTQ2OTQxOTIx
NkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRG
M0IwRjcxNUU0NUU0NjAwMjEwMDY5IC8qIFNhdHVyYXRlZEFyaXRobWV0aWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4QTQ3NDY2MTUxQTgyNUIwMDQxMjNGRiAvKiBTY3JpcHRDb2Rlc0Zyb21JQ1Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDFGMTUxQTgyNUIwMDQxMjNGRiAvKiBTZWdtZW50
ZWRWZWN0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMTIxMCw2ICsxMjIxLDggQEAKIAkJCQkxNDNG
NjExRjE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4QTQ3NDFBMTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZDb3VudGVkTGVha0NvdW50ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkNCM0U3MTExNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxv
b3AuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkNCM0U3MTQxNzNBQjhFQjAwQUE3QkZEIC8qIFJ1
bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQyMTE1MUE4MjVCMDA0MTIzRkYg
LyogU0hBMS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQyNTE1MUE4MjVCMDA0MTIzRkYg
LyogU2l6ZUxpbWl0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQyNzE1MUE4MjVCMDA0
MTIzRkYgLyogU3RhY2tCb3VuZHMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
CmluZGV4IDViY2QzMzZjZWQyMzcwODkxZTUzNzYwZTg0M2M2ZTYyMDg2NTc1YWEuLjIwYTY3YjA2
YmVkY2JmYjQyZWYzZTdlYjk0YmYzMjY0NzZiNzIyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBA
IC01Niw2ICs1Niw3IEBAIHNldChXVEZfSEVBREVSUwogICAgIE51bGxQdHIuaAogICAgIE51bWJl
ck9mQ29yZXMuaAogICAgIFJBTVNpemUuaAorICAgIFJ1bkxvb3AuaAogICAgIE9TQWxsb2NhdG9y
LmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCiAgICAgT3duQXJyYXlQdHIuaApAQCAtMTY3LDYgKzE2
OCw3IEBAIHNldChXVEZfU09VUkNFUwogICAgIE9TUmFuZG9tU291cmNlLmNwcAogICAgIE51bWJl
ck9mQ29yZXMuY3BwCiAgICAgUkFNU2l6ZS5jcHAKKyAgICBSdW5Mb29wLmNwcAogICAgIFBhZ2VB
bGxvY2F0aW9uQWxpZ25lZC5jcHAKICAgICBQYWdlQmxvY2suY3BwCiAgICAgUGFyYWxsZWxKb2Jz
R2VuZXJpYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJy
eS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQppbmRleCBm
YjljYzUxMmQ1ZTI0N2YzNTlmMjYzZTJjZWM4ZjAzMDdiNzI0ZmVlLi43ZDE0ZTdhZDk0NzYyNjhk
OTI4YTdkZjk1NGU5NWY0MWE2ZjU4ZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlCkBAIC0xLDUgKzEsNiBAQAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICBi
bGFja2JlcnJ5L01haW5UaHJlYWRCbGFja0JlcnJ5LmNwcAorICAgIGJsYWNrYmVycnkvUnVuTG9v
cEJsYWNrQmVycnkuY3BwCiApCiAKIGxpc3QoSU5TRVJUIFdURl9JTkNMVURFX0RJUkVDVE9SSUVT
IDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggYzU5ZjQ5NzJmNzZhYzRhNmRjZmM2MDc4
YjBmOGI3MGM5ZjYzNjkzOS4uOTgzZWU5ZTc3MjZhYzcyY2I4ZDFhZmU5M2UyYWY0ZjEwZjBiZTMw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTIsNiArMiw3IEBAIGxpc3QoQVBQRU5E
IFdURl9TT1VSQ0VTCiAgICAgZWZsL01haW5UaHJlYWRFZmwuY3BwCiAgICAgZWZsL093blB0ckVm
bC5jcHAKICAgICBlZmwvUmVmUHRyRWZsLmNwcAorICAgIGVmbC9SdW5Mb29wRWZsLmNwcAogCiAg
ICAgZ29iamVjdC9HT3duUHRyLmNwcAogICAgIGdvYmplY3QvR1JlZlB0ci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1HVEsuY21ha2UKaW5kZXggNTAwMjE2ZTc1MmFhYTQ0MjA0MTI0NDU1OTY4NjRlYmUwN2Y2
ODU4OS4uZDViNmQwMzE2MWFjZGY4YmY4YTQ0MDRkM2I1MzUzODY4NGI1Y2I3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1HVEsuY21ha2UKQEAgLTQsNiArNCw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VT
CiAgICAgZ29iamVjdC9HUmVmUHRyLmNwcAogCiAgICAgZ3RrL01haW5UaHJlYWRHdGsuY3BwCisg
ICAgZ3RrL1J1bkxvb3BHdGsuY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luQ0UuY21ha2UgYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybVdpbkNFLmNtYWtlCmluZGV4IDZhOTFjNTBjMWI3Y2Y0MmRlYzM5YTcxODg2
NDhlODA2ZDdkMTFkODYuLmJmZWUyNmMwMWEzYTU1NDJkMmI0MmYxYWIwOTE3M2JkZWZiYjc5ZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luQ0UuY21ha2UKKysrIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm1XaW5DRS5jbWFrZQpAQCAtMiw2ICsyLDcgQEAgbGlzdChBUFBF
TkQgV1RGX1NPVVJDRVMKICAgICB0aHJlYWRzL3dpbi9CaW5hcnlTZW1hcGhvcmVXaW4uY3BwCiAK
ICAgICB3aW4vTWFpblRocmVhZFdpbi5jcHAKKyAgICB3aW4vUnVuTG9vcFdpbi5jcHAKICkKIAog
bGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVu
TG9vcC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGZiOWM4
MGVkNzdiYjliNGU4MGVjNzVkMTA0NDY2Nzc3ZTI0MzgzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvUnVuTG9vcC5jcHAKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgorCituYW1l
c3BhY2UgV1RGIHsKKworI2lmICFQTEFURk9STShNQUMpCit2b2lkIFJ1bkxvb3A6OnNldFVzZUFw
cGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3AoKQoreworfQorI2VuZGlmCisKK3N0YXRpYyBS
dW5Mb29wKiBzX21haW5SdW5Mb29wOworCisvLyBIZWxwZXIgY2xhc3MgZm9yIFRocmVhZFNwZWNp
ZmljRGF0YS4KK2NsYXNzIFJ1bkxvb3A6OkhvbGRlciB7CitwdWJsaWM6CisgICAgSG9sZGVyKCkK
KyAgICAgICAgOiBtX3J1bkxvb3AoYWRvcHRSZWYobmV3IFJ1bkxvb3ApKQorICAgIHsKKyAgICB9
CisKKyAgICBSdW5Mb29wKiBydW5Mb29wKCkgY29uc3QgeyByZXR1cm4gbV9ydW5Mb29wLmdldCgp
OyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFJ1bkxvb3A+IG1fcnVuTG9vcDsKK307CisKK3Zv
aWQgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCkKK3sKKyAgICBpZiAoc19tYWluUnVu
TG9vcCkKKyAgICAgICAgcmV0dXJuOworICAgIHNfbWFpblJ1bkxvb3AgPSBSdW5Mb29wOjpjdXJy
ZW50KCk7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6OmN1cnJlbnQoKQoreworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5Mb29wOjpIb2xkZXI+LCBydW5Mb29w
SG9sZGVyLCAoKSk7CisgICAgcmV0dXJuIHJ1bkxvb3BIb2xkZXItPnJ1bkxvb3AoKTsKK30KKwor
UnVuTG9vcCogUnVuTG9vcDo6bWFpbigpCit7CisgICAgQVNTRVJUKHNfbWFpblJ1bkxvb3ApOwor
ICAgIHJldHVybiBzX21haW5SdW5Mb29wOworfQorCit2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3Jr
KCkKK3sKKyAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdG8gaGFuZGxlIHRoZSBmdW5jdGlvbnMgaW4g
dGhlIHF1ZXVlIG9uZSBhdCBhIHRpbWUgYmVjYXVzZSB3aGlsZSBpbnNpZGUgb25lIG9mIHRoZXNl
CisgICAgLy8gZnVuY3Rpb25zIHdlIG1pZ2h0IHJlLWVudGVyIFJ1bkxvb3A6OnBlcmZvcm1Xb3Jr
KCkgYW5kIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBwaWNrIHVwIHdoZXJlIHdlIGxlZnQgb2ZmLgor
ICAgIC8vIFNlZSBodHRwOi8vd2Via2l0Lm9yZy9iLzg5NTkwIGZvciBtb3JlIGRpc2N1c3Npb24u
CisKKyAgICAvLyBPbmUgcG9zc2libGUgc2NlbmFyaW8gd2hlbiBoYW5kbGluZyB0aGUgZnVuY3Rp
b24gcXVldWUgaXMgYXMgZm9sbG93czoKKyAgICAvLyAtIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkg
aXMgaW52b2tlZCB3aXRoIDEgZnVuY3Rpb24gb24gdGhlIHF1ZXVlCisgICAgLy8gLSBIYW5kbGlu
ZyB0aGF0IGZ1bmN0aW9uIHJlc3VsdHMgaW4gMSBtb3JlIGZ1bmN0aW9uIGJlaW5nIGVucXVldWVk
CisgICAgLy8gLSBIYW5kbGluZyB0aGF0IG9uZSByZXN1bHRzIGluIHlldCBhbm90aGVyIGJlaW5n
IGVucXVldWVkCisgICAgLy8gLSBBbmQgc28gb24KKyAgICAvLworICAgIC8vIEluIHRoaXMgc2l0
dWF0aW9uIG9uZSBpbnZvY2F0aW9uIG9mIHBlcmZvcm1Xb3JrKCkgbmV2ZXIgcmV0dXJucyBzbyBh
bGwgb3RoZXIgZXZlbnQgc291cmNlcyBhcmUgYmxvY2tlZC4KKyAgICAvLyBCeSBvbmx5IGhhbmRs
aW5nIHVwIHRvIHRoZSBudW1iZXIgb2YgZnVuY3Rpb25zIHRoYXQgd2VyZSBpbiB0aGUgcXVldWUg
d2hlbiBwZXJmb3JtV29yaygpIGlzIGNhbGxlZAorICAgIC8vIHdlIGd1YXJhbnRlZSB0byBvY2Nh
c2lvbmFsbHkgcmV0dXJuIGZyb20gdGhlIHJ1biBsb29wIHNvIG90aGVyIGV2ZW50IHNvdXJjZXMg
d2lsbCBiZSBhbGxvd2VkIHRvIHNwaW4uCisKKyAgICBGdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9u
OworICAgIHNpemVfdCBmdW5jdGlvbnNUb0hhbmRsZSA9IDA7CisKKyAgICB7CisgICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKKyAgICAgICAgZnVuY3Rpb25z
VG9IYW5kbGUgPSBtX2Z1bmN0aW9uUXVldWUuc2l6ZSgpOworCisgICAgICAgIGlmIChtX2Z1bmN0
aW9uUXVldWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZ1bmN0
aW9uID0gbV9mdW5jdGlvblF1ZXVlLnRha2VGaXJzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9u
KCk7CisKKyAgICBmb3IgKHNpemVfdCBmdW5jdGlvbnNIYW5kbGVkID0gMTsgZnVuY3Rpb25zSGFu
ZGxlZCA8IGZ1bmN0aW9uc1RvSGFuZGxlOyArK2Z1bmN0aW9uc0hhbmRsZWQpIHsKKyAgICAgICAg
eworICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwor
CisgICAgICAgICAgICAvLyBFdmVuIGlmIHdlIHN0YXJ0IG9mZiB3aXRoIE4gZnVuY3Rpb25zIHRv
IGhhbmRsZSBhbmQgd2UndmUgb25seSBoYW5kbGVkIGxlc3MgdGhhbiBOIGZ1bmN0aW9ucywgdGhl
IHF1ZXVlCisgICAgICAgICAgICAvLyBzdGlsbCBtaWdodCBiZSBlbXB0eSBiZWNhdXNlIHRob3Nl
IGZ1bmN0aW9ucyBtaWdodCBoYXZlIGJlZW4gaGFuZGxlZCBpbiBhbiBpbm5lciBSdW5Mb29wOjpw
ZXJmb3JtV29yaygpLgorICAgICAgICAgICAgLy8gSW4gdGhhdCBjYXNlIHdlIHNob3VsZCBiYWls
IGhlcmUuCisgICAgICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgZnVuY3Rpb24gPSBtX2Z1bmN0aW9uUXVl
dWUudGFrZUZpcnN0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uKCk7
CisgICAgfQorfQorCit2b2lkIFJ1bkxvb3A6OmRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQo
KT4mIGZ1bmN0aW9uKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVM
b2NrKTsKKyAgICBtX2Z1bmN0aW9uUXVldWUuYXBwZW5kKGZ1bmN0aW9uKTsKKworICAgIHdha2VV
cCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1J1bkxvb3AuaCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjRmMWEz
OGY5ZjY0Mjg0ZjJmMTE3ZWY0ZWU1YzRiNDFkNTYzOGNkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvUnVuTG9vcC5oCkBAIC0wLDAgKzEsMTg4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
IFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSdW5Mb29wX2gKKyNkZWZpbmUg
UnVuTG9vcF9oCisKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbkRpc3BhdGNoZXIuaD4KKyNpbmNsdWRlIDx3dGYv
RnVuY3Rpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworI2lmIFBMQVRGT1JNKEdU
SykKKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjZW5kaWYKKworI2lmIFBMQVRG
T1JNKEVGTCkKKyNpbmNsdWRlIDxFY29yZS5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXVEYgewor
CitjbGFzcyBSdW5Mb29wIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CitwdWJsaWM6Cisg
ICAgLy8gTXVzdCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQgKGV4Y2VwdCBmb3IgdGhl
IE1hYyBwbGF0Zm9ybSwgd2hlcmUgaXQKKyAgICAvLyBjYW4gYmUgY2FsbGVkIGZyb20gYW55IHRo
cmVhZCkuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGluaXRpYWxpemVNYWlu
UnVuTG9vcCgpOworCisgICAgLy8gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGVudGVyaW5nIG1haW4g
cnVuIGxvb3AuIElmIGNhbGxlZCwgYXBwbGljYXRpb24gc3R5bGUgcnVuIGxvb3Agd2lsbCBiZSB1
c2VkLCBoYW5kbGluZyBldmVudHMuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lk
IHNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3AoKTsKKworICAgIFdURl9FWFBP
UlRfUFJJVkFURSBzdGF0aWMgUnVuTG9vcCogY3VycmVudCgpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgUnVuTG9vcCogbWFpbigpOworICAgIH5SdW5Mb29wKCk7CisKKyAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIGRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQo
KT4mKSBPVkVSUklERTsKKworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBydW4o
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdG9wKCk7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgd2FrZVVwKCk7CisKKyNpZiBQTEFURk9STShNQUMpCisgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgcnVuRm9yRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKTsKKyNlbmRpZgor
CisgICAgY2xhc3MgVGltZXJCYXNlIHsKKyAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3A7Cisg
ICAgcHVibGljOgorICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgVGltZXJCYXNl
KFJ1bkxvb3AqKTsKKyAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgflRpbWVyQmFz
ZSgpOworCisgICAgICAgIHZvaWQgc3RhcnRSZXBlYXRpbmcoZG91YmxlIHJlcGVhdEludGVydmFs
KSB7IHN0YXJ0KHJlcGVhdEludGVydmFsLCB0cnVlKTsgfQorICAgICAgICB2b2lkIHN0YXJ0T25l
U2hvdChkb3VibGUgaW50ZXJ2YWwpIHsgc3RhcnQoaW50ZXJ2YWwsIGZhbHNlKTsgfQorCisgICAg
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHN0b3AoKTsKKyAgICAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgZmly
ZWQoKSA9IDA7CisKKyAgICBwcml2YXRlOgorICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpOworCisgICAgICAg
IFJ1bkxvb3AqIG1fcnVuTG9vcDsKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICAgICAgc3RhdGlj
IHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwgdWludDY0X3QgSUQpOworICAgICAgICB1aW50NjRf
dCBtX0lEOworICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7CisjZWxpZiBQTEFURk9STShNQUMp
CisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQq
KTsKKyAgICAgICAgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBtX3RpbWVyOworI2VsaWYg
UExBVEZPUk0oUVQpCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIGlu
dCBJRCk7CisgICAgICAgIGludCBtX0lEOworICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7Cisj
ZWxpZiBQTEFURk9STShHVEspCisgICAgICAgIHN0YXRpYyBnYm9vbGVhbiB0aW1lckZpcmVkQ2Fs
bGJhY2soUnVuTG9vcDo6VGltZXJCYXNlKik7CisgICAgICAgIGdib29sZWFuIGlzUmVwZWF0aW5n
KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlcGVhdGluZzsgfQorICAgICAgICB2b2lkIGNsZWFyVGlt
ZXJTb3VyY2UoKTsKKyAgICAgICAgR1JlZlB0cjxHU291cmNlPiBtX3RpbWVyU291cmNlOworICAg
ICAgICBnYm9vbGVhbiBtX2lzUmVwZWF0aW5nOworI2VsaWYgUExBVEZPUk0oRUZMKQorICAgICAg
ICBzdGF0aWMgYm9vbCB0aW1lckZpcmVkKHZvaWQqIGRhdGEpOworICAgICAgICBFY29yZV9UaW1l
ciogbV90aW1lcjsKKyAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOworI2VuZGlmCisgICAgfTsK
KworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3M+CisgICAgY2xhc3MgVGlt
ZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdm9p
ZCAoVGltZXJGaXJlZENsYXNzOjoqVGltZXJGaXJlZEZ1bmN0aW9uKSgpOworCisgICAgICAgIFRp
bWVyKFJ1bkxvb3AqIHJ1bkxvb3AsIFRpbWVyRmlyZWRDbGFzcyogbywgVGltZXJGaXJlZEZ1bmN0
aW9uIGYpCisgICAgICAgICAgICA6IFRpbWVyQmFzZShydW5Mb29wKQorICAgICAgICAgICAgLCBt
X29iamVjdChvKQorICAgICAgICAgICAgLCBtX2Z1bmN0aW9uKGYpCisgICAgICAgIHsKKyAgICAg
ICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgeyAobV9v
YmplY3QtPiptX2Z1bmN0aW9uKSgpOyB9CisKKyAgICAgICAgVGltZXJGaXJlZENsYXNzKiBtX29i
amVjdDsKKyAgICAgICAgVGltZXJGaXJlZEZ1bmN0aW9uIG1fZnVuY3Rpb247CisgICAgfTsKKwor
ICAgIGNsYXNzIEhvbGRlcjsKKworcHJpdmF0ZToKKyAgICBSdW5Mb29wKCk7CisKKyAgICB2b2lk
IHBlcmZvcm1Xb3JrKCk7CisKKyAgICBNdXRleCBtX2Z1bmN0aW9uUXVldWVMb2NrOworICAgIERl
cXVlPEZ1bmN0aW9uPHZvaWQoKT4gPiBtX2Z1bmN0aW9uUXVldWU7CisKKyNpZiBQTEFURk9STShX
SU4pCisgICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7
CisgICAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcFduZFByb2MoSFdORCwgVUlOVCwg
V1BBUkFNLCBMUEFSQU0pOworICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7CisgICAgSFdORCBtX3J1bkxvb3BN
ZXNzYWdlV2luZG93OworCisgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBUaW1lckJhc2Uq
PiBUaW1lck1hcDsKKyAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKKyNlbGlmIFBMQVRGT1JN
KE1BQykKKyAgICBzdGF0aWMgdm9pZCBwZXJmb3JtV29yayh2b2lkKik7CisgICAgUmV0YWluUHRy
PENGUnVuTG9vcFJlZj4gbV9ydW5Mb29wOworICAgIFJldGFpblB0cjxDRlJ1bkxvb3BTb3VyY2VS
ZWY+IG1fcnVuTG9vcFNvdXJjZTsKKyAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7CisjZWxpZiBQTEFU
Rk9STShRVCkKKyAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBUaW1lckJhc2UqPiBUaW1lck1hcDsK
KyAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKKyAgICBjbGFzcyBUaW1lck9iamVjdDsKKyAg
ICBUaW1lck9iamVjdCogbV90aW1lck9iamVjdDsKKyNlbGlmIFBMQVRGT1JNKEdUSykKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgZ2Jvb2xlYW4gcXVldWVXb3JrKFJ1bkxvb3AqKTsKKyAgICBHTWFpbkxv
b3AqIGlubmVybW9zdExvb3AoKTsKKyAgICB2b2lkIHB1c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxv
b3AqKTsKKyAgICB2b2lkIHBvcE5lc3RlZE1haW5Mb29wKCk7Citwcml2YXRlOgorICAgIEdSZWZQ
dHI8R01haW5Db250ZXh0PiBtX3J1bkxvb3BDb250ZXh0OworICAgIFZlY3RvcjxHUmVmUHRyPEdN
YWluTG9vcD4gPiBtX3J1bkxvb3BNYWluTG9vcHM7CisjZWxpZiBQTEFURk9STShFRkwpCisgICAg
Ym9vbCBtX2luaXRFZmw7CisKKyAgICBNdXRleCBtX3BpcGVMb2NrOworICAgIE93blB0cjxFY29y
ZV9QaXBlPiBtX3BpcGU7CisKKyAgICBNdXRleCBtX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jazsK
KyAgICBib29sIG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQ7CisKKyAgICBzdGF0aWMgdm9pZCB3YWtl
VXBFdmVudCh2b2lkKiBkYXRhLCB2b2lkKiwgdW5zaWduZWQgaW50KTsKKyNlbmRpZgorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6UnVuTG9vcDsKKworI2VuZGlmIC8vIFJ1
bkxvb3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2luZG93c0V4dHJhcy5oIGIvU291
cmNlL1dURi93dGYvV2luZG93c0V4dHJhcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmYzZiMjAxYzMzNTkzY2Y4
ZWM2ZDQzMDM3ODc1N2VhMjNlYzQ5YTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9XaW5kb3dzRXh0cmFzLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBQYXRyaWNrIEdhbnN0ZXJlciA8cGFyb2dhQHBhcm9nYS5jb20+CisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXaW5kb3dzRXh0
cmFzX2gKKyNkZWZpbmUgV2luZG93c0V4dHJhc19oCisKKyNpbmNsdWRlIDx3aW5kb3dzLmg+Cisj
aW5jbHVkZSA8b2JqYmFzZS5oPgorI2luY2x1ZGUgPHNobHdhcGkuaD4KKworbmFtZXNwYWNlIFdU
RiB7CisKKyNpZm5kZWYgSFdORF9NRVNTQUdFCitjb25zdCBIV05EIEhXTkRfTUVTU0FHRSA9IDA7
CisjZW5kaWYKKworaW5saW5lIEhSRVNVTFQgZ2V0UmVnaXN0cnlWYWx1ZShIS0VZIGhrZXksIExQ
Q1dTVFIgcHN6U3ViS2V5LCBMUENXU1RSIHBzelZhbHVlLCBMUERXT1JEIHBkd1R5cGUsIExQVk9J
RCBwdkRhdGEsIExQRFdPUkQgcGNiRGF0YSkKK3sKKyNpZiBPUyhXSU5DRSkKKyAgICBIS0VZIGtl
eTsKKyAgICBpZiAoOjpSZWdPcGVuS2V5RXhXKGhrZXksIHBzelN1YktleSwgMCwgMCwgJmtleSkg
IT0gRVJST1JfU1VDQ0VTUykKKyAgICAgICAgcmV0dXJuIEVSUk9SX0lOVkFMSURfTkFNRTsKKyAg
ICBIUkVTVUxUIHJlc3VsdCA9IDo6UmVnUXVlcnlWYWx1ZUV4VyhrZXksIHBzelZhbHVlLCAwLCBw
ZHdUeXBlLCBzdGF0aWNfY2FzdDxMUEJZVEU+KHB2RGF0YSksIHBjYkRhdGEpOworICAgIDo6UmVn
Q2xvc2VLZXkoa2V5KTsKKyAgICByZXR1cm4gcmVzdWx0OworI2Vsc2UKKyAgICByZXR1cm4gOjpT
SEdldFZhbHVlVyhoa2V5LCBwc3pTdWJLZXksIHBzelZhbHVlLCBwZHdUeXBlLCBwdkRhdGEsIHBj
YkRhdGEpOworI2VuZGlmCit9CisKK2lubGluZSB2b2lkKiBnZXRXaW5kb3dQb2ludGVyKEhXTkQg
aFduZCwgaW50IGluZGV4KQoreworI2lmIE9TKFdJTkNFKQorICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PHZvaWQqPig6OkdldFdpbmRvd0xvbmcoaFduZCwgaW5kZXgpKTsKKyNlbHNlCisgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDo6R2V0V2luZG93TG9uZ1B0cihoV25kLCBp
bmRleCkpOworI2VuZGlmCit9CisKK2lubGluZSB2b2lkKiBzZXRXaW5kb3dQb2ludGVyKEhXTkQg
aFduZCwgaW50IGluZGV4LCB2b2lkKiB2YWx1ZSkKK3sKKyNpZiBPUyhXSU5DRSkKKyAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oOjpTZXRXaW5kb3dMb25nKGhXbmQsIGluZGV4LCBy
ZWludGVycHJldF9jYXN0PExPTkc+KHZhbHVlKSkpOworI2Vsc2UKKyAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oOjpTZXRXaW5kb3dMb25nUHRyKGhXbmQsIGluZGV4LCByZWludGVy
cHJldF9jYXN0PExPTkdfUFRSPih2YWx1ZSkpKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFj
ZSBXVEYKKwordXNpbmcgV1RGOjpnZXRSZWdpc3RyeVZhbHVlOwordXNpbmcgV1RGOjpnZXRXaW5k
b3dQb2ludGVyOwordXNpbmcgV1RGOjpzZXRXaW5kb3dQb2ludGVyOworCisjZW5kaWYgLy8gV2lu
ZG93c0V4dHJhc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9ibGFja2JlcnJ5L1J1bkxv
b3BCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XVEYvd3RmL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNr
QmVycnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyYjg2YjViNTExODUxNzcwNDI1ZjRkOTI4ZjNkZjg1ZGYx
ZGU0NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9ibGFja2JlcnJ5L1J1bkxv
b3BCbGFja0JlcnJ5LmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3Au
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXVEYgeworCitS
dW5Mb29wOjpSdW5Mb29wKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitSdW5Mb29w
Ojp+UnVuTG9vcCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBSdW5Mb29w
Ojp3YWtlVXAoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3BwIGIvU291
cmNlL1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjMDk3Zjg2YWY3Mjhm
NWY4YmUxZDNiYmFkMTQzZDJjMDUxY2U2NTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9lZmwvUnVuTG9vcEVmbC5jcHAKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKwor
I2luY2x1ZGUgPEVjb3JlLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CisKK3N0YXRpYyBjb25zdCBpbnQgZWNvcmVQaXBlTWVzc2FnZVNpemUg
PSAxOworc3RhdGljIGNvbnN0IGNoYXIgd2FrdXBFY29yZVBpcGVNZXNzYWdlW10gPSAiVyI7CisK
K25hbWVzcGFjZSBXVEYgeworCitSdW5Mb29wOjpSdW5Mb29wKCkKKyAgICA6IG1faW5pdEVmbChm
YWxzZSkKKyAgICAsIG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQoZmFsc2UpCit7CisgICAgbV9waXBl
ID0gYWRvcHRQdHIoZWNvcmVfcGlwZV9hZGQod2FrZVVwRXZlbnQsIHRoaXMpKTsKKyAgICBtX2lu
aXRFZmwgPSB0cnVlOworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgpCit7Cit9CisKK3ZvaWQgUnVu
TG9vcDo6cnVuKCkKK3sKKyAgICBlY29yZV9tYWluX2xvb3BfYmVnaW4oKTsKK30KKwordm9pZCBS
dW5Mb29wOjpzdG9wKCkKK3sKKyAgICBlY29yZV9tYWluX2xvb3BfcXVpdCgpOworfQorCit2b2lk
IFJ1bkxvb3A6Ondha2VVcEV2ZW50KHZvaWQqIGRhdGEsIHZvaWQqLCB1bnNpZ25lZCBpbnQpCit7
CisgICAgUnVuTG9vcCogbG9vcCA9IHN0YXRpY19jYXN0PFJ1bkxvb3AqPihkYXRhKTsKKworICAg
IHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGxvb3AtPm1fd2FrZVVwRXZlbnRSZXF1ZXN0
ZWRMb2NrKTsKKyAgICAgICAgbG9vcC0+bV93YWtlVXBFdmVudFJlcXVlc3RlZCA9IGZhbHNlOwor
ICAgIH0KKworICAgIGxvb3AtPnBlcmZvcm1Xb3JrKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2Fr
ZVVwKCkKK3sKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dha2VVcEV2ZW50
UmVxdWVzdGVkTG9jayk7CisgICAgICAgIGlmIChtX3dha2VVcEV2ZW50UmVxdWVzdGVkKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3dha2VVcEV2ZW50UmVxdWVzdGVkID0gdHJ1ZTsK
KyAgICB9CisKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BpcGVMb2NrKTsK
KyAgICAgICAgZWNvcmVfcGlwZV93cml0ZShtX3BpcGUuZ2V0KCksIHdha3VwRWNvcmVQaXBlTWVz
c2FnZSwgZWNvcmVQaXBlTWVzc2FnZVNpemUpOworICAgIH0KK30KKworUnVuTG9vcDo6VGltZXJC
YXNlOjpUaW1lckJhc2UoUnVuTG9vcCopCisgICAgOiBtX3RpbWVyKDApCisgICAgLCBtX2lzUmVw
ZWF0aW5nKGZhbHNlKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQor
eworICAgIHN0b3AoKTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQo
dm9pZCogZGF0YSkKK3sKKyAgICBSdW5Mb29wOjpUaW1lckJhc2UqIHRpbWVyID0gc3RhdGljX2Nh
c3Q8UnVuTG9vcDo6VGltZXJCYXNlKj4oZGF0YSk7CisKKyAgICB0aW1lci0+ZmlyZWQoKTsKKwor
ICAgIGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpIHsKKyAgICAgICAgdGltZXItPm1fdGltZXIg
PSAwOworICAgICAgICByZXR1cm4gRUNPUkVfQ0FMTEJBQ0tfQ0FOQ0VMOworICAgIH0KKworICAg
IHJldHVybiBFQ09SRV9DQUxMQkFDS19SRU5FVzsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJh
c2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBp
ZiAoaXNBY3RpdmUoKSkKKyAgICAgICAgc3RvcCgpOworCisgICAgbV9pc1JlcGVhdGluZyA9IHJl
cGVhdDsKKyAgICBBU1NFUlQoIW1fdGltZXIpOworICAgIG1fdGltZXIgPSBlY29yZV90aW1lcl9h
ZGQobmV4dEZpcmVJbnRlcnZhbCwgcmVpbnRlcnByZXRfY2FzdDxFY29yZV9UYXNrX0NiPih0aW1l
ckZpcmVkKSwgdGhpcyk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sK
KyAgICBpZiAobV90aW1lcikgeworICAgICAgICBlY29yZV90aW1lcl9kZWwobV90aW1lcik7Cisg
ICAgICAgIG1fdGltZXIgPSAwOworICAgIH0KK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6
OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKG1fdGltZXIpID8gdHJ1ZSA6IGZhbHNl
OworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2d0
ay9SdW5Mb29wR3RrLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2d0ay9SdW5Mb29wR3RrLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43YzQzNTI3OGIyNzc1NDJhYWJhOTQzYjE2Zjk0ZWMzMDVkOTQ0M2YwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvZ3RrL1J1bkxvb3BHdGsuY3BwCkBAIC0wLDAgKzEs
MTcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0
eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPGdkay9nZGsuaD4KKyNpbmNs
dWRlIDxnbGliLmg+CisKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2Ug
V1RGIHsKKworUnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAgLy8gZ19tYWluX2NvbnRleHRfZGVm
YXVsdCgpIGRvZXNuJ3QgYWRkIGFuIGV4dHJhIHJlZmVyZW5jZS4KKyAgICBtX3J1bkxvb3BDb250
ZXh0ID0gaXNNYWluVGhyZWFkKCkgPyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgOiBhZG9wdEdS
ZWYoZ19tYWluX2NvbnRleHRfbmV3KCkpOworICAgIEFTU0VSVChtX3J1bkxvb3BDb250ZXh0KTsK
KyAgICBHUmVmUHRyPEdNYWluTG9vcD4gaW5uZXJtb3N0TG9vcCA9IGFkb3B0R1JlZihnX21haW5f
bG9vcF9uZXcobV9ydW5Mb29wQ29udGV4dC5nZXQoKSwgRkFMU0UpKTsKKyAgICBBU1NFUlQoaW5u
ZXJtb3N0TG9vcCk7CisgICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChpbm5lcm1vc3RMb29w
KTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIGZvciAoaW50IGkgPSBtX3J1bkxv
b3BNYWluTG9vcHMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgaWYgKCFnX21h
aW5fbG9vcF9pc19ydW5uaW5nKG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluTG9v
cHNbaV0uZ2V0KCkpOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAgIFJ1
bkxvb3AqIG1haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworICAgIEdNYWluTG9vcCog
aW5uZXJtb3N0TG9vcCA9IG1haW5SdW5Mb29wLT5pbm5lcm1vc3RMb29wKCk7CisgICAgaWYgKCFn
X21haW5fbG9vcF9pc19ydW5uaW5nKGlubmVybW9zdExvb3ApKSB7CisgICAgICAgIGdfbWFpbl9s
b29wX3J1bihpbm5lcm1vc3RMb29wKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8v
IENyZWF0ZSBhbmQgcnVuIGEgbmVzdGVkIGxvb3AgaWYgdGhlIGlubmVybW9zdCBvbmUgd2FzIGFs
cmVhZHkgcnVubmluZy4KKyAgICBHTWFpbkxvb3AqIG5lc3RlZE1haW5Mb29wID0gZ19tYWluX2xv
b3BfbmV3KDAsIEZBTFNFKTsKKyAgICBtYWluUnVuTG9vcC0+cHVzaE5lc3RlZE1haW5Mb29wKG5l
c3RlZE1haW5Mb29wKTsKKyAgICBnX21haW5fbG9vcF9ydW4obmVzdGVkTWFpbkxvb3ApOworICAg
IG1haW5SdW5Mb29wLT5wb3BOZXN0ZWRNYWluTG9vcCgpOworfQorCitHTWFpbkxvb3AqIFJ1bkxv
b3A6OmlubmVybW9zdExvb3AoKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNo
b3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNF
bXB0eSgpKTsKKyAgICByZXR1cm4gbV9ydW5Mb29wTWFpbkxvb3BzWzBdLmdldCgpOworfQorCit2
b2lkIFJ1bkxvb3A6OnB1c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxvb3AqIG5lc3RlZExvb3ApCit7
CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4K
KyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOworICAgIG1fcnVuTG9v
cE1haW5Mb29wcy5hcHBlbmQoYWRvcHRHUmVmKG5lc3RlZExvb3ApKTsKK30KKwordm9pZCBSdW5M
b29wOjpwb3BOZXN0ZWRNYWluTG9vcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxv
b3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29w
cy5pc0VtcHR5KCkpOworICAgIG1fcnVuTG9vcE1haW5Mb29wcy5yZW1vdmVMYXN0KCk7Cit9CisK
K3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Ag
c2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5p
c0VtcHR5KCkpOworICAgIEdSZWZQdHI8R01haW5Mb29wPiBsYXN0TWFpbkxvb3AgPSBtX3J1bkxv
b3BNYWluTG9vcHMubGFzdCgpOworICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKGxhc3RN
YWluTG9vcC5nZXQoKSkpCisgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobGFzdE1haW5Mb29wLmdl
dCgpKTsKK30KKworZ2Jvb2xlYW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3Ap
Cit7CisgICAgcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisK
K3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9
IGFkb3B0R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKKyAgICBnX3NvdXJjZV9zZXRfcHJpb3Jp
dHkoc291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0RFRkFVTFQpOworICAgIGdfc291cmNlX3NldF9j
YWxsYmFjayhzb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5M
b29wOjpxdWV1ZVdvcmspLCB0aGlzLCAwKTsKKyAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdl
dCgpLCBtX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKKworICAgIGdfbWFpbl9jb250ZXh0X3dha2V1
cChtX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1l
ckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQorICAgICwg
bV90aW1lclNvdXJjZSgwKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2Uo
KQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGlt
ZXJTb3VyY2UoKQoreworICAgIG1fdGltZXJTb3VyY2UgPSAwOworfQorCitnYm9vbGVhbiBSdW5M
b29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRp
bWVyKQoreworICAgIEdTb3VyY2UqIGN1cnJlbnRUaW1lclNvdXJjZSA9IHRpbWVyLT5tX3RpbWVy
U291cmNlLmdldCgpOworICAgIGJvb2wgaXNSZXBlYXRpbmcgPSB0aW1lci0+aXNSZXBlYXRpbmco
KTsKKyAgICAvLyBUaGlzIGNhbiBjaGFuZ2UgdGhlIHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5nIGEg
bmV3IHRpbWVyIHdpdGhpbiB0aGUgY2FsbGJhY2suCisgICAgdGltZXItPmZpcmVkKCk7CisgICAg
aWYgKCFpc1JlcGVhdGluZyAmJiBjdXJyZW50VGltZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJT
b3VyY2UuZ2V0KCkpCisgICAgICAgIHRpbWVyLT5jbGVhclRpbWVyU291cmNlKCk7CisgICAgcmV0
dXJuIGlzUmVwZWF0aW5nOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91
YmxlIGZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgaWYgKG1fdGltZXJTb3VyY2Up
CisgICAgICAgIHN0b3AoKTsKKworICAgIG1fdGltZXJTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1l
b3V0X3NvdXJjZV9uZXcoc3RhdGljX2Nhc3Q8Z3VpbnQ+KGZpcmVJbnRlcnZhbCAqIDEwMDApKSk7
CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2so
bV90aW1lclNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxv
b3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKSwgdGhpcywgMCk7CisgICAgZ19zb3Vy
Y2VfYXR0YWNoKG1fdGltZXJTb3VyY2UuZ2V0KCksIG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4
dC5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBp
ZiAoIW1fdGltZXJTb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGdfc291cmNlX2Rlc3Ry
b3kobV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgY2xlYXJUaW1lclNvdXJjZSgpOworfQorCiti
b29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBt
X3RpbWVyU291cmNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL21hYy9SdW5Mb29wTWFjLm1tIGIvU291cmNlL1dURi93dGYvbWFjL1J1bkxvb3BN
YWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzUzYjAyZGZmMWIwZDE4N2RlOWI2NWQzNDQyMzQ0ZDQ5M2IxODNi
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL21hYy9SdW5Mb29wTWFjLm1tCkBA
IC0wLDAgKzEsMTYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJSdW5Mb29wLmgiCisKKyNpbXBvcnQgIkF1dG9kcmFpbmVkUG9vbC5oIgorI2lmICFQ
TEFURk9STShJT1MpCisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CisjZW5kaWYKKworbmFtZXNw
YWNlIFdURiB7CisKK3N0YXRpYyBib29sIHNfdXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVu
TG9vcDsKKwordm9pZCBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5M
b29wKCkKK3sKKyAgICBzX3VzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3AgPSB0cnVl
OworfQorCit2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKHZvaWQqIGNvbnRleHQpCit7CisgICAg
QXV0b2RyYWluZWRQb29sIHBvb2w7CisgICAgc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQp
LT5wZXJmb3JtV29yaygpOworfQorCitSdW5Mb29wOjpSdW5Mb29wKCkKKyAgICA6IG1fcnVuTG9v
cChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpCisgICAgLCBtX25lc3RpbmdMZXZlbCgwKQoreworICAg
IENGUnVuTG9vcFNvdXJjZUNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsKKyAgICBtX3J1bkxvb3BTb3VyY2UgPSBhZG9wdENGKENG
UnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAmY29udGV4dCkpOwor
ICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1fcnVuTG9vcFNvdXJjZS5n
ZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQor
eworICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRhdGUobV9ydW5Mb29wU291cmNlLmdldCgpKTsK
K30KKwordm9pZCBSdW5Mb29wOjpydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCit7Cisg
ICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwgZHVyYXRpb24sIHRy
dWUpOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgQ0ZSdW5Mb29wU291cmNl
U2lnbmFsKG1fcnVuTG9vcFNvdXJjZS5nZXQoKSk7CisgICAgQ0ZSdW5Mb29wV2FrZVVwKG1fcnVu
TG9vcC5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBjdXJyZW50KCkt
Pm1fbmVzdGluZ0xldmVsKys7CisKKyNpZiAhUExBVEZPUk0oSU9TKQorICAgIGlmIChjdXJyZW50
KCkgPT0gbWFpbigpICYmIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwgPT0gMSAmJiBzX3VzZUFw
cGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3ApIHsKKyAgICAgICAgLy8gVXNlIC1bTlNBcHBs
aWNhdGlvbiBydW5dIGZvciB0aGUgbWFpbiBydW4gbG9vcC4KKyAgICAgICAgW05TQXBwIHJ1bl07
CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICB7CisgICAgICAgIEF1dG9kcmFpbmVkUG9vbCBwb29s
OworICAgICAgICBDRlJ1bkxvb3BSdW4oKTsKKyAgICB9CisKKyAgICBjdXJyZW50KCktPm1fbmVz
dGluZ0xldmVsLS07Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgQVNTRVJUKG1f
cnVuTG9vcCA9PSBDRlJ1bkxvb3BHZXRDdXJyZW50KCkpOworCisjaWYgIVBMQVRGT1JNKElPUykK
KyAgICAvLyBOZXN0aW5nIGxldmVsIGNhbiBiZSAwIGlmIHRoZSBydW4gbG9vcCBpcyBzdGFydGVk
IGV4dGVybmFsbHkgKHN1Y2ggYXMgdGhlIGNhc2UgZm9yIFhQQyBzZXJ2aWNlcykuCisgICAgaWYg
KG1fcnVuTG9vcCA9PSBtYWluKCktPm1fcnVuTG9vcCAmJiBtX25lc3RpbmdMZXZlbCA8PSAxICYm
IHNfdXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCkgeworICAgICAgICBBU1NFUlQo
W05TQXBwIGlzUnVubmluZ10pOworICAgICAgICBbTlNBcHAgc3RvcDpuaWxdOworICAgICAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0aW9u
RGVmaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh
dGlvbjpOU01ha2VQb2ludCgwLCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbW9kaWZpZXJGbGFnczowCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOjAuMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3aW5kb3dOdW1iZXI6MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGV4dDpuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN1YnR5cGU6IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0YTE6MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkYXRhMjowXTsKKyAgICAgICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBh
dFN0YXJ0OnRydWVdOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgICAgIENGUnVuTG9vcFN0b3Ao
bV9ydW5Mb29wLmdldCgpKTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwordm9pZCBSdW5Mb29w
OjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqIGNvbnRleHQp
Cit7CisgICAgVGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFRpbWVyQmFzZSo+KGNvbnRl
eHQpOworCisgICAgQXV0b2RyYWluZWRQb29sIHBvb2w7CisgICAgdGltZXItPmZpcmVkKCk7Cit9
CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAg
OiBtX3J1bkxvb3AocnVuTG9vcCkKK3sKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJC
YXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFy
dChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgaWYgKG1fdGlt
ZXIpCisgICAgICAgIHN0b3AoKTsKKworICAgIENGUnVuTG9vcFRpbWVyQ29udGV4dCBjb250ZXh0
ID0geyAwLCB0aGlzLCAwLCAwLCAwIH07CisgICAgQ0ZUaW1lSW50ZXJ2YWwgcmVwZWF0SW50ZXJ2
YWwgPSByZXBlYXQgPyBuZXh0RmlyZUludGVydmFsIDogMDsKKyAgICBtX3RpbWVyID0gYWRvcHRD
RihDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGlt
ZUdldEN1cnJlbnQoKSArIG5leHRGaXJlSW50ZXJ2YWwsIHJlcGVhdEludGVydmFsLCAwLCAwLCB0
aW1lckZpcmVkLCAmY29udGV4dCkpOworICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC0+
bV9ydW5Mb29wLmdldCgpLCBtX3RpbWVyLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwor
fQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX3RpbWVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBDRlJ1bkxvb3BUaW1lckludmFsaWRhdGUobV90aW1l
ci5nZXQoKSk7CisgICAgbV90aW1lciA9IG51bGxwdHI7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGlt
ZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5M
b29wVGltZXJJc1ZhbGlkKG1fdGltZXIuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3F0L1J1bkxvb3BRdC5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9xdC9SdW5Mb29wUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1YjM1OWFjMjYzYWFmNmE5Njk3MmYw
NWFlMDUwYWUzMGE3ZGY0NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9xdC9S
dW5Mb29wUXQuY3BwCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPFFB
YnN0cmFjdEV2ZW50RGlzcGF0Y2hlcj4KKyNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgorI2lu
Y2x1ZGUgPFFNZXRhTWV0aG9kPgorI2luY2x1ZGUgPFFNZXRhT2JqZWN0PgorI2luY2x1ZGUgPFFP
YmplY3Q+CisjaW5jbHVkZSA8UVRpbWVyRXZlbnQ+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFz
cyBSdW5Mb29wOjpUaW1lck9iamVjdCA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAor
cHVibGljOgorICAgIFRpbWVyT2JqZWN0KFJ1bkxvb3AqIHJ1bkxvb3ApIDogbV9ydW5Mb29wKHJ1
bkxvb3ApCisgICAgeworICAgICAgICBpbnQgbWV0aG9kSW5kZXggPSBtZXRhT2JqZWN0KCktPmlu
ZGV4T2ZNZXRob2QoInBlcmZvcm1Xb3JrKCkiKTsKKyAgICAgICAgbV9tZXRob2QgPSBtZXRhT2Jq
ZWN0KCktPm1ldGhvZChtZXRob2RJbmRleCk7CisgICAgfQorCisgICAgUV9TTE9UIHZvaWQgcGVy
Zm9ybVdvcmsoKSB7IG1fcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsgfQorICAgIGlubGluZSB2b2lk
IHdha2VVcCgpIHsgbV9tZXRob2QuaW52b2tlKHRoaXMsIFF0OjpRdWV1ZWRDb25uZWN0aW9uKTsg
fQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQq
IGV2ZW50KQorICAgIHsKKyAgICAgICAgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKG1f
cnVuTG9vcCwgZXZlbnQtPnRpbWVySWQoKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFJ1bkxv
b3AqIG1fcnVuTG9vcDsKKyAgICBRTWV0YU1ldGhvZCBtX21ldGhvZDsKK307CisKK3N0YXRpYyBR
RXZlbnRMb29wKiBjdXJyZW50RXZlbnRMb29wOworCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7Cisg
ICAgc3RhdGljIGJvb2wgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZhbHNlOworICAgIGlmICgh
bWFpbkV2ZW50TG9vcElzUnVubmluZykgeworICAgICAgICBtYWluRXZlbnRMb29wSXNSdW5uaW5n
ID0gdHJ1ZTsKKyAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhlYygpOworICAgICAgICBtYWlu
RXZlbnRMb29wSXNSdW5uaW5nID0gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgUUV2ZW50
TG9vcCBldmVudExvb3A7CisKKyAgICAgICAgUUV2ZW50TG9vcCogcHJldmlvdXNFdmVudExvb3Ag
PSBjdXJyZW50RXZlbnRMb29wOworICAgICAgICBjdXJyZW50RXZlbnRMb29wID0gJmV2ZW50TG9v
cDsKKworICAgICAgICBldmVudExvb3AuZXhlYygpOworCisgICAgICAgIGN1cnJlbnRFdmVudExv
b3AgPSBwcmV2aW91c0V2ZW50TG9vcDsKKyAgICB9Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgp
Cit7CisgICAgaWYgKGN1cnJlbnRFdmVudExvb3ApCisgICAgICAgIGN1cnJlbnRFdmVudExvb3At
PmV4aXQoKTsKKyAgICBlbHNlCisgICAgICAgIFFDb3JlQXBwbGljYXRpb246OmV4aXQoKTsKK30K
KworUnVuTG9vcDo6UnVuTG9vcCgpCisgICAgOiBtX3RpbWVyT2JqZWN0KG5ldyBUaW1lck9iamVj
dCh0aGlzKSkKK3sKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIGRlbGV0ZSBtX3Rp
bWVyT2JqZWN0OworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgbV90aW1lck9i
amVjdC0+d2FrZVVwKCk7Cit9CisKKy8vIFJ1bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIGludCBJRCkKK3sKKyAgICBU
aW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsK
KyAgICBBU1NFUlQoaXQgIT0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpOworICAgIFRp
bWVyQmFzZSogdGltZXIgPSBpdC0+dmFsdWU7CisKKyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0
aW5nKSB7CisgICAgICAgIC8vIFN0b3AgdGhlIHRpbWVyIChjYWxsaW5nIHN0b3Agd291bGQgbmVl
ZCBhbm90aGVyIGhhc2ggdGFibGUgbG9va3VwKS4KKyAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMucmVtb3ZlKGl0KTsKKyAgICAgICAgcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRp
bWVyKHRpbWVyLT5tX0lEKTsKKyAgICAgICAgdGltZXItPm1fSUQgPSAwOworICAgIH0KKworICAg
IHRpbWVyLT5maXJlZCgpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5M
b29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBtX0lEKDApCisg
ICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5U
aW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6
OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBzdG9w
KCk7CisgICAgaW50IG1pbGxpcyA9IHN0YXRpY19jYXN0PGludD4obmV4dEZpcmVJbnRlcnZhbCAq
IDEwMDApOworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgbV9JRCA9IG1fcnVuTG9v
cC0+bV90aW1lck9iamVjdC0+c3RhcnRUaW1lcihtaWxsaXMpOworICAgIEFTU0VSVChtX0lEKTsK
KyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKK30KKwordm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQoreworICAgIGlmICghbV9JRCkKKyAgICAgICAg
cmV0dXJuOworICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZmluZChtX0lEKTsKKyAgICBpZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5yZW1vdmUoaXQpOworICAgIG1fcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRpbWVyKG1f
SUQpOworICAgIG1fSUQgPSAwOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3Rp
dmUoKSBjb25zdAoreworICAgIHJldHVybiBtX0lEOworfQorCisjaW5jbHVkZSAiUnVuTG9vcFF0
Lm1vYyIKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93
aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjMwNmY1NTg3OTZmMmNhMTk5NDcxOWJkYzA3ZjE1YjQxOWY1Njc2OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcApAQCAtMCwwICsx
LDE3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5M
b29wLmgiCisKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2lu
ZG93c0V4dHJhcy5oPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV1RGIHsK
Kworc3RhdGljIGNvbnN0IFVJTlQgUGVyZm9ybVdvcmtNZXNzYWdlID0gV01fVVNFUiArIDE7Citz
dGF0aWMgY29uc3QgTFBXU1RSIGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSA9IEwiUnVu
TG9vcE1lc3NhZ2VXaW5kb3ciOworCitMUkVTVUxUIENBTExCQUNLIFJ1bkxvb3A6OlJ1bkxvb3BX
bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtKQoreworICAgIGlmIChSdW5Mb29wKiBydW5Mb29wID0gc3RhdGljX2Nhc3Q8UnVuTG9vcCo+
KGdldFdpbmRvd1BvaW50ZXIoaFduZCwgMCkpKQorICAgICAgICByZXR1cm4gcnVuTG9vcC0+d25k
UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CisKKyAgICBpZiAobWVzc2FnZSA9
PSBXTV9DUkVBVEUpIHsKKyAgICAgICAgTFBDUkVBVEVTVFJVQ1QgY3JlYXRlU3RydWN0ID0gcmVp
bnRlcnByZXRfY2FzdDxMUENSRUFURVNUUlVDVD4obFBhcmFtKTsKKworICAgICAgICAvLyBBc3Nv
Y2lhdGUgdGhlIFJ1bkxvb3Agd2l0aCB0aGUgd2luZG93LgorICAgICAgICBzZXRXaW5kb3dQb2lu
dGVyKGhXbmQsIDAsIGNyZWF0ZVN0cnVjdC0+bHBDcmVhdGVQYXJhbXMpOworICAgICAgICByZXR1
cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2Us
IHdQYXJhbSwgbFBhcmFtKTsKK30KKworTFJFU1VMVCBSdW5Mb29wOjp3bmRQcm9jKEhXTkQgaFdu
ZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQoreworICAgIHN3
aXRjaCAobWVzc2FnZSkgeworICAgIGNhc2UgUGVyZm9ybVdvcmtNZXNzYWdlOgorICAgICAgICBw
ZXJmb3JtV29yaygpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIFdNX1RJTUVSOgorICAg
ICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQodGhpcywgd1BhcmFtKTsKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBt
ZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAg
ICBNU0cgbWVzc2FnZTsKKyAgICB3aGlsZSAoQk9PTCByZXN1bHQgPSA6OkdldE1lc3NhZ2UoJm1l
c3NhZ2UsIDAsIDAsIDApKSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgOjpUcmFuc2xhdGVNZXNzYWdlKCZtZXNzYWdlKTsKKyAgICAgICAg
OjpEaXNwYXRjaE1lc3NhZ2UoJm1lc3NhZ2UpOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpz
dG9wKCkKK3sKKyAgICA6OlBvc3RRdWl0TWVzc2FnZSgwKTsKK30KKworYm9vbCBSdW5Mb29wOjpy
ZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKQoreworICAgIC8vIEZJWE1FOiBUaGlz
IHJlYWxseSBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlLgorCisgICAgV05EQ0xBU1Mgd2lu
ZG93Q2xhc3MgPSB7IDAgfTsKKyAgICB3aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBSdW5M
b29wOjpSdW5Mb29wV25kUHJvYzsKKyAgICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAgPSBz
aXplb2YoUnVuTG9vcCopOworICAgIHdpbmRvd0NsYXNzLmxwc3pDbGFzc05hbWUgICA9IGtSdW5M
b29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZTsKKworICAgIHJldHVybiAhITo6UmVnaXN0ZXJDbGFz
cygmd2luZG93Q2xhc3MpOworfQorCitSdW5Mb29wOjpSdW5Mb29wKCkKK3sKKyAgICByZWdpc3Rl
clJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKKworICAgIG1fcnVuTG9vcE1lc3NhZ2VXaW5k
b3cgPSA6OkNyZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUsIDAsIDAs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENXX1VTRURFRkFV
TFQsIDAsIENXX1VTRURFRkFVTFQsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgMCwgdGhpcyk7CisgICAgQVNTRVJUKDo6SXNX
aW5kb3cobV9ydW5Mb29wTWVzc2FnZVdpbmRvdykpOworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgp
Cit7CisgICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBpdGVtIHF1ZXVlIGhlcmUuCit9
CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICAvLyBGSVhNRTogTm8gbmVlZCB0byB3
YWtlIHVwIHRoZSBydW4gbG9vcCBpZiB3ZSd2ZSBhbHJlYWR5IGNhbGxlZCBkaXNwYXRjaAorICAg
IC8vIGJlZm9yZSB0aGUgcnVuIGxvb3AgaGFzIGhhZCB0aGUgdGltZSB0byByZXNwb25kLgorICAg
IDo6UG9zdE1lc3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgUGVyZm9ybVdvcmtNZXNzYWdl
LCByZWludGVycHJldF9jYXN0PFdQQVJBTT4odGhpcyksIDApOworfQorCisvLyBSdW5Mb29wOjpU
aW1lcgorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5M
b29wLCB1aW50NjRfdCBJRCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKKyAgICBpZiAoaXQgPT0gcnVuTG9vcC0+bV9hY3Rp
dmVUaW1lcnMuZW5kKCkpIHsKKyAgICAgICAgLy8gVGhlIHRpbWVyIG11c3QgaGF2ZSBiZWVuIHN0
b3BwZWQgYWZ0ZXIgdGhlIFdNX1RJTUVSIG1lc3NhZ2Ugd2FzIHBvc3RlZCB0byB0aGUgbWVzc2Fn
ZSBxdWV1ZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFRpbWVyQmFzZSogdGltZXIg
PSBpdC0+dmFsdWU7CisKKyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7CisgICAgICAg
IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAgICAgIDo6S2lsbFRpbWVy
KHJ1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIElEKTsKKyAgICB9CisKKyAgICB0aW1l
ci0+ZmlyZWQoKTsKK30KKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlVGltZXJJRCgpCit7Cisg
ICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVRpbWVySUQgPSAxOworICAgIHJldHVybiB1bmlxdWVU
aW1lcklEKys7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1
bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKKyAgICAsIG1fSUQoZ2VuZXJhdGVUaW1l
cklEKCkpCisgICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQoreworfQorCitSdW5Mb29wOjpUaW1l
ckJhc2U6On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sK
KyAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OworICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1l
cnMuc2V0KG1fSUQsIHRoaXMpOworICAgIDo6U2V0VGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BN
ZXNzYWdlV2luZG93LCBtX0lELCBuZXh0RmlyZUludGVydmFsICogMTAwMCwgMCk7Cit9CisKK3Zv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0b3Ig
aXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7CisgICAgaWYgKGl0ID09
IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICA6OktpbGxUaW1lciht
X3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQpOworfQorCitib29sIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3J1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLmNvbnRhaW5zKG1fSUQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjQxZTM1OGQwNzBlNWQ1MDRhNzljMGMzYzU5MzEyY2E3
MzRmZWE2My4uMGY5YzQwYWU5NjVjODkzZTIzMTJhOTUwZGI3ZDlmZWY5N2EzYjYxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTE4MzEsNyArMTgzMSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMK
ICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNwcAogICAgIHBsYXRmb3JtL1BsYXRmb3JtSW5z
dHJ1bWVudGF0aW9uLmNwcAogICAgIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKLSAg
ICBwbGF0Zm9ybS9SdW5Mb29wLmNwcAogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5jcHAKICAgICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKICAgICBwbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGJhZTVm
MzkzZmI5ZGU2OGU2Njg5YmEyNzNmZWQ5NjU1NzZiMzk2Y2MuLmMzZTYwN2ZhNDVlMDYyY2I4NzU1
MmMwNWVhNDExMzI3ZmI0NWU3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
NjEzMSw4ICs2MTMxLDYgQEAgcGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL05vdEltcGxlbWVudGVkLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTm90SW1w
bGVtZW50ZWQuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAgXAotCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1VVSUQuY3BwIFwKQEAgLTYyNjUsNyArNjI2Myw2IEBAIHBsYXRmb3JtZ3RrX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcCBc
Ci0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1NoYXJlZFRpbWVyR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1NvdW5kR3RrLmNwcCBcCkBAIC02MzI3LDcgKzYzMjQsNiBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TeXN0ZW1JbmZvLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XZWJDb3JlSW5zdGFuY2VIYW5kbGUuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2ViQ29yZUluc3RhbmNlSGFuZGxlLmggXAot
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaW5kb3dzRXh0cmFzLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGx1Z2lucy93aW4vUGx1Z2luTWVzc2FnZVRocm90dGxlcldpbi5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbk1lc3NhZ2VUaHJvdHRsZXJXaW4uaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggMTczNmY1ZjQyYmQ5ZDk1ZTJiZjA2
NzkzOTVjYTBlNzNmMWRkNzBiMy4uZTZlZmUzMTUzZDEzODI3Y2I3MTNkMDcyNGFiYTRkNzE2M2My
YzBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtMTE2LDcg
KzExNiw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2JsYWNr
YmVycnkvUGxhdGZvcm1Ub3VjaFBvaW50QmxhY2tCZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9ibGFj
a2JlcnJ5L1BvcHVwTWVudUJsYWNrQmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9S
ZW5kZXJUaGVtZUJsYWNrQmVycnkuY3BwCi0gICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9SdW5Mb29w
QmxhY2tCZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1NTTEtleUdlbmVyYXRvckJs
YWNrQmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9TY3JvbGxiYXJUaGVtZUJsYWNr
QmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9TZWFyY2hQb3B1cE1lbnVCbGFja0Jl
cnJ5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmNDk2NjQ3MjUwOTc5YWM0N2Fm
ZTUzZGMyNGJhNDMyZjhlMTUwNTdhLi40MTYyNDgyZjJkZmRhNTk1MGU5NTRiNmI2YWRiNDk0ZTAw
ODQxNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNzYsNyArNzYsNiBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5F
ZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1BsYXRmb3JtV2hlZWxFdmVudEVmbC5jcHAKICAgICBw
bGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCi0gICAgcGxhdGZvcm0vZWZsL1J1bkxvb3BF
ZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKICAgICBwbGF0Zm9ybS9l
ZmwvU2Nyb2xsYmFyVGhlbWVFZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1Njcm9sbFZpZXdFZmwu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDJhOGI4NDViZGUwMDI5OTlhOWEyMGIx
Y2M1MmRlMjEwOTdiY2Y1MDcuLmYwMTVmZmFmNzUzMTMwMTY0ZTlhZmY1OGNhN2UzM2E4ZWY0YzRm
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC05Niw3ICs5Niw2IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3Bw
CiAgICAgcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKICAgICBwbGF0Zm9ybS9ndGsv
UmVuZGVyVGhlbWVHdGsuY3BwCi0gICAgcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCiAgICAg
cGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMi5jcHAKICAgICBwbGF0Zm9ybS9ndGsvU2Ny
b2xsYmFyVGhlbWVHdGszLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ0UuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNFLmNtYWtlCmluZGV4IDlkNDdkNDBkYTQ4NzBhMjIzYmNj
YmFiZDQyM2ZlYTgyNWYzZmNkN2UuLmUxMzAxOWQwNmU5NWZlZDMxNWEwNjk5YzBmM2Q3ODBkZTdm
MWJhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ0UuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DRS5jbWFrZQpAQCAtNTEsNyArNTEsNiBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2lu
LmNwcAogICAgIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCiAgICAgcGxh
dGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcAotICAgIHBsYXRmb3JtL3dpbi9SdW5Mb29w
V2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCiAgICAgcGxh
dGZvcm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9TZWFyY2hQ
b3B1cE1lbnVXaW4uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA0ZGY3OGQ0OTg3OTk1YjY4MzJjYWRlNDQ2
ZjdhNmM1ODQ4MmQ4NWZmLi45ZTUzZjlmZTU0NDllMWVkNzVmYWM4ODU2MTA5OTg3MTViNDYxMjkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKQEAgLTExMDUsNyArMTEwNSw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBs
YXRmb3JtL1BsYXRmb3JtRXZlbnQuY3BwIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1l
bnRhdGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAg
XAotICAgIHBsYXRmb3JtL1J1bkxvb3AuY3BwIFwKICAgICBwbGF0Zm9ybS9TY2hlbWVSZWdpc3Ry
eS5jcHAgXAogICAgIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBcCiAgICAgcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuY3BwIFwKQEAgLTI5MTksNyArMjkxOCw2IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHBsYXRmb3JtL3F0L0RyYWdJbWFnZVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvRXZlbnRM
b29wUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwIFwKLSAgICBwbGF0
Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9TaGFyZWRCdWZmZXJRdC5j
cHAgXAogICAgIHBsYXRmb3JtL3F0L1RoaXJkUGFydHlDb29raWVzUXQuY3BwIFwKICAgICBwbGF0
Zm9ybS9xdC9Vc2VyQWdlbnRRdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzMjE3NzY1
MmE2Zjg3NGVjNjQyM2FmYWI4MWY1ODczYjhiNGMyZTk5Li4yMGY2MTNlNzg4ZDk1NDY5YmRmMjk0
OTQwZDBlMTU3YmYwZDA0MWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTAyMSwxOSArMTAy
MSw2IEBAIF9fWk43V2ViQ29yZTdJbnRSZWN0OWludGVyc2VjdEVSS1MwXwogX19aTjdXZWJDb3Jl
N0ludFJlY3RDMUVSS05TXzEwTGF5b3V0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktO
U185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlN0ludFNpemVDMUVSSzZDR1NpemUKLV9fWk43V2Vi
Q29yZTdSdW5Mb29wMTRydW5Gb3JEdXJhdGlvbkVkCi1fX1pON1dlYkNvcmU3UnVuTG9vcDIxaW5p
dGlhbGl6ZU1haW5SdW5Mb29wRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wMzdzZXRVc2VBcHBsaWNh
dGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wM3J1bkV2Ci1f
X1pON1dlYkNvcmU3UnVuTG9vcDRtYWluRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wNHN0b3BFdgot
X19aTjdXZWJDb3JlN1J1bkxvb3A2d2FrZVVwRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wN2N1cnJl
bnRFdgotX19aTjdXZWJDb3JlN1J1bkxvb3A4ZGlzcGF0Y2hFUktOM1dURjhGdW5jdGlvbklGdnZF
RUUKLV9fWk43V2ViQ29yZTdSdW5Mb29wOVRpbWVyQmFzZTRzdG9wRXYKLV9fWk43V2ViQ29yZTdS
dW5Mb29wOVRpbWVyQmFzZTVzdGFydEVkYgotX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNl
QzJFUFMwXwotX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlRDJFdgogX19aTjdXZWJDb3Jl
N1RleHRSdW4xOWFsbG93c1JvdW5kaW5nSGFja3NFdgogX19aTjdXZWJDb3JlN1RleHRSdW4yMXNf
YWxsb3dzUm91bmRpbmdIYWNrc0UKIF9fWk43V2ViQ29yZTdUZXh0UnVuMjJzZXRBbGxvd3NSb3Vu
ZGluZ0hhY2tzRWIKQEAgLTE2MTgsNyArMTYwNSw2IEBAIF9fWk5LN1dlYkNvcmU3RWxlbWVudDZz
aGFkb3dFdgogX19aTks3V2ViQ29yZTdJbnRSZWN0MTBpbnRlcnNlY3RzRVJLUzBfCiBfX1pOSzdX
ZWJDb3JlN0ludFJlY3Q4Y29udGFpbnNFUktTMF8KIF9fWk5LN1dlYkNvcmU3SW50UmVjdGN2NkNH
UmVjdEV2Ci1fX1pOSzdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlOGlzQWN0aXZlRXYKIF9fWk5L
N1dlYkNvcmU4RG9jdW1lbnQxMWNvbXBsZXRlVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTks3V2Vi
Q29yZThEb2N1bWVudDEzYXhPYmplY3RDYWNoZUV2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTRn
ZXRFbGVtZW50QnlJZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDcxODk1YWY4YmIzYzRkMTAyNDVlMjBl
NTQwMTc3ZTM2NjNjNmFiMjcuLjdjMzY4OThhNjY1MTdiNTY2NTQ3ODFjNjE4Yzg3MzQzYjg3NDg4
NjcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0yOTA3OSwxNCArMjkwNzksNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxSdW5Mb29wLmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+
Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUnVuTG9vcC5oIgotCQkJ
CT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxS
dW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTI5NDk4
LDEwICsyOTQ5MCw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cUnVuTG9vcFdpbi5jcHAiCi0JCQkJCT4KLQkJCQk8
L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cU2Ny
b2xsYmFyVGhlbWVTYWZhcmkuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggNWI2MzJhM2MyNWFh
NzY2MWU4Yzc1NjU1MjFjMmQ0YWIyNjdjYTc5Mi4uODVlYzRjOTdjZWIwYjI3ODhjMmVmM2Q4ZDE3
MTc0MmQ2ZmZiMjM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCkBAIC00MTA5LDcgKzQxMDksNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cUGxhdGZvcm1FdmVudC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIiAvPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUnVuTG9vcC5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cU2NoZW1lUmVnaXN0
cnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cU2Nyb2xsYWJs
ZUFyZWEuY3BwIiAvPgpAQCAtNDE2NCw3ICs0MTYzLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXHdpblxQbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFBsYXRmb3JtU2NyZWVuV2luLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxQb3B1cE1lbnVXaW4u
Y3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFJ1bkxvb3BX
aW4uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFNjcm9s
bGJhclRoZW1lU2FmYXJpLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXHdpblxTY3JvbGxiYXJUaGVtZVdpbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwbGF0Zm9ybVx3aW5cU2VhcmNoUG9wdXBNZW51V2luLmNwcCIgLz4KQEAgLTExNTYxLDcg
KzExNTU5LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFBvcHVwTWVu
dVN0eWxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxQdXJnZWFi
bGVCdWZmZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFJlZmVy
cmVyUG9saWN5LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxSdW5M
b29wLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3Jt
XFNjaGVtZVJlZ2lzdHJ5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxTY3JvbGxhYmxlQXJlYS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ2NjRkNTIwMWIwZDYxZDZhNjY0NTFjMmI4ZDUx
NWM4NzFlMjI3OTUuLmQ3MzY2NTdiNDVjOTI3NGI1MTYzZGE4N2ZmM2U4MjU1MDI2NTUxZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTc0MSw3ICs3NDEsNiBAQAogCQkyOTdCRTNENzE2QzAzQzBFMDAzMzE2QkQgLyogUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjlFNEQ4REYxNkIwOTQwRjAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXIuaCAqLzsgfTsKIAkJMjk3QkUzRDgxNkMwM0NDRTAwMzMxNkJEIC8qIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOUU0RDhFMDE2QjA5NTk4MDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1hYy5tbSAqLzsgfTsKIAkJMjk3QkUzREExNkMwNDNEODAwMzMxNkJEIC8qIFBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjk3QkUzRDkxNkMwNDNEODAwMzMxNkJEIC8qIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIuY3BwICovOyB9OwotCQkyOUEzMDlBQzE1NjFDOTlCMDBCQkQ4RTUgLyog
UnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5QTMwOUFCMTU2MUM5OUIwMEJCRDhFNSAvKiBSdW5Mb29wQ0YuY3BwICovOyB9OwogCQky
OUE4MTIyQjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwRDBGQkI5QzFEMDA1
MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmggKi87IH07CiAJCTI5QTgxMjJDMEZCQjlDMUQw
MDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMEUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2li
aWxpdHlMaXN0LmggKi87IH07CiAJCTI5QTgxMjJFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3Np
YmlsaXR5QVJJQUdyaWRDZWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyOUE4MTIxMDBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbC5oICovOyB9OwpAQCAtNDYxNiw5ICs0NjE1LDYgQEAKIAkJQkMwNkVFMDQwQkZENzFB
QTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA2RUUwMjBCRkQ3MUFBMDA4NTZFOUQgLyogSlNI
VE1MVGFibGVFbGVtZW50LmNwcCAqLzsgfTsKIAkJQkMwNkVFMDUwQkZENzFBQTAwODU2RTlEIC8q
IEpTSFRNTFRhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMwNkVFMDMwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVu
dC5oICovOyB9OwogCQlCQzA3M0JBQTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252ZXJzaW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA3M0JB
OTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252ZXJzaW9uLmggKi87IH07Ci0JCUJDMEIzNTgz
MTRDNEY5NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM1ODIxNEM0Rjk1NDAwNTVFMjJBIC8qIFJ1bkxv
b3BNYWMubW0gKi87IH07Ci0JCUJDMEIzNTg3MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTg1
MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLzsgfTsKLQkJQkMwQjM1ODgxNEM0Rjk4
MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMEIzNTg2MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMwQjM2QTQwQ0Qz
QzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMwQjM2QTEwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3Bw
ICovOyB9OwogCQlCQzBCMzZBNTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM2QTIwQ0QzQzY3QzAw
QUM3RUI1IC8qIENvbnNvbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCQzEyNEVFNzBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEyNEVFNDBDMjY0
MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5jcHAgKi87IH07CkBAIC03MDQ4LDcgKzcwNDQsNiBAQAog
CQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBWE9iamVjdENhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjk4NTcwOTIxNUNDNTMyRDAwNjM1NUNEIC8qIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjk4NTcwOTMxNUNDNTMyRDAwNjM1NUNEIC8qIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTI5QTMwOUFCMTU2MUM5OUIwMEJC
RDhFNSAvKiBSdW5Mb29wQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUnVuTG9vcENGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMEQw
RkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMjlBODEyMEUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlMaXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlMaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjEwMEZCQjlDMUQwMDUxMDI5MyAv
KiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTExMzEyLDkgKzExMzA3LDYgQEAKIAkJQkMwNkYyNEMwNkQxOEE3RTAwNEE2RkEz
IC8qIFhTTFRQcm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gWFNMVFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkMwNkYyNEQwNkQxOEE3RTAwNEE2RkEz
IC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJD
MDczQkE5MEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0Q29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCQzBCMzU4MjE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bkxvb3BNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMEIzNTg1MTRDNEY5ODMwMDU1RTIyQSAvKiBS
dW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3Au
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzBCMzU4NjE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSdW5Mb29w
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMEIzNkExMENEM0M2N0MwMEFDN0VC
NSAvKiBDb25zb2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
b25zb2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwQjM2QTIwQ0QzQzY3
QzAwQUM3RUI1IC8qIENvbnNvbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENvbnNvbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwQjM2QTMwQ0QzQzY3
QzAwQUM3RUI1IC8qIENvbnNvbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb25zb2xl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNDE2LDcgKzEzNDA4LDYgQEAK
IAkJCQk5MzgxOTIwNDBGODdFMUVDMDBENTM1MkEgLyogQmluYXJ5UHJvcGVydHlMaXN0LmggKi8s
CiAJCQkJNTE2MDMwNkIwQ0M0MzYyMzAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1DRi5jcHAgKi8sCiAJ
CQkJMUE5ODk1NkEwQUE3OEY4MDAwNUVGNUVGIC8qIEtVUkxDRk5ldC5jcHAgKi8sCi0JCQkJMjlB
MzA5QUIxNTYxQzk5QjAwQkJEOEU1IC8qIFJ1bkxvb3BDRi5jcHAgKi8sCiAJCQkJNTEyREQ4RTIw
RDkxRTJCNDAwMEY4OUVFIC8qIFNoYXJlZEJ1ZmZlckNGLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gY2Y7CkBAIC0xNDYzNCw3ICsxNDYyNSw2IEBACiAJCQkJMjlFNEQ4RTAxNkIwOTU5ODAwQzg0
NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gKi8sCiAJCQkJMDA4MUZFRkUx
NkIwQTJCNjAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeE1hYy5tbSAqLywKIAkJCQlFNEQ2ODc3NjBF
RDdBRTNEMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCAqLywKLQkJCQlCQzBCMzU4
MjE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSAqLywKIAkJCQlCQ0FFMUZBNTEyOTM5
REI3MDA0Q0IwMjYgLyogU2Nyb2xsQW5pbWF0b3JNYWMuaCAqLywKIAkJCQlCQzUxMTU2RDEyQjE3
NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gKi8sCiAJCQkJQkM4Qjg1M0MwRTdD
N0YxMTAwQUI2OTg0IC8qIFNjcm9sbGJhclRoZW1lTWFjLmggKi8sCkBAIC0xOTM4Miw4ICsxOTM3
Miw2IEBACiAJCQkJN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAq
LywKIAkJCQlBNzJFQTNCQTE1ODVDRjU1MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQu
aCAqLywKIAkJCQk5ODMxQUU0OTE1NDIyNUEyMDBGRTI2NDQgLyogUmVmZXJyZXJQb2xpY3kuaCAq
LywKLQkJCQlCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8sCi0JCQkJ
QkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkyOTNFQUUyMDEz
NTZCMzJFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAqLywKIAkJCQky
OTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8s
CiAJCQkJNTE2MkM3RjIxMUY3N0VGQTAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmNwcCAqLywK
QEAgLTIzMjg2LDcgKzIzMjc0LDYgQEAKIAkJCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFBRjkgLyog
Um91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OUJBREEyMTYxRTdGM0YwMEMyRTY1
MiAvKiBSdWxlRmVhdHVyZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc5QkFEQTQxNjFFN0YzRjAw
QzJFNjUyIC8qIFJ1bGVTZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMEIzNTg4MTRDNEY5ODMw
MDU1RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQxRjBEN0UyQjgy
MDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMjEw
RDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTU2OUQyMzBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9vYmplY3QuaCBpbiBIZWFkZXJzICov
LApAQCAtMjYzODcsOSArMjYzNzQsNiBAQAogCQkJCUE3M0Y5NUZFMTJDOTdCRkUwMDMxQUFGOSAv
KiBSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzlCQURBMTE2MUU3RjNGMDBD
MkU2NTIgLyogUnVsZUZlYXR1cmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc5QkFEQTMxNjFF
N0YzRjAwQzJFNjUyIC8qIFJ1bGVTZXQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMwQjM1ODcx
NEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMjlBMzA5
QUMxNTYxQzk5QjAwQkJEOEU1IC8qIFJ1bkxvb3BDRi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlC
QzBCMzU4MzE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTFBNTY5RDFFMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBNTY5RDIwMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX21ldGhvZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQyMjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGlt
ZV9vYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IGFjMzJhZTQwMTg0N2RiZWFjZDE2OWI4Njc2
NjAzODA5Y2MwOGNhMWQuLmM4OTZkODczMDE3YjQwOWM4YWQyM2ZiN2RhODQyN2Y4ZTY4OWVlMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
CkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAjaWYgT1Mo
V0lORE9XUykKLSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgiCisjaW5jbHVkZSA8d3RmL1dpbmRv
d3NFeHRyYXMuaD4KICNlbmRpZgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCmluZGV4IDAzN2I1
YjE1ODgwNWIyZWM2N2M3NzZlYzkzYjlhNTExZjljOGQxNjIuLjhiZDMxMjFmMjBlNWYzM2E1Zjdj
NGZiMjQwMDZjOTFiZmExMTAxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtTW91c2VFdmVudC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiSW50UG9pbnQuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAjaWYgT1MoV0lORE9XUykKLSNpbmNsdWRlICJX
aW5kb3dzRXh0cmFzLmgiCisjaW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdo
ZWVsRXZlbnQuaAppbmRleCA1M2YyMWNkMGM5N2E2MDUyN2IxMjA0ZmJmOTk4ZWViMDFlNmE4YjZk
Li4yZDEwMjg4YjUwMGFjOWI1ZWJlNDM3MDNlMDFlMjg0OTlkYjYxMjVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaApAQCAtMjksNyArMjksNyBAQAog
I2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1FdmVudC5oIgogI2lmIE9T
KFdJTkRPV1MpCi0jaW5jbHVkZSAiV2luZG93c0V4dHJhcy5oIgorI2luY2x1ZGUgPHd0Zi9XaW5k
b3dzRXh0cmFzLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVuTG9vcC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkMWQyNTQzNmY1
YzU2YmFhMGViZjI0OTE1ZDgxZDNkMGQ5MDhiMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotI2lmICFQTEFURk9STShNQUMpCi12b2lkIFJ1bkxvb3A6OnNldFVzZUFwcGxpY2F0
aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3AoKQotewotfQotI2VuZGlmCi0KLXN0YXRpYyBSdW5Mb29w
KiBzX21haW5SdW5Mb29wOwotCi0vLyBIZWxwZXIgY2xhc3MgZm9yIFRocmVhZFNwZWNpZmljRGF0
YS4KLWNsYXNzIFJ1bkxvb3A6OkhvbGRlciB7Ci1wdWJsaWM6Ci0gICAgSG9sZGVyKCkKLSAgICAg
ICAgOiBtX3J1bkxvb3AoYWRvcHRSZWYobmV3IFJ1bkxvb3ApKQotICAgIHsKLSAgICB9Ci0KLSAg
ICBSdW5Mb29wKiBydW5Mb29wKCkgY29uc3QgeyByZXR1cm4gbV9ydW5Mb29wLmdldCgpOyB9Ci0K
LXByaXZhdGU6Ci0gICAgUmVmUHRyPFJ1bkxvb3A+IG1fcnVuTG9vcDsKLX07Ci0KLXZvaWQgUnVu
TG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCkKLXsKLSAgICBpZiAoc19tYWluUnVuTG9vcCkK
LSAgICAgICAgcmV0dXJuOwotICAgIHNfbWFpblJ1bkxvb3AgPSBSdW5Mb29wOjpjdXJyZW50KCk7
Ci19Ci0KLVJ1bkxvb3AqIFJ1bkxvb3A6OmN1cnJlbnQoKQotewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5Mb29wOjpIb2xkZXI+LCBydW5Mb29wSG9sZGVy
LCAoKSk7Ci0gICAgcmV0dXJuIHJ1bkxvb3BIb2xkZXItPnJ1bkxvb3AoKTsKLX0KLQotUnVuTG9v
cCogUnVuTG9vcDo6bWFpbigpCi17Ci0gICAgQVNTRVJUKHNfbWFpblJ1bkxvb3ApOwotICAgIHJl
dHVybiBzX21haW5SdW5Mb29wOwotfQotCi12b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkKLXsK
LSAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdG8gaGFuZGxlIHRoZSBmdW5jdGlvbnMgaW4gdGhlIHF1
ZXVlIG9uZSBhdCBhIHRpbWUgYmVjYXVzZSB3aGlsZSBpbnNpZGUgb25lIG9mIHRoZXNlCi0gICAg
Ly8gZnVuY3Rpb25zIHdlIG1pZ2h0IHJlLWVudGVyIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkgYW5k
IHdlIG5lZWQgdG8gYmUgYWJsZSB0byBwaWNrIHVwIHdoZXJlIHdlIGxlZnQgb2ZmLgotICAgIC8v
IFNlZSBodHRwOi8vd2Via2l0Lm9yZy9iLzg5NTkwIGZvciBtb3JlIGRpc2N1c3Npb24uCi0KLSAg
ICAvLyBPbmUgcG9zc2libGUgc2NlbmFyaW8gd2hlbiBoYW5kbGluZyB0aGUgZnVuY3Rpb24gcXVl
dWUgaXMgYXMgZm9sbG93czoKLSAgICAvLyAtIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkgaXMgaW52
b2tlZCB3aXRoIDEgZnVuY3Rpb24gb24gdGhlIHF1ZXVlCi0gICAgLy8gLSBIYW5kbGluZyB0aGF0
IGZ1bmN0aW9uIHJlc3VsdHMgaW4gMSBtb3JlIGZ1bmN0aW9uIGJlaW5nIGVucXVldWVkCi0gICAg
Ly8gLSBIYW5kbGluZyB0aGF0IG9uZSByZXN1bHRzIGluIHlldCBhbm90aGVyIGJlaW5nIGVucXVl
dWVkCi0gICAgLy8gLSBBbmQgc28gb24KLSAgICAvLwotICAgIC8vIEluIHRoaXMgc2l0dWF0aW9u
IG9uZSBpbnZvY2F0aW9uIG9mIHBlcmZvcm1Xb3JrKCkgbmV2ZXIgcmV0dXJucyBzbyBhbGwgb3Ro
ZXIgZXZlbnQgc291cmNlcyBhcmUgYmxvY2tlZC4KLSAgICAvLyBCeSBvbmx5IGhhbmRsaW5nIHVw
IHRvIHRoZSBudW1iZXIgb2YgZnVuY3Rpb25zIHRoYXQgd2VyZSBpbiB0aGUgcXVldWUgd2hlbiBw
ZXJmb3JtV29yaygpIGlzIGNhbGxlZAotICAgIC8vIHdlIGd1YXJhbnRlZSB0byBvY2Nhc2lvbmFs
bHkgcmV0dXJuIGZyb20gdGhlIHJ1biBsb29wIHNvIG90aGVyIGV2ZW50IHNvdXJjZXMgd2lsbCBi
ZSBhbGxvd2VkIHRvIHNwaW4uCi0KLSAgICBGdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uOwotICAg
IHNpemVfdCBmdW5jdGlvbnNUb0hhbmRsZSA9IDA7Ci0KLSAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKLSAgICAgICAgZnVuY3Rpb25zVG9IYW5k
bGUgPSBtX2Z1bmN0aW9uUXVldWUuc2l6ZSgpOwotCi0gICAgICAgIGlmIChtX2Z1bmN0aW9uUXVl
dWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZ1bmN0aW9uID0g
bV9mdW5jdGlvblF1ZXVlLnRha2VGaXJzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uKCk7Ci0K
LSAgICBmb3IgKHNpemVfdCBmdW5jdGlvbnNIYW5kbGVkID0gMTsgZnVuY3Rpb25zSGFuZGxlZCA8
IGZ1bmN0aW9uc1RvSGFuZGxlOyArK2Z1bmN0aW9uc0hhbmRsZWQpIHsKLSAgICAgICAgewotICAg
ICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotCi0gICAg
ICAgICAgICAvLyBFdmVuIGlmIHdlIHN0YXJ0IG9mZiB3aXRoIE4gZnVuY3Rpb25zIHRvIGhhbmRs
ZSBhbmQgd2UndmUgb25seSBoYW5kbGVkIGxlc3MgdGhhbiBOIGZ1bmN0aW9ucywgdGhlIHF1ZXVl
Ci0gICAgICAgICAgICAvLyBzdGlsbCBtaWdodCBiZSBlbXB0eSBiZWNhdXNlIHRob3NlIGZ1bmN0
aW9ucyBtaWdodCBoYXZlIGJlZW4gaGFuZGxlZCBpbiBhbiBpbm5lciBSdW5Mb29wOjpwZXJmb3Jt
V29yaygpLgotICAgICAgICAgICAgLy8gSW4gdGhhdCBjYXNlIHdlIHNob3VsZCBiYWlsIGhlcmUu
Ci0gICAgICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAg
ICAgICBicmVhazsKLQotICAgICAgICAgICAgZnVuY3Rpb24gPSBtX2Z1bmN0aW9uUXVldWUudGFr
ZUZpcnN0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9uKCk7Ci0gICAg
fQotfQotCi12b2lkIFJ1bkxvb3A6OmRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1
bmN0aW9uKQotewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVMb2NrKTsK
LSAgICBtX2Z1bmN0aW9uUXVldWUuYXBwZW5kKGZ1bmN0aW9uKTsKLQotICAgIHdha2VVcCgpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9SdW5Mb29wLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3ZjAxYmNhZDU3OTZkMTBhY2FjNWQ2ZThkOTQx
ZDM5OTVjM2UzOTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oCisrKyAvZGV2L251bGwKQEAgLTEs
MTg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEw
IE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFJ1bkxvb3BfaAotI2RlZmluZSBSdW5Mb29wX2gKLQotI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
RGlzcGF0Y2hlci5oPgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+Ci0jaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgotCi0jaWYgUExBVEZPUk0oR1RLKQotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dS
ZWZQdHIuaD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oRUZMKQotI2luY2x1ZGUgPEVjb3JlLmg+
Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSdW5Mb29wIDogcHVibGlj
IEZ1bmN0aW9uRGlzcGF0Y2hlciB7Ci1wdWJsaWM6Ci0gICAgLy8gTXVzdCBiZSBjYWxsZWQgZnJv
bSB0aGUgbWFpbiB0aHJlYWQgKGV4Y2VwdCBmb3IgdGhlIE1hYyBwbGF0Zm9ybSwgd2hlcmUgaXQK
LSAgICAvLyBjYW4gYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZCkuCi0gICAgc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7Ci0KLSAgICAvLyBNdXN0IGJlIGNhbGxlZCBiZWZvcmUg
ZW50ZXJpbmcgbWFpbiBydW4gbG9vcC4gSWYgY2FsbGVkLCBhcHBsaWNhdGlvbiBzdHlsZSBydW4g
bG9vcCB3aWxsIGJlIHVzZWQsIGhhbmRsaW5nIGV2ZW50cy4KLSAgICBzdGF0aWMgdm9pZCBzZXRV
c2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wKCk7Ci0KLSAgICBzdGF0aWMgUnVuTG9v
cCogY3VycmVudCgpOwotICAgIHN0YXRpYyBSdW5Mb29wKiBtYWluKCk7Ci0gICAgflJ1bkxvb3Ao
KTsKLQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jikg
T1ZFUlJJREU7Ci0KLSAgICBzdGF0aWMgdm9pZCBydW4oKTsKLSAgICB2b2lkIHN0b3AoKTsKLSAg
ICB2b2lkIHdha2VVcCgpOwotCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgcnVuRm9yRHVy
YXRpb24oZG91YmxlIGR1cmF0aW9uKTsKLSNlbmRpZgotICAgIAotICAgIGNsYXNzIFRpbWVyQmFz
ZSB7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBSdW5Mb29wOwotICAgIHB1YmxpYzoKLSAgICAgICAg
ZXhwbGljaXQgVGltZXJCYXNlKFJ1bkxvb3AqKTsKLSAgICAgICAgdmlydHVhbCB+VGltZXJCYXNl
KCk7Ci0KLSAgICAgICAgdm9pZCBzdGFydFJlcGVhdGluZyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwp
IHsgc3RhcnQocmVwZWF0SW50ZXJ2YWwsIHRydWUpOyB9Ci0gICAgICAgIHZvaWQgc3RhcnRPbmVT
aG90KGRvdWJsZSBpbnRlcnZhbCkgeyBzdGFydChpbnRlcnZhbCwgZmFsc2UpOyB9Ci0KLSAgICAg
ICAgdm9pZCBzdG9wKCk7Ci0gICAgICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKLQotICAgICAg
ICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB2b2lk
IHN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCk7Ci0KLSAgICAgICAg
UnVuTG9vcCogbV9ydW5Mb29wOwotCi0jaWYgUExBVEZPUk0oV0lOKQotICAgICAgICBzdGF0aWMg
dm9pZCB0aW1lckZpcmVkKFJ1bkxvb3AqLCB1aW50NjRfdCBJRCk7Ci0gICAgICAgIHVpbnQ2NF90
IG1fSUQ7Ci0gICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZzsKLSNlbGlmIFBMQVRGT1JNKE1BQykK
LSAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCop
OwotICAgICAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wVGltZXJSZWY+IG1fdGltZXI7Ci0jZWxpZiBQ
TEFURk9STShRVCkKLSAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwgaW50
IElEKTsKLSAgICAgICAgaW50IG1fSUQ7Ci0gICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZzsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKLSAgICAgICAgc3RhdGljIGdib29sZWFuIHRpbWVyRmlyZWRDYWxs
YmFjayhSdW5Mb29wOjpUaW1lckJhc2UqKTsKLSAgICAgICAgZ2Jvb2xlYW4gaXNSZXBlYXRpbmco
KSBjb25zdCB7IHJldHVybiBtX2lzUmVwZWF0aW5nOyB9Ci0gICAgICAgIHZvaWQgY2xlYXJUaW1l
clNvdXJjZSgpOwotICAgICAgICBHUmVmUHRyPEdTb3VyY2U+IG1fdGltZXJTb3VyY2U7Ci0gICAg
ICAgIGdib29sZWFuIG1faXNSZXBlYXRpbmc7Ci0jZWxpZiBQTEFURk9STShFRkwpCi0gICAgICAg
IHN0YXRpYyBib29sIHRpbWVyRmlyZWQodm9pZCogZGF0YSk7Ci0gICAgICAgIEVjb3JlX1RpbWVy
KiBtX3RpbWVyOwotICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7Ci0jZW5kaWYKLSAgICB9Owot
Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFRpbWVyRmlyZWRDbGFzcz4KLSAgICBjbGFzcyBUaW1l
ciA6IHB1YmxpYyBUaW1lckJhc2UgewotICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiB2b2lk
IChUaW1lckZpcmVkQ2xhc3M6OipUaW1lckZpcmVkRnVuY3Rpb24pKCk7Ci0KLSAgICAgICAgVGlt
ZXIoUnVuTG9vcCogcnVuTG9vcCwgVGltZXJGaXJlZENsYXNzKiBvLCBUaW1lckZpcmVkRnVuY3Rp
b24gZikKLSAgICAgICAgICAgIDogVGltZXJCYXNlKHJ1bkxvb3ApCi0gICAgICAgICAgICAsIG1f
b2JqZWN0KG8pCi0gICAgICAgICAgICAsIG1fZnVuY3Rpb24oZikKLSAgICAgICAgewotICAgICAg
ICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSB7IChtX29i
amVjdC0+Km1fZnVuY3Rpb24pKCk7IH0KLQotICAgICAgICBUaW1lckZpcmVkQ2xhc3MqIG1fb2Jq
ZWN0OwotICAgICAgICBUaW1lckZpcmVkRnVuY3Rpb24gbV9mdW5jdGlvbjsKLSAgICB9OwotCi0g
ICAgY2xhc3MgSG9sZGVyOwotCi1wcml2YXRlOgotICAgIFJ1bkxvb3AoKTsKLQotICAgIHZvaWQg
cGVyZm9ybVdvcmsoKTsKLQotICAgIE11dGV4IG1fZnVuY3Rpb25RdWV1ZUxvY2s7Ci0gICAgRGVx
dWU8RnVuY3Rpb248dm9pZCgpPiA+IG1fZnVuY3Rpb25RdWV1ZTsKLQotI2lmIFBMQVRGT1JNKFdJ
TikKLSAgICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsK
LSAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wV25kUHJvYyhIV05ELCBVSU5ULCBX
UEFSQU0sIExQQVJBTSk7Ci0gICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNz
YWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKLSAgICBIV05EIG1fcnVuTG9vcE1l
c3NhZ2VXaW5kb3c7Ci0KLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFRpbWVyQmFzZSo+
IFRpbWVyTWFwOwotICAgIFRpbWVyTWFwIG1fYWN0aXZlVGltZXJzOwotI2VsaWYgUExBVEZPUk0o
TUFDKQotICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1Xb3JrKHZvaWQqKTsKLSAgICBSZXRhaW5QdHI8
Q0ZSdW5Mb29wUmVmPiBtX3J1bkxvb3A7Ci0gICAgUmV0YWluUHRyPENGUnVuTG9vcFNvdXJjZVJl
Zj4gbV9ydW5Mb29wU291cmNlOwotICAgIGludCBtX25lc3RpbmdMZXZlbDsKLSNlbGlmIFBMQVRG
T1JNKFFUKQotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFRpbWVyQmFzZSo+IFRpbWVyTWFwOwot
ICAgIFRpbWVyTWFwIG1fYWN0aXZlVGltZXJzOwotICAgIGNsYXNzIFRpbWVyT2JqZWN0OwotICAg
IFRpbWVyT2JqZWN0KiBtX3RpbWVyT2JqZWN0OwotI2VsaWYgUExBVEZPUk0oR1RLKQotcHVibGlj
OgotICAgIHN0YXRpYyBnYm9vbGVhbiBxdWV1ZVdvcmsoUnVuTG9vcCopOwotICAgIEdNYWluTG9v
cCogaW5uZXJtb3N0TG9vcCgpOwotICAgIHZvaWQgcHVzaE5lc3RlZE1haW5Mb29wKEdNYWluTG9v
cCopOwotICAgIHZvaWQgcG9wTmVzdGVkTWFpbkxvb3AoKTsKLXByaXZhdGU6Ci0gICAgR1JlZlB0
cjxHTWFpbkNvbnRleHQ+IG1fcnVuTG9vcENvbnRleHQ7Ci0gICAgVmVjdG9yPEdSZWZQdHI8R01h
aW5Mb29wPiA+IG1fcnVuTG9vcE1haW5Mb29wczsKLSNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICBi
b29sIG1faW5pdEVmbDsKLQotICAgIE11dGV4IG1fcGlwZUxvY2s7Ci0gICAgT3duUHRyPEVjb3Jl
X1BpcGU+IG1fcGlwZTsKLQotICAgIE11dGV4IG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWRMb2NrOwot
ICAgIGJvb2wgbV93YWtlVXBFdmVudFJlcXVlc3RlZDsKLQotICAgIHN0YXRpYyB2b2lkIHdha2VV
cEV2ZW50KHZvaWQqIGRhdGEsIHZvaWQqLCB1bnNpZ25lZCBpbnQpOwotI2VuZGlmCi19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4MjA3ODhkNmFiYjA5MzgyZTllMThj
Y2VlZGU2NzUzMTExMTc1NjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tC
ZXJyeS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1
bkxvb3AuaCIKLQotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotUnVuTG9vcDo6UnVuTG9vcCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0K
LQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
Zi9SdW5Mb29wQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9vcENGLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGZmYjU1NjM2NmI0OWM4YjQ3ODExODE1
NWNiYzM0ZDU4OTI1NDUwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9SdW5Mb29wQ0YuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24v
Q29yZUZvdW5kYXRpb24uaD4KLSNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgotI2luY2x1
ZGUgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lk
IFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKHZvaWQqIGNvbnRleHQpCi17Ci0gICAgQXV0b2RyYWluZWRQ
b29sIHBvb2w7Ci0gICAgc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5wZXJmb3JtV29y
aygpOwotfQotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLSAgICA6IG1fcnVuTG9vcChDRlJ1bkxvb3BH
ZXRDdXJyZW50KCkpCi0gICAgLCBtX25lc3RpbmdMZXZlbCgwKQotewotICAgIENGUnVuTG9vcFNv
dXJjZUNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVy
Zm9ybVdvcmsgfTsKLSAgICBtX3J1bkxvb3BTb3VyY2UgPSBhZG9wdENGKENGUnVuTG9vcFNvdXJj
ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAmY29udGV4dCkpOwotICAgIENGUnVuTG9v
cEFkZFNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwga0NGUnVu
TG9vcENvbW1vbk1vZGVzKTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIENGUnVu
TG9vcFNvdXJjZUludmFsaWRhdGUobV9ydW5Mb29wU291cmNlLmdldCgpKTsKLX0KLQotdm9pZCBS
dW5Mb29wOjpydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCi17Ci0gICAgQ0ZSdW5Mb29w
UnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwgZHVyYXRpb24sIHRydWUpOwotfQotCi12
b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgQ0ZSdW5Mb29wU291cmNlU2lnbmFsKG1fcnVu
TG9vcFNvdXJjZS5nZXQoKSk7Ci0gICAgQ0ZSdW5Mb29wV2FrZVVwKG1fcnVuTG9vcC5nZXQoKSk7
Ci19Ci0KLSNpZiAhUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpCi12b2lkIFJ1bkxvb3A6
OnJ1bigpCi17Ci0gICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCsrOwotICAgIAotICAgIHsK
LSAgICAgICAgQXV0b2RyYWluZWRQb29sIHBvb2w7Ci0gICAgICAgIENGUnVuTG9vcFJ1bigpOwot
ICAgIH0KLSAgICAKLSAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsLS07Ci19Ci0KLXZvaWQg
UnVuTG9vcDo6c3RvcCgpCi17Ci0gICAgQVNTRVJUKG1fcnVuTG9vcCA9PSBDRlJ1bkxvb3BHZXRD
dXJyZW50KCkpOwotICAgIENGUnVuTG9vcFN0b3AobV9ydW5Mb29wLmdldCgpKTsKLX0KLSNlbmRp
ZgotCi0vLyBSdW5Mb29wOjpUaW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJG
aXJlZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCogY29udGV4dCkKLXsKLSAgICBUaW1lckJhc2Uq
IHRpbWVyID0gc3RhdGljX2Nhc3Q8VGltZXJCYXNlKj4oY29udGV4dCk7Ci0KLSAgICBBdXRvZHJh
aW5lZFBvb2wgcG9vbDsKLSAgICB0aW1lci0+ZmlyZWQoKTsKLX0KLQotUnVuTG9vcDo6VGltZXJC
YXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29w
KQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3Ao
KTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUlu
dGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBpZiAobV90aW1lcikKLSAgICAgICAgc3RvcCgp
OwotICAgIAotICAgIENGUnVuTG9vcFRpbWVyQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAw
LCAwLCAwIH07Ci0gICAgQ0ZUaW1lSW50ZXJ2YWwgcmVwZWF0SW50ZXJ2YWwgPSByZXBlYXQgPyBu
ZXh0RmlyZUludGVydmFsIDogMDsKLSAgICBtX3RpbWVyID0gYWRvcHRDRihDRlJ1bkxvb3BUaW1l
ckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSAr
IG5leHRGaXJlSW50ZXJ2YWwsIHJlcGVhdEludGVydmFsLCAwLCAwLCB0aW1lckZpcmVkLCAmY29u
dGV4dCkpOwotICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wLmdldCgp
LCBtX3RpbWVyLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotfQotCi12b2lkIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgaWYgKCFtX3RpbWVyKQotICAgICAgICByZXR1
cm47Ci0gICAgCi0gICAgQ0ZSdW5Mb29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIuZ2V0KCkpOwot
ICAgIG1fdGltZXIgPSBudWxscHRyOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNB
Y3RpdmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNW
YWxpZChtX3RpbWVyLmdldCgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1J1bkxvb3BFZmwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1J1bkxvb3BFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhMzgxYjM2N2QzMzgwN2NmZmY5MzczYmE3MzA5ZmVlMmU3NjVhMTU2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9SdW5Mb29wRWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1z
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDxFY29yZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi1zdGF0aWMgY29uc3QgaW50IGVj
b3JlUGlwZU1lc3NhZ2VTaXplID0gMTsKLXN0YXRpYyBjb25zdCBjaGFyIHdha3VwRWNvcmVQaXBl
TWVzc2FnZVtdID0gIlciOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJ1bkxvb3A6OlJ1bkxv
b3AoKQotICAgIDogbV9pbml0RWZsKGZhbHNlKQotICAgICwgbV93YWtlVXBFdmVudFJlcXVlc3Rl
ZChmYWxzZSkKLXsKLSAgICBtX3BpcGUgPSBhZG9wdFB0cihlY29yZV9waXBlX2FkZCh3YWtlVXBF
dmVudCwgdGhpcykpOwotICAgIG1faW5pdEVmbCA9IHRydWU7Ci19Ci0KLVJ1bkxvb3A6On5SdW5M
b29wKCkKLXsKLX0KLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIGVjb3JlX21haW5fbG9v
cF9iZWdpbigpOwotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIGVjb3JlX21haW5f
bG9vcF9xdWl0KCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwRXZlbnQodm9pZCogZGF0YSwg
dm9pZCosIHVuc2lnbmVkIGludCkKLXsKLSAgICBSdW5Mb29wKiBsb29wID0gc3RhdGljX2Nhc3Q8
UnVuTG9vcCo+KGRhdGEpOwotCi0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobG9v
cC0+bV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2spOwotICAgICAgICBsb29wLT5tX3dha2VVcEV2
ZW50UmVxdWVzdGVkID0gZmFsc2U7Ci0gICAgfQotCi0gICAgbG9vcC0+cGVyZm9ybVdvcmsoKTsK
LX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewotICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWRMb2NrKTsKLSAgICAgICAgaWYgKG1fd2Fr
ZVVwRXZlbnRSZXF1ZXN0ZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fd2FrZVVw
RXZlbnRSZXF1ZXN0ZWQgPSB0cnVlOwotICAgIH0KLQotICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fcGlwZUxvY2spOwotICAgICAgICBlY29yZV9waXBlX3dyaXRlKG1fcGlwZS5n
ZXQoKSwgd2FrdXBFY29yZVBpcGVNZXNzYWdlLCBlY29yZVBpcGVNZXNzYWdlU2l6ZSk7Ci0gICAg
fQotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKikKLSAgICA6IG1f
dGltZXIoMCkKLSAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCi17Ci19Ci0KLVJ1bkxvb3A6OlRp
bWVyQmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi1ib29sIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6dGltZXJGaXJlZCh2b2lkKiBkYXRhKQotewotICAgIFJ1bkxvb3A6OlRpbWVy
QmFzZSogdGltZXIgPSBzdGF0aWNfY2FzdDxSdW5Mb29wOjpUaW1lckJhc2UqPihkYXRhKTsKLQot
ICAgIHRpbWVyLT5maXJlZCgpOwotCi0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgewot
ICAgICAgICB0aW1lci0+bV90aW1lciA9IDA7Ci0gICAgICAgIHJldHVybiBFQ09SRV9DQUxMQkFD
S19DQU5DRUw7Ci0gICAgfQotCi0gICAgcmV0dXJuIEVDT1JFX0NBTExCQUNLX1JFTkVXOwotfQot
Ci12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWws
IGJvb2wgcmVwZWF0KQotewotICAgIGlmIChpc0FjdGl2ZSgpKQotICAgICAgICBzdG9wKCk7Ci0K
LSAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OwotICAgIEFTU0VSVCghbV90aW1lcik7Ci0gICAg
bV90aW1lciA9IGVjb3JlX3RpbWVyX2FkZChuZXh0RmlyZUludGVydmFsLCByZWludGVycHJldF9j
YXN0PEVjb3JlX1Rhc2tfQ2I+KHRpbWVyRmlyZWQpLCB0aGlzKTsKLX0KLQotdm9pZCBSdW5Mb29w
OjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIGlmIChtX3RpbWVyKSB7Ci0gICAgICAgIGVjb3Jl
X3RpbWVyX2RlbChtX3RpbWVyKTsKLSAgICAgICAgbV90aW1lciA9IDA7Ci0gICAgfQotfQotCi1i
b29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAotewotICAgIHJldHVybiAo
bV90aW1lcikgPyB0cnVlIDogZmFsc2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVGdWxsc2NyZWVuV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5oCmluZGV4IDI2MjJm
YmFkNGZkZTUzNzk4YmZlNzQyMjNiOTViMWExZDAyNGM2MDUuLjJlNGFlNjk0YjMxMTZjZmQ2NTkx
YTM4YjdlOGM4OGJiZDQ2ZmQxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZUZ1
bGxzY3JlZW5XaW5kb3cuaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBNZWRpYVBsYXllclBy
aXZhdGVGdWxsc2NyZWVuV2luZG93X2gKIAogI2lmIE9TKFdJTkRPV1MpCi0jaW5jbHVkZSAiV2lu
ZG93c0V4dHJhcy5oIgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+CiAjZW5kaWYKICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5M
b29wR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkwZjM1Y2E2NmQyMjBi
NDBkNGY2M2Y3ZDlmNmM5ODQyNzU3NzcxZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBQb3J0aW9ucyBDb3B5cmln
aHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0K
LSNpbmNsdWRlIDxnZGsvZ2RrLmg+Ci0jaW5jbHVkZSA8Z2xpYi5oPgotCi0jaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SdW5Mb29wOjpSdW5Mb29w
KCkKLXsKLSAgICAvLyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgZG9lc24ndCBhZGQgYW4gZXh0
cmEgcmVmZXJlbmNlLgotICAgIG1fcnVuTG9vcENvbnRleHQgPSBpc01haW5UaHJlYWQoKSA/IGdf
bWFpbl9jb250ZXh0X2RlZmF1bHQoKSA6IGFkb3B0R1JlZihnX21haW5fY29udGV4dF9uZXcoKSk7
Ci0gICAgQVNTRVJUKG1fcnVuTG9vcENvbnRleHQpOwotICAgIEdSZWZQdHI8R01haW5Mb29wPiBp
bm5lcm1vc3RMb29wID0gYWRvcHRHUmVmKGdfbWFpbl9sb29wX25ldyhtX3J1bkxvb3BDb250ZXh0
LmdldCgpLCBGQUxTRSkpOwotICAgIEFTU0VSVChpbm5lcm1vc3RMb29wKTsKLSAgICBtX3J1bkxv
b3BNYWluTG9vcHMuYXBwZW5kKGlubmVybW9zdExvb3ApOwotfQotCi1SdW5Mb29wOjp+UnVuTG9v
cCgpCi17Ci0gICAgZm9yIChpbnQgaSA9IG1fcnVuTG9vcE1haW5Mb29wcy5zaXplKCkgLSAxOyBp
ID49IDA7IC0taSkgewotICAgICAgICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5M
b29wTWFpbkxvb3BzW2ldLmdldCgpKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBn
X21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSk7Ci0gICAgfQotfQot
Ci12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgUnVuTG9vcCogbWFpblJ1bkxvb3AgPSBSdW5M
b29wOjpjdXJyZW50KCk7Ci0gICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wID0gbWFpblJ1bkxv
b3AtPmlubmVybW9zdExvb3AoKTsKLSAgICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcoaW5u
ZXJtb3N0TG9vcCkpIHsKLSAgICAgICAgZ19tYWluX2xvb3BfcnVuKGlubmVybW9zdExvb3ApOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gQ3JlYXRlIGFuZCBydW4gYSBuZXN0ZWQg
bG9vcCBpZiB0aGUgaW5uZXJtb3N0IG9uZSB3YXMgYWxyZWFkeSBydW5uaW5nLgotICAgIEdNYWlu
TG9vcCogbmVzdGVkTWFpbkxvb3AgPSBnX21haW5fbG9vcF9uZXcoMCwgRkFMU0UpOwotICAgIG1h
aW5SdW5Mb29wLT5wdXNoTmVzdGVkTWFpbkxvb3AobmVzdGVkTWFpbkxvb3ApOwotICAgIGdfbWFp
bl9sb29wX3J1bihuZXN0ZWRNYWluTG9vcCk7Ci0gICAgbWFpblJ1bkxvb3AtPnBvcE5lc3RlZE1h
aW5Mb29wKCk7Ci19Ci0KLUdNYWluTG9vcCogUnVuTG9vcDo6aW5uZXJtb3N0TG9vcCgpCi17Ci0g
ICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAg
ICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwotICAgIHJldHVybiBtX3J1
bkxvb3BNYWluTG9vcHNbMF0uZ2V0KCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cHVzaE5lc3RlZE1h
aW5Mb29wKEdNYWluTG9vcCogbmVzdGVkTG9vcCkKLXsKLSAgICAvLyBUaGUgaW5uZXJtb3N0IG1h
aW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgotICAgIEFTU0VSVCghbV9ydW5Mb29wTWFp
bkxvb3BzLmlzRW1wdHkoKSk7Ci0gICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChhZG9wdEdS
ZWYobmVzdGVkTG9vcCkpOwotfQotCi12b2lkIFJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKCkK
LXsKLSAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJl
LgotICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7Ci0gICAgbV9ydW5M
b29wTWFpbkxvb3BzLnJlbW92ZUxhc3QoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsK
LSAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgot
ICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7Ci0gICAgR1JlZlB0cjxH
TWFpbkxvb3A+IGxhc3RNYWluTG9vcCA9IG1fcnVuTG9vcE1haW5Mb29wcy5sYXN0KCk7Ci0gICAg
aWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobGFzdE1haW5Mb29wLmdldCgpKSkKLSAgICAgICAg
Z19tYWluX2xvb3BfcXVpdChsYXN0TWFpbkxvb3AuZ2V0KCkpOwotfQotCi1nYm9vbGVhbiBSdW5M
b29wOjpxdWV1ZVdvcmsoUnVuTG9vcCogcnVuTG9vcCkKLXsKLSAgICBydW5Mb29wLT5wZXJmb3Jt
V29yaygpOwotICAgIHJldHVybiBGQUxTRTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQot
ewotICAgIEdSZWZQdHI8R1NvdXJjZT4gc291cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2Vf
bmV3KCkpOwotICAgIGdfc291cmNlX3NldF9wcmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJ
VFlfREVGQVVMVCk7Ci0gICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVp
bnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDAp
OwotICAgIGdfc291cmNlX2F0dGFjaChzb3VyY2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQuZ2V0
KCkpOwotCi0gICAgZ19tYWluX2NvbnRleHRfd2FrZXVwKG1fcnVuTG9vcENvbnRleHQuZ2V0KCkp
OwotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQot
ICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX3RpbWVyU291cmNlKDApCi17Ci19Ci0K
LVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12
b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6Y2xlYXJUaW1lclNvdXJjZSgpCi17Ci0gICAgbV90aW1l
clNvdXJjZSA9IDA7Ci19Ci0KLWdib29sZWFuIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJl
ZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIpCi17Ci0gICAgR1NvdXJjZSogY3Vy
cmVudFRpbWVyU291cmNlID0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCk7Ci0gICAgYm9vbCBp
c1JlcGVhdGluZyA9IHRpbWVyLT5pc1JlcGVhdGluZygpOwotICAgIC8vIFRoaXMgY2FuIGNoYW5n
ZSB0aGUgdGltZXJTb3VyY2UgYnkgc3RhcnRpbmcgYSBuZXcgdGltZXIgd2l0aGluIHRoZSBjYWxs
YmFjay4KLSAgICB0aW1lci0+ZmlyZWQoKTsKLSAgICBpZiAoIWlzUmVwZWF0aW5nICYmIGN1cnJl
bnRUaW1lclNvdXJjZSA9PSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKSkKLSAgICAgICAgdGlt
ZXItPmNsZWFyVGltZXJTb3VyY2UoKTsKLSAgICByZXR1cm4gaXNSZXBlYXRpbmc7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgZmlyZUludGVydmFsLCBib29sIHJl
cGVhdCkKLXsKLSAgICBpZiAobV90aW1lclNvdXJjZSkKLSAgICAgICAgc3RvcCgpOwotCi0gICAg
bV90aW1lclNvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRfc291cmNlX25ldyhzdGF0aWNfY2Fz
dDxndWludD4oZmlyZUludGVydmFsICogMTAwMCkpKTsKLSAgICBtX2lzUmVwZWF0aW5nID0gcmVw
ZWF0OwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3RpbWVyU291cmNlLmdldCgpLCByZWlu
dGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVk
Q2FsbGJhY2spLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9hdHRhY2gobV90aW1lclNvdXJjZS5n
ZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKLX0KLQotdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIGlmICghbV90aW1lclNvdXJjZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgZ19zb3VyY2VfZGVzdHJveShtX3RpbWVyU291cmNlLmdldCgpKTsK
LSAgICBjbGVhclRpbWVyU291cmNlKCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjpp
c0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGltZXJTb3VyY2U7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9SdW5Mb29wTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMu
bW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3NTBkYTA4OTA2ZDNkNGZkZjg3N2Vl
ZjFhNzI5MDU3ZmI2YTA5ZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0KKysrIC9k
ZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgi
Ci0jaW1wb3J0ICJSdW5Mb29wLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIGJv
b2wgc191c2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wOwotCi12b2lkIFJ1bkxvb3A6
OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3AoKQotewotICAgIHNfdXNlQXBw
bGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCA9IHRydWU7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
cnVuKCkKLXsKLSAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsKys7Ci0gICAgaWYgKGN1cnJl
bnQoKSA9PSBtYWluKCkgJiYgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCA9PSAxICYmIHNfdXNl
QXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCkgewotICAgICAgICAvLyBVc2UgLVtOU0Fw
cGxpY2F0aW9uIHJ1bl0gZm9yIHRoZSBtYWluIHJ1biBsb29wLgotICAgICAgICBbTlNBcHAgcnVu
XTsKLSAgICB9IGVsc2UgewotICAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgICAg
IENGUnVuTG9vcFJ1bigpOwotICAgICAgICB9Ci0gICAgfQotICAgIGN1cnJlbnQoKS0+bV9uZXN0
aW5nTGV2ZWwtLTsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAgICBBU1NFUlQobV9y
dW5Mb29wID09IENGUnVuTG9vcEdldEN1cnJlbnQoKSk7Ci0KLSAgICAvLyBOZXN0aW5nIGxldmVs
IGNhbiBiZSAwIGlmIHRoZSBydW4gbG9vcCBpcyBzdGFydGVkIGV4dGVybmFsbHkgKHN1Y2ggYXMg
dGhlIGNhc2UgZm9yIFhQQyBzZXJ2aWNlcykuCi0gICAgaWYgKG1fcnVuTG9vcCA9PSBtYWluKCkt
Pm1fcnVuTG9vcCAmJiBtX25lc3RpbmdMZXZlbCA8PSAxICYmIHNfdXNlQXBwbGljYXRpb25SdW5M
b29wT25NYWluUnVuTG9vcCkgewotICAgICAgICBBU1NFUlQoW05TQXBwIGlzUnVubmluZ10pOwot
ICAgICAgICBbTlNBcHAgc3RvcDpuaWxdOwotICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0aW9uRGVmaW5lZAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAw
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczow
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOjAu
MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6
MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDpu
aWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnR5cGU6
IDAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTE6
MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhMjow
XTsKLSAgICAgICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OnRydWVdOwotICAgIH0g
ZWxzZQotICAgICAgICBDRlJ1bkxvb3BTdG9wKG1fcnVuTG9vcC5nZXQoKSk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L1J1bkxvb3BRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDFiZDVjMTIzYjBmMDNjZTlhMGNmOTBl
MTcyNjkxZjUwNmQ5YTFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwxNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDxRQWJzdHJhY3RF
dmVudERpc3BhdGNoZXI+Ci0jaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KLSNpbmNsdWRlIDxR
TWV0YU1ldGhvZD4KLSNpbmNsdWRlIDxRTWV0YU9iamVjdD4KLSNpbmNsdWRlIDxRT2JqZWN0Pgot
I2luY2x1ZGUgPFFUaW1lckV2ZW50PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJ1
bkxvb3A6OlRpbWVyT2JqZWN0IDogcHVibGljIFFPYmplY3QgewotICAgIFFfT0JKRUNUCi1wdWJs
aWM6Ci0gICAgVGltZXJPYmplY3QoUnVuTG9vcCogcnVuTG9vcCkgOiBtX3J1bkxvb3AocnVuTG9v
cCkKLSAgICB7Ci0gICAgICAgIGludCBtZXRob2RJbmRleCA9IG1ldGFPYmplY3QoKS0+aW5kZXhP
Zk1ldGhvZCgicGVyZm9ybVdvcmsoKSIpOwotICAgICAgICBtX21ldGhvZCA9IG1ldGFPYmplY3Qo
KS0+bWV0aG9kKG1ldGhvZEluZGV4KTsKLSAgICB9Ci0KLSAgICBRX1NMT1Qgdm9pZCBwZXJmb3Jt
V29yaygpIHsgbV9ydW5Mb29wLT5wZXJmb3JtV29yaygpOyB9Ci0gICAgaW5saW5lIHZvaWQgd2Fr
ZVVwKCkgeyBtX21ldGhvZC5pbnZva2UodGhpcywgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOyB9Ci0K
LXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCogZXZl
bnQpCi0gICAgewotICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQobV9ydW5M
b29wLCBldmVudC0+dGltZXJJZCgpKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgUnVuTG9vcCog
bV9ydW5Mb29wOwotICAgIFFNZXRhTWV0aG9kIG1fbWV0aG9kOwotfTsKLQotc3RhdGljIFFFdmVu
dExvb3AqIGN1cnJlbnRFdmVudExvb3A7Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAgICBz
dGF0aWMgYm9vbCBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gZmFsc2U7Ci0gICAgaWYgKCFtYWlu
RXZlbnRMb29wSXNSdW5uaW5nKSB7Ci0gICAgICAgIG1haW5FdmVudExvb3BJc1J1bm5pbmcgPSB0
cnVlOwotICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpleGVjKCk7Ci0gICAgICAgIG1haW5FdmVu
dExvb3BJc1J1bm5pbmcgPSBmYWxzZTsKLSAgICB9IGVsc2UgewotICAgICAgICBRRXZlbnRMb29w
IGV2ZW50TG9vcDsKLQotICAgICAgICBRRXZlbnRMb29wKiBwcmV2aW91c0V2ZW50TG9vcCA9IGN1
cnJlbnRFdmVudExvb3A7Ci0gICAgICAgIGN1cnJlbnRFdmVudExvb3AgPSAmZXZlbnRMb29wOwot
Ci0gICAgICAgIGV2ZW50TG9vcC5leGVjKCk7Ci0KLSAgICAgICAgY3VycmVudEV2ZW50TG9vcCA9
IHByZXZpb3VzRXZlbnRMb29wOwotICAgIH0KLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsK
LSAgICBpZiAoY3VycmVudEV2ZW50TG9vcCkKLSAgICAgICAgY3VycmVudEV2ZW50TG9vcC0+ZXhp
dCgpOwotICAgIGVsc2UKLSAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhpdCgpOwotfQotCi1S
dW5Mb29wOjpSdW5Mb29wKCkKLSAgICA6IG1fdGltZXJPYmplY3QobmV3IFRpbWVyT2JqZWN0KHRo
aXMpKQotewotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgZGVsZXRlIG1fdGltZXJP
YmplY3Q7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBtX3RpbWVyT2JqZWN0
LT53YWtlVXAoKTsKLX0KLQotLy8gUnVuTG9vcDo6VGltZXIKLQotdm9pZCBSdW5Mb29wOjpUaW1l
ckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgaW50IElEKQotewotICAgIFRpbWVy
TWFwOjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQoSUQpOwotICAg
IEFTU0VSVChpdCAhPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSk7Ci0gICAgVGltZXJC
YXNlKiB0aW1lciA9IGl0LT52YWx1ZTsKLQotICAgIGlmICghdGltZXItPm1faXNSZXBlYXRpbmcp
IHsKLSAgICAgICAgLy8gU3RvcCB0aGUgdGltZXIgKGNhbGxpbmcgc3RvcCB3b3VsZCBuZWVkIGFu
b3RoZXIgaGFzaCB0YWJsZSBsb29rdXApLgotICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5yZW1vdmUoaXQpOwotICAgICAgICBydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5raWxsVGltZXIo
dGltZXItPm1fSUQpOwotICAgICAgICB0aW1lci0+bV9JRCA9IDA7Ci0gICAgfQotCi0gICAgdGlt
ZXItPmZpcmVkKCk7Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3Aq
IHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKLSAgICAsIG1fSUQoMCkKLSAgICAs
IG1faXNSZXBlYXRpbmcoZmFsc2UpCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVy
QmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3Rh
cnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAgIHN0b3AoKTsK
LSAgICBpbnQgbWlsbGlzID0gc3RhdGljX2Nhc3Q8aW50PihuZXh0RmlyZUludGVydmFsICogMTAw
MCk7Ci0gICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKLSAgICBtX0lEID0gbV9ydW5Mb29wLT5t
X3RpbWVyT2JqZWN0LT5zdGFydFRpbWVyKG1pbGxpcyk7Ci0gICAgQVNTRVJUKG1fSUQpOwotICAg
IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQsIHRoaXMpOwotfQotCi12b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgaWYgKCFtX0lEKQotICAgICAgICByZXR1
cm47Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5maW5kKG1fSUQpOwotICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVu
ZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJl
bW92ZShpdCk7Ci0gICAgbV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5raWxsVGltZXIobV9JRCk7
Ci0gICAgbV9JRCA9IDA7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fSUQ7Ci19Ci0KLSNpbmNsdWRlICJSdW5Mb29wUXQubW9j
IgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vTUlNRVR5cGVSZWdpc3RyeVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vTUlNRVR5cGVSZWdpc3RyeVdpbi5jcHAKaW5kZXggZWQ3YjQyNTBmNGRjYzFmZWE1
YTRkODBmNDlhMTI2NjVjNTJkYzVjOS4uODUzMjkzNGIyNjEzODc5MjMyNzhmODc5NWY0NDZmNjYw
OGY0MWVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL01JTUVUeXBl
UmVnaXN0cnlXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9NSU1FVHlw
ZVJlZ2lzdHJ5V2luLmNwcApAQCAtMjYsMTAgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogCi0jaW5jbHVkZSAiV2luZG93c0V4dHJh
cy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0
cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IGFjNzA2YzRjNTEwMDQyOTUxNTNlMTg1YjQx
NDFkMmJjNjEyZmYwYTIuLjZiZDVjMThhNTlhZDEyZTAzNzU2MTUyMmEyYTdmNGZlYTAxODliZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKQEAg
LTQ0LDggKzQ0LDggQEAKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlRleHRF
bmNvZGluZy5oIgogI2luY2x1ZGUgIldlYkNvcmVJbnN0YW5jZUhhbmRsZS5oIgotI2luY2x1ZGUg
IldpbmRvd3NFeHRyYXMuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKKyNpbmNsdWRlIDx3dGYvV2lu
ZG93c0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVw
TWVudVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNw
cAppbmRleCAyODBjNDg1YTk3NzRjYzBjMzM1MjI1OTMyZjVjN2E2NTk5ZjYxZWRhLi44N2M0Yzlh
OTNhZDA1NjlkYTI5MDIzOGEwOTM2N2U4NGRiMmUzYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcApAQCAtNDUsNyArNDUsNyBAQAogI2luY2x1ZGUg
IlNpbXBsZUZvbnREYXRhLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgogI2luY2x1ZGUgIldlYkNv
cmVJbnN0YW5jZUhhbmRsZS5oIgotI2luY2x1ZGUgIldpbmRvd3NFeHRyYXMuaCIKKyNpbmNsdWRl
IDx3dGYvV2luZG93c0V4dHJhcy5oPgogCiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUg
PHdpbmRvd3N4Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUnVu
TG9vcFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3ZDY4NDVlOWZmZGMzOTI4YzA2N2M3YzE1
ODgzYWFiOTBkMjlhNjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTc5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSAiV2luZG93c0V4dHJhcy5oIgotI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotCi11c2luZyBuYW1lc3BhY2Ugc3RkOwotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBjb25zdCBVSU5UIFBlcmZvcm1Xb3JrTWVzc2FnZSA9
IFdNX1VTRVIgKyAxOwotc3RhdGljIGNvbnN0IExQV1NUUiBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dD
bGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdlV2luZG93IjsKLQotTFJFU1VMVCBDQUxMQkFDSyBS
dW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQ
YXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsKLSAgICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9IHN0YXRp
Y19jYXN0PFJ1bkxvb3AqPihnZXRXaW5kb3dQb2ludGVyKGhXbmQsIDApKSkKLSAgICAgICAgcmV0
dXJuIHJ1bkxvb3AtPnduZFByb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwotCi0g
ICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JFQVRFKSB7Ci0gICAgICAgIExQQ1JFQVRFU1RSVUNUIGNy
ZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TFBDUkVBVEVTVFJVQ1Q+KGxQYXJhbSk7Ci0K
LSAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBSdW5Mb29wIHdpdGggdGhlIHdpbmRvdy4KLSAgICAg
ICAgc2V0V2luZG93UG9pbnRlcihoV25kLCAwLCBjcmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFyYW1z
KTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIDo6RGVmV2luZG93UHJv
YyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci19Ci0KLUxSRVNVTFQgUnVuTG9vcDo6
d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQ
YXJhbSkKLXsKLSAgICBzd2l0Y2ggKG1lc3NhZ2UpIHsKLSAgICBjYXNlIFBlcmZvcm1Xb3JrTWVz
c2FnZToKLSAgICAgICAgcGVyZm9ybVdvcmsoKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2Fz
ZSBXTV9USU1FUjoKLSAgICAgICAgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHRoaXMs
IHdQYXJhbSk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVybiA6OkRlZldp
bmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwotfQotCi12b2lkIFJ1bkxv
b3A6OnJ1bigpCi17Ci0gICAgTVNHIG1lc3NhZ2U7Ci0gICAgd2hpbGUgKEJPT0wgcmVzdWx0ID0g
OjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAwLCAwLCAwKSkgewotICAgICAgICBpZiAocmVzdWx0ID09
IC0xKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbWVz
c2FnZSk7Ci0gICAgICAgIDo6RGlzcGF0Y2hNZXNzYWdlKCZtZXNzYWdlKTsKLSAgICB9Ci19Ci0K
LXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0gICAgOjpQb3N0UXVpdE1lc3NhZ2UoMCk7Ci19Ci0K
LWJvb2wgUnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCkKLXsKLSAg
ICAvLyBGSVhNRTogVGhpcyByZWFsbHkgb25seSBuZWVkcyB0byBiZSBjYWxsZWQgb25jZS4KLQot
ICAgIFdORENMQVNTIHdpbmRvd0NsYXNzID0geyAwIH07Ci0gICAgd2luZG93Q2xhc3MubHBmbldu
ZFByb2MgICAgID0gUnVuTG9vcDo6UnVuTG9vcFduZFByb2M7Ci0gICAgd2luZG93Q2xhc3MuY2JX
bmRFeHRyYSAgICAgID0gc2l6ZW9mKFJ1bkxvb3AqKTsKLSAgICB3aW5kb3dDbGFzcy5scHN6Q2xh
c3NOYW1lICAgPSBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWU7Ci0KLSAgICByZXR1cm4g
ISE6OlJlZ2lzdGVyQ2xhc3MoJndpbmRvd0NsYXNzKTsKLX0KLQotUnVuTG9vcDo6UnVuTG9vcCgp
Ci17Ci0gICAgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7Ci0KLSAgICBtX3J1
bkxvb3BNZXNzYWdlV2luZG93ID0gOjpDcmVhdGVXaW5kb3coa1J1bkxvb3BNZXNzYWdlV2luZG93
Q2xhc3NOYW1lLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDV19VU0VERUZBVUxULCAwLCBDV19VU0VERUZBVUxULCAwLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIV05EX01FU1NBR0UsIDAsIDAsIHRoaXMpOwot
ICAgIEFTU0VSVCg6OklzV2luZG93KG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cpKTsKLX0KLQotUnVu
TG9vcDo6flJ1bkxvb3AoKQotewotICAgIC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRl
bSBxdWV1ZSBoZXJlLgotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgLy8gRklY
TUU6IE5vIG5lZWQgdG8gd2FrZSB1cCB0aGUgcnVuIGxvb3AgaWYgd2UndmUgYWxyZWFkeSBjYWxs
ZWQgZGlzcGF0Y2gKLSAgICAvLyBiZWZvcmUgdGhlIHJ1biBsb29wIGhhcyBoYWQgdGhlIHRpbWUg
dG8gcmVzcG9uZC4KLSAgICA6OlBvc3RNZXNzYWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIFBl
cmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRlcnByZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAwKTsKLX0K
LQotLy8gUnVuTG9vcDo6VGltZXIKLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmly
ZWQoUnVuTG9vcCogcnVuTG9vcCwgdWludDY0X3QgSUQpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJh
dG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChJRCk7Ci0gICAgaWYgKGl0ID09
IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKSB7Ci0gICAgICAgIC8vIFRoZSB0aW1lciBt
dXN0IGhhdmUgYmVlbiBzdG9wcGVkIGFmdGVyIHRoZSBXTV9USU1FUiBtZXNzYWdlIHdhcyBwb3N0
ZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUuCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBU
aW1lckJhc2UqIHRpbWVyID0gaXQtPnZhbHVlOwotCi0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVh
dGluZykgewotICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwotICAg
ICAgICA6OktpbGxUaW1lcihydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBJRCk7Ci0g
ICAgfQotCi0gICAgdGltZXItPmZpcmVkKCk7Ci19Ci0KLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0
ZVRpbWVySUQoKQotewotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVUaW1lcklEID0gMTsKLSAg
ICByZXR1cm4gdW5pcXVlVGltZXJJRCsrOwotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVy
QmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBt
X0lEKGdlbmVyYXRlVGltZXJJRCgpKQotICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsKLX0K
LQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0K
LXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwg
Ym9vbCByZXBlYXQpCi17Ci0gICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKLSAgICBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKLSAgICA6OlNldFRpbWVyKG1fcnVu
TG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAqIDEw
MDAsIDApOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgVGlt
ZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQp
OwotICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0g
ICAgOjpLaWxsVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lEKTsK
LX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlucyhtX0lEKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1NoYXJlZFRpbWVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TaGFy
ZWRUaW1lcldpbi5jcHAKaW5kZXggNzcwNjliYzkzYTMyNjRmY2ZmOWJjODEwY2RkYTEyYzdhNzk5
MDI5NC4uMzk3ZDZkYzM0YjdiY2QzZmY5OWRjM2RjZjIzNmE1MTAzY2Y2YzU5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NoYXJlZFRpbWVyV2luLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2hhcmVkVGltZXJXaW4uY3BwCkBAIC0zMiw4ICsz
Miw4IEBACiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJh
cy5oPgogCi0jaW5jbHVkZSAiV2luZG93c0V4dHJhcy5oIgogI2luY2x1ZGUgPG1tc3lzdGVtLmg+
CiAKICNpZiBQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vV2luZG93TWVzc2FnZUxpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vV2luZG93TWVzc2FnZUxpc3RlbmVyLmgKaW5kZXggMWQ0MTBmMjJjMjU2NzRlMzAxMTNhM2M3
MGFlNmFlN2I4ZmRmMWM4NS4uYTMyYWY4ZTY0MjBkOWFlNmEyNjY1NzM4ZjhhNzA5YjUyNzAzMWJj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dpbmRvd01lc3NhZ2VM
aXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaW5kb3dNZXNzYWdl
TGlzdGVuZXIuaApAQCAtMzAsNyArMzAsNyBAQAogI2RlZmluZSBXaW5kb3dNZXNzYWdlTGlzdGVu
ZXJfaAogCiAjaWYgT1MoV0lORE9XUykKLSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgiCisjaW5j
bHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2luZG93c0V4dHJhcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dpbmRvd3NFeHRyYXMuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMjgzZDlkOTQzMmY5YWQ2MjE5ZGNhZDI1MzNhOWYwODE1NzBk
NTA1My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2luZG93c0V4dHJhcy5oCisrKyAvZGV2L251bGwKQEAg
LTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBQYXRyaWNrIEdhbnN0ZXJl
ciA8cGFyb2dhQHBhcm9nYS5jb20+Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXaW5kb3dzRXh0cmFzX2gKLSNkZWZpbmUgV2luZG93
c0V4dHJhc19oCi0KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSA8b2JqYmFzZS5oPgot
I2luY2x1ZGUgPHNobHdhcGkuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0jaWZuZGVmIEhX
TkRfTUVTU0FHRQotY29uc3QgSFdORCBIV05EX01FU1NBR0UgPSAwOwotI2VuZGlmCi0KLWlubGlu
ZSBIUkVTVUxUIGdldFJlZ2lzdHJ5VmFsdWUoSEtFWSBoa2V5LCBMUENXU1RSIHBzelN1YktleSwg
TFBDV1NUUiBwc3pWYWx1ZSwgTFBEV09SRCBwZHdUeXBlLCBMUFZPSUQgcHZEYXRhLCBMUERXT1JE
IHBjYkRhdGEpCi17Ci0jaWYgT1MoV0lOQ0UpCi0gICAgSEtFWSBrZXk7Ci0gICAgaWYgKDo6UmVn
T3BlbktleUV4Vyhoa2V5LCBwc3pTdWJLZXksIDAsIDAsICZrZXkpICE9IEVSUk9SX1NVQ0NFU1Mp
Ci0gICAgICAgIHJldHVybiBFUlJPUl9JTlZBTElEX05BTUU7Ci0gICAgSFJFU1VMVCByZXN1bHQg
PSA6OlJlZ1F1ZXJ5VmFsdWVFeFcoa2V5LCBwc3pWYWx1ZSwgMCwgcGR3VHlwZSwgc3RhdGljX2Nh
c3Q8TFBCWVRFPihwdkRhdGEpLCBwY2JEYXRhKTsKLSAgICA6OlJlZ0Nsb3NlS2V5KGtleSk7Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKLSNlbHNlCi0gICAgcmV0dXJuIDo6U0hHZXRWYWx1ZVcoaGtleSwg
cHN6U3ViS2V5LCBwc3pWYWx1ZSwgcGR3VHlwZSwgcHZEYXRhLCBwY2JEYXRhKTsKLSNlbmRpZgot
fQotCi1pbmxpbmUgdm9pZCogZ2V0V2luZG93UG9pbnRlcihIV05EIGhXbmQsIGludCBpbmRleCkK
LXsKLSNpZiBPUyhXSU5DRSkKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oOjpH
ZXRXaW5kb3dMb25nKGhXbmQsIGluZGV4KSk7Ci0jZWxzZQotICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PHZvaWQqPig6OkdldFdpbmRvd0xvbmdQdHIoaFduZCwgaW5kZXgpKTsKLSNlbmRpZgot
fQotCi1pbmxpbmUgdm9pZCogc2V0V2luZG93UG9pbnRlcihIV05EIGhXbmQsIGludCBpbmRleCwg
dm9pZCogdmFsdWUpCi17Ci0jaWYgT1MoV0lOQ0UpCi0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KDo6U2V0V2luZG93TG9uZyhoV25kLCBpbmRleCwgcmVpbnRlcnByZXRfY2FzdDxM
T05HPih2YWx1ZSkpKTsKLSNlbHNlCi0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+
KDo6U2V0V2luZG93TG9uZ1B0cihoV25kLCBpbmRleCwgcmVpbnRlcnByZXRfY2FzdDxMT05HX1BU
Uj4odmFsdWUpKSk7Ci0jZW5kaWYKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gV2luZG93c0V4dHJhc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L3dpbi9QbHVnaW5EYXRhYmFzZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9Q
bHVnaW5EYXRhYmFzZVdpbi5jcHAKaW5kZXggZWIzMGZmODg1Mjk3MmIxMjYzYjcwZmI3NDIyMmVk
NjViMTEwOGIyNC4uZWY5MmMxYWQ3MmE1ZmY5NzJmNDUzYjcxYzNkZDkwZDZiYzljZWU3NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcApA
QCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgog
I2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKLSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgiCisj
aW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KIAogI2lmIE9TKFdJTkNFKQogLy8gV0lOQ0Ug
ZG9lc24ndCBzdXBwb3J0IFJlZ2lzdHJ5IEtleSBBY2Nlc3MgUmlnaHRzLiBUaGUgcGFyYW1ldGVy
IHNob3VsZCBhbHdheXMgYmUgMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9u
L0NhcmJvbldpbmRvd0FkYXB0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9u
V2luZG93QWRhcHRlci5tbQppbmRleCAzOGYxMzQ3YTM0YmE0YzIwNDE0NjFmZWM0ZmU0NGE4ZWRm
MGEyNjIyLi5lMTEyODc1YzFkN2EyMjlkMDdhMDRhZmMwY2M5MDZiZWFhYTY3MWU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtNzMs
OSArNzMsOSBAQAogI2ltcG9ydCA8YXNzZXJ0Lmg+CiAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29y
ZU9iakNFeHRyYXMuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8cnVu
dGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgor
I2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2lt
cG9ydCAiV2ViTlNPYmplY3RFeHRyYXMuaCIKQEAgLTI3Miw3ICsyNzIsNyBAQCBzdGF0aWMgT1NT
dGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZl
bnRIYW5kbGVyQ2FsbAogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdU
Rjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChz
ZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNr
Rm9yd2FyZExpc3QubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJk
TGlzdC5tbQppbmRleCA2ODNiOWE4NWQwY2MzZTY1OTllMGU2ZDdjMTM2ZWE5MDdjMmU5ZDU3Li5l
MWU4MGE3NzI2OWFhMjcwM2NkYzQ5ODEwMDMxOTIwNjVlNTMxM2VlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQpAQCAtNDIsNyArNDIsNiBA
QAogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Ro
cmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CkBAIC01
MCw2ICs0OSw3IEBACiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5M
b29wLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwpAQCAtMTA1LDcgKzEwNSw3IEBAIFdlYkJhY2tGb3J3YXJkTGlzdCAqa2l0KEJhY2tG
b3J3YXJkTGlzdEltcGwqIGJhY2tGb3J3YXJkTGlzdCkKIHsKICAgICBKU0M6OmluaXRpYWxpemVU
aHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRo
cmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwor
ICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmlu
YWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5
L1dlYkhpc3RvcnlJdGVtLm1tCmluZGV4IDI4Mjc4ZjhiNzVhMDllMTA1N2NmN2U0MWY5MTQ5MTFl
NTdjZTE0NzkuLjYwZTk5ZmEyNjBkNzUzNTgyZjIxYmVhYmJhNzcyNDAwY2FmNjQ4OWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQpAQCAtNDcsMTIgKzQ3
LDEyIEBACiAjaW1wb3J0IDxXZWJDb3JlL0ltYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tVUkwu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUv
V2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTk4LDcgKzk4LDcgQEAgdm9p
ZCBXS05vdGlmeUhpc3RvcnlJdGVtQ2hhbmdlZChIaXN0b3J5SXRlbSopCiB7CiAgICAgSlNDOjpp
bml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJv
Y2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1
bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJD
b3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9X
ZWJDYWNoZS5tbQppbmRleCA1MjYwZTdmYTAyYzQwNzgwN2Q0ZGFkY2YwOTM2N2QxMjE4OWNmNjA0
Li5lYmRjODEwMmU0YzdhMTQ0ODBjMTEyY2UyNTI1ZDNjNzk0YmVkODI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViQ2FjaGUubW0KQEAgLTMzLDkgKzMzLDkgQEAKICNpbXBvcnQgPFdlYkNvcmUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5QcmVm
bGlnaHRSZXN1bHRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgotI2lt
cG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJl
YWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9v
cC5oPgogCiBAaW1wbGVtZW50YXRpb24gV2ViQ2FjaGUKIApAQCAtNDMsNyArNDMsNyBAQAogewog
ICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5U
aHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CiAgICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UoKTsgICAKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0KaW5kZXggMTdmMjIwMTkwNzBj
NDAxMTY1NTdiZTBjYTYzZjdjNGQ4ZDJkZWZmNi4uOTA5NGEzOGIyNmQ5YTgyZjY1NzY1NjE4MTVm
ODE0NDEyZjk3ZTBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJFbGVt
ZW50RGljdGlvbmFyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkVsZW1lbnRE
aWN0aW9uYXJ5Lm1tCkBAIC0zOSwxMiArMzksMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUu
aD4KICNpbXBvcnQgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9J
bWFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NQ29yZS5oPgogI2ltcG9ydCA8
V2ViS2l0L0RPTUV4dGVuc2lvbnMuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29w
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRp
YyB2b2lkIGNhY2hlVmFsdWVGb3JLZXkoY29uc3Qgdm9pZCAqa2V5LCBjb25zdCB2b2lkICp2YWx1
ZSwgdm9pZCAqc2VsZikKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBX
VEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNv
cmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRp
YWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQo
c2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRh
dGFiYXNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KaW5k
ZXggYmJmNmVjM2QwYTIyYjYyMjMyYzY4ZmFjOTUxYjUwMDRkNzhmMzVjOC4uZDRkODk4NzRmODc4
MDFkZTNhNGZlOTAyNzNjMjhjZTQ5ZjdiOTdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9X
ZWJJY29uRGF0YWJhc2UubW0KQEAgLTQwLDExICs0MCwxMSBAQAogI2ltcG9ydCA8V2ViQ29yZS9J
Y29uRGF0YWJhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvSW50U2l6ZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgogI2lt
cG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRo
cmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTk0LDcgKzk0LDcgQEAgc3RhdGljIFdlYkljb25EYXRhYmFzZUNsaWVudCogZGVm
YXVsdENsaWVudCgpCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RG
Ojppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKIH0KIAogKyAoV2ViSWNvbkRhdGFiYXNlICopc2hhcmVkSWNvbkRh
dGFiYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJI
b3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggMWMyMjYzMTlmMzNlOWMy
ZWM2ODg2MTYwZmQ0YTZkNzIwZDhiODdkMS4uNTU0YWE3NWJjOGZmYWM5NGQyNDNmMzQyM2RhODg5
ZWNlMzA4NDIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
V2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtNDYsMTEgKzQ2
LDExIEBACiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckVtYmVkZGVkT2JqZWN0Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNF
eHRyYXMuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9y
dW50aW1lX3Jvb3QuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgog
I2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+Cisj
aW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC02Niw3ICs2Niw3IEBAIGV4dGVybiAiQyIgewogewogICAg
IEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJl
YWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6
ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAg
ICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICBXS1NlbmRVc2Vy
Q2hhbmdlTm90aWZpY2F0aW9ucygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IGIyM2JkOWI1ODdmMjJm
YzM2MmU2YzRjMjU4YjlkYjI2MTRkMjAyZDguLmYzNWU3YTM5YWZmZGQ0ZmVhYTA2YTc2ODk0OTkx
N2IyNzJlN2Y1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFz
ZU5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dl
YkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTU1LDEzICs1NSwxMyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJXaWRnZXQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVu
TG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTVByaXZhdGUuaD4K
ICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL0Fz
c2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVu
TG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVmaW5lIExvZ2luV2lu
ZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24gICAgQCJXZWJMb2dpbldpbmRvd0RpZFN3
aXRjaEZyb21Vc2VyTm90aWZpY2F0aW9uIgpAQCAtNzcsNyArNzcsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6
OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6
OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2Vs
Zik7CiAgICAgV0tTZW5kVXNlckNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCmluZGV4IDE5ODRh
MGI1MTVjZDZhMDQyMDkyN2M2YTZiZmIzMmY3OWQ2YzUzNzEuLmM0MjEwZjUzMzM5ZmMwYWU1MDk1
NjE5MDg2MTFiODAyNWNmZDc0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbQpAQCAtMjksNyArMjksNiBAQAogI2ltcG9ydCA8V2Vi
S2l0L1dlYkJhc2VQbHVnaW5QYWNrYWdlLmg+CiAKICNpbXBvcnQgPGFsZ29yaXRobT4KLSNpbXBv
cnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJh
cy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdE5TU3RyaW5nRXh0cmFzLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV2ViTlNPYmplY3RFeHRyYXMuaD4KQEAgLTM4LDYgKzM3LDcgQEAKICNpbXBvcnQgPHJ1
bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2lt
cG9ydCA8d3RmL1ZlY3Rvci5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC02
OSw3ICs2OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogewogICAgIEpTQzo6aW5pdGlh
bGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NN
YWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9i
akNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCBmZDdjNGJiZWMxYzZj
OWE0OGMzYzliN2I1ODgzNmRkNjkzOTM5ZjMyLi41NTY0NDNhZTI5ZjE3N2YzNWQxMTVkMjk5NmNl
ZDY2MjE1OTJjMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5l
dHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5l
dHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtNjcsNyArNjcsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+IAogI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1Byb3h5U2VydmVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3Au
aD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPiAKQEAg
LTgyLDYgKzgxLDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW1wb3J0IDx3dGYv
QXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNkZWZpbmUgTG9naW5X
aW5kb3dEaWRTd2l0Y2hGcm9tVXNlck5vdGlmaWNhdGlvbiAgICBAIldlYkxvZ2luV2luZG93RGlk
U3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24iCkBAIC0xOTUsNyArMTk1LDcgQEAgdHlwZWRlZiBz
dHJ1Y3QgewogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5p
dGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVu
TG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1h
aW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsK
ICAgICBXS1NlbmRVc2VyQ2hhbmdlTm90aWZpY2F0aW9ucygpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDIwNDVk
OGVhZjczMmZkMmMwNjRmZGIxYzY1M2I0MDQ5NTkxY2QwMTcuLmQyOGY3OTFmNDM0MTk1MDAwZWVl
OWZiMzg5MDAzYjQ3YzlkYjc4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTYxLDcgKzYxLDYgQEAKICNpbXBvcnQg
PFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1NwZWxsQ2hlY2tlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3BlcnR5U2V0Lmg+
CkBAIC03MSw2ICs3MCw3IEBACiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcu
aD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5o
PgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTExMiw3ICsxMTIsNyBAQCBzdGF0aWMg
Y29uc3QgaW50IEludmFsaWRDb3JyZWN0aW9uUGFuZWxUYWcgPSAwOwogewogICAgIEpTQzo6aW5p
dGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nl
c3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5M
b29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29y
ZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRl
eCA4OGRlNjBlMWYwZGZiNGFiN2YyMjFiOWExNjUxYTJmOTE2MTlmODkwLi4xNGM4Yzc2MTI4YmVk
MjNhMmEzYWZjNGYyMGM0OGQzODRjMTE2MjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMTE1LDcg
KzExNSw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Njcmlw
dENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CkBAIC0xMjcsNiArMTI2LDcgQEAKICNpbXBv
cnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5o
PgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoUExVR0lOX1BS
T1hZX0ZPUl9WSURFTykKQEAgLTIwMDIsNyArMjAwMiw3IEBAIFBhc3NSZWZQdHI8RnJhbWVOZXR3
b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFs
aXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29w
Ojppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1
bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KaW5kZXggYWVlYmQ5NzJjYzU4
N2U1MWUzNjQ4MWQ2MTJlMmNkNWIyNjEzYzM5NS4uY2Q5ZjZiNmEzYzUzYjY5OWE2MjlkNjAyZDcx
NzU5MDY0M2RiOGNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJB
cmNoaXZlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQpA
QCAtMzYsMTAgKzM2LDEwIEBACiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29y
ZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYv
UnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjksNyArNjksNyBA
QCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJTdWJmcmFtZUFyY2hpdmVzS2V5ID0gQCJXZWJT
dWJmcmFtZUFyY2hpdmVzIjsKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAg
ICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJl
YWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RGF0YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5t
bQppbmRleCBlYzA1ZGQyZTYzODhkYTRjZGJjNzY2MmQyNzM4MDJlZDY5OWM4Mjc2Li4zMGJjNDZh
N2QxZjYyNmU4OTVlZDQ2MTNkMTZjYTZlYzdiYmVhZDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJEYXRhU291cmNlLm1tCkBAIC01NCw3ICs1NCw2IEBACiAjaW1wb3J0IDxXZWJD
b3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW1wb3J0IDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVVUkxS
ZXNwb25zZS5oPgpAQCAtNjUsNiArNjQsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4K
ICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBv
cnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMzQs
NyArMTM0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJs
ZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICBpZiAoc2VsZiA9PSBbV2Vi
RGF0YVNvdXJjZSBjbGFzc10pIHsKICAgICAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7
CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7
Ci0gICAgICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAg
ICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICAgICAgV2ViQ29yZU9i
akNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCBiNjU2NmM5ZmQxOGU3NWMwYmJiNTgwZDI1NTY2
Y2FhNGZjZjhmMjU2Li4xY2VkYjE1NjQ3MzVlNDU5ZTc1OGYxMTkxNDcwZmYyNzBkYThlYTk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTExMCw3ICsxMTAs
NiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jl
bmRlcldpZGdldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgotI2ltcG9y
dCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU2ltcGxlRm9udERhdGEuaD4KQEAgLTEzMCw2ICsxMjksNyBAQAogI2ltcG9ydCA8cnVu
dGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgog
I2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5o
PgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2ltcG9ydCA8UXVhcnR6Q29y
ZS9RdWFydHpDb3JlLmg+CkBAIC01NjMsNyArNTYzLDcgQEAgc3RhdGljIE5TQ2VsbFN0YXRlVmFs
dWUga2l0KFRyaVN0YXRlIHN0YXRlKQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygp
OwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0g
ICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFp
blRocmVhZChzZWxmKTsKICAgICAKICAgICBpZiAoIW9sZFNldEN1cnNvckZvck1vdXNlTG9jYXRp
b25JTVApIHsKQEAgLTIyNjAsNyArMjI2MCw3IEBAIHN0YXRpYyBib29sIG1vdXNlRXZlbnRJc1Bh
cnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm5UeXBlczpbW3NlbGYgY2xhc3NdIF9pbnNlcnRhYmxlUGFzdGVib2FyZFR5cGVz
XV07CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXpl
TWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpp
bml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAxZjMzMzBm
ZTUyODFlNTdkODhlZTIzNmI4ODViODk3NWJiMmNlZTU5Li5hMGVhZTcxNzAzNjg0ZWEyOTQ1MTQx
NTgyMmIzMTg4YzU1YzBkOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXMubW0KQEAgLTQzLDEwICs0MywxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNpbXBvcnQgPFdlYkNv
cmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAj
aW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2lt
cG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTMw
OSw3ICszMDksNyBAQCBwdWJsaWM6CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7
CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAg
ICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29w
Ojppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAogICAgIE5TRGljdGlvbmFyeSAqZGljdCA9IFtO
U0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgQCJUaW1l
cyIsICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRTdGFuZGFyZEZvbnRQcmVmZXJlbmNlS2V5
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KaW5kZXggMzk2NGY2Zjc5
Y2MyM2VlMTJlYTBiMmUwNzkzOTA2OTNmZDhkMTkwYi4uOGM2NDAzMDc4NTNjMzI5NGNiOGE1NDYz
ZWU0NTQ3MmZiNzJhOGU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJSZXNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNl
Lm1tCkBAIC0zOCwxMyArMzgsMTMgQEAKICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lX
ZWJBcmNoaXZlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRFbmNv
ZGluZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVVJMUmVzcG9u
c2UuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMg
TlNTdHJpbmcgKiBjb25zdCBXZWJSZXNvdXJjZVJlc3BvbnNlS2V5ID0gICAgICAgICAgQCJXZWJS
ZXNvdXJjZVJlc3BvbnNlIgogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAg
IFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2Vi
Q29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5p
dGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVh
ZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJU
ZXh0SXRlcmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRv
ci5tbQppbmRleCA5YjFiZDhmZWI1NTNmZDhkMTEwYWRlMmNmNjM2NWRhNDI0MTA1NzZjLi4yYTBi
ODI1ZjFmOTcyMjhkYmNiN2E2OWZkY2QxNjcxOGEwMTRjNGFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbQpAQCAtMjksMTEgKzI5LDExIEBACiAjaW1w
b3J0ICJET01SYW5nZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJUeXBlc0ludGVybmFsLmgiCiAj
aW1wb3J0IDx3dGYvVmVjdG9yLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpD
RXh0cmFzLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBv
cnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01MCw3ICs1MCw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGlu
ZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7
Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVu
TG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9u
TWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmlu
ZGV4IDZkNjNjOGMzZDYxMzY3OGIxMjFhNzYxZGFlMjQzOWVjZDFkM2E1MDcuLjcyMDQ0Nzk2ZjMw
NjgyNGI3MzYzNzc0MTcxZWYyMzJkNjYyOWRiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KQEAgLTE2Miw3ICsxNjIsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhh
bmRsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3Au
aD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2No
ZW1lUmVnaXN0cnkuaD4KQEAgLTE5Niw2ICsxOTUsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNpbXBvcnQgPHd0
Zi9SZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCkBAIC0zMTM2LDcgKzMx
MzYsNyBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0
dGVybnMpCiAgICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UoKTsKICAgICBKU0M6OmluaXRp
YWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNz
TWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9v
cCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogCiAgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9y
OkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxsVGVybWluYXRlKSBuYW1lOk5TQXBwbGljYXRpb25X
aWxsVGVybWluYXRlTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcF07CiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihfY2FjaGVNb2RlbENoYW5nZWROb3RpZmljYXRpb246KSBuYW1lOldlYlByZWZlcmVuY2Vz
Q2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmluZGV4IDRkMTA4ZjBhYzZkNTEyMzBi
YmU5ZjE1NGVkZjEzOTAyODY2MDJkYmUuLjBlMDY5YTQ4ZjhiNDE3YTU3ZTVhZjY3MTdiNmI4ODUx
YjVlNDNiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQpAQCAt
MzQsMTAgKzM0LDEwIEBACiAjaW1wb3J0IDxXZWJDb3JlL0FsdGVybmF0aXZlVGV4dFVJQ29udHJv
bGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1w
b3J0IDxvYmpjL29iamMtYXV0by5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3Au
aD4KIAogQk9PTCBhcHBsaWNhdGlvbklzVGVybWluYXRpbmcgPSBOTzsKIGludCBwbHVnaW5EYXRh
YmFzZUNsaWVudENvdW50ID0gMDsKQEAgLTY3LDcgKzY3LDcgQEAgTGF5ZXJGbHVzaENvbnRyb2xs
ZXI6OkxheWVyRmx1c2hDb250cm9sbGVyKFdlYlZpZXcqIHdlYlZpZXcpCiB7CiAgICAgSlNDOjpp
bml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJv
Y2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1
bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJD
b3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggYmUwOTI3ZGJlMGE5MjA0NWU5ODA1OTQ1OTM1NDdlMDJkMGYwY2I4
ZC4uODEzMzIxNWY1YzhiOTg4YWNkZjBhMmEzOGExOWI4YzBlNDAyNzhmOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0
aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA5MTdkZGM1YzE1N2Q0NmZhOTkwYzZhOTBiYzQ2OGZj
NzJkYjM1YmVkLi45NWJmYWNhZTg0OTNlM2Q3N2E3MTA4MzQ3ZTk4NDRjMmI4ZTczYjNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBA
IC00NCw3ICs0NCw3IEBACiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvSW5pdGlhbGl6ZUxvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgVVNFKFNFQ1VS
SVRZX0ZSQU1FV09SSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCmluZGV4IDAwZjQwNjhjZjgwMTI4M2EyYjg2ZjA1ZGZiYjVhNTQ3OTViMzFhZGEu
LmRmNWViZjcwMDcwN2I1MzdhZjZkZDExM2ZmMTllMzFkZWJlYzk1OTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzUsNyArMzUsNyBA
QAogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV1RGIHsKICAg
ICBjbGFzcyBSdW5Mb29wOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDQxNDAyYjU0YWNmZDBjNjU0Zjg1
NGNhYjA2MmMzOWExNDdiY2IyODkuLjhmOGE3ZjUxNGY0NzEwNGZlNDVkZjJiNGUxMWVlNGRmNGVl
Mzg4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiU2NoZWR1bGFi
bGVMb2FkZXIuaCIKICNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJjZS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VIYW5kbGVDbGllbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3Au
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZD
YWNoZWRVUkxSZXNwb25zZSogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKaW5kZXgg
ZDdhMDM3NWM3ODUxNWEyODg0MjFhZmI2ZWVhNDJlNTUwNGZkN2I2NS4uOGZiZWVmYzA2MTAwOTM3
MWVmMTY1ODMyZGYxMjVhMzg0N2FkZGJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCkBAIC0yOCw3ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZDYWNoZWRVUkxSZXNwb25zZSogQ0ZD
YWNoZWRVUkxSZXNwb25zZVJlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvT2ZmbGlu
ZVN0b3JhZ2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmNwcAppbmRleCA1
NWRmNmM1ZmU2ZjRmMzY3ZDdhNzQ3YTZlMDk2Mzg0ZWYyMzg0MGJhLi5jODgxODVjMTQ0NmJjNmUw
ZTBjOGQ3ODMxMjFmODFiM2QxNGUxYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9PZmZs
aW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmNwcApA
QCAtMjcsOSArMjcsNyBAQAogI2luY2x1ZGUgIk9mZmxpbmVTdG9yYWdlUHJvY2Vzcy5oIgogCiAj
aW5jbHVkZSAiT2ZmbGluZVN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5j
bHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworI2lu
Y2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAppbmRleCA3Njc5MjYwOWMw
NTFkMjkzNWNmZWNmZjcyY2QxMmE1Nzc5MjdhOTlkLi41NWEwYjQ3YmRhM2IyN2MxYTNmOGFkYzVh
OTkyNzBiZmQ2MDY5YzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
Q29ubmVjdGlvbi5jcHAKQEAgLTI2LDE0ICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgog
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Cisj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KIAotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAogY2xhc3MgQ29ubmVjdGlvbjo6
U3luY01lc3NhZ2VTdGF0ZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb25uZWN0aW9u
OjpTeW5jTWVzc2FnZVN0YXRlPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
Q29ubmVjdGlvbi5oCmluZGV4IGM1OGQ0YTEyNjkzOWJhY2VmZmM2N2I0YjYwMDI5NGIwNDdiMWFj
YTkuLmE5MDM2YzU4MTFlN2M2OWU5ZjIyODUyMzAxNDQzODk2NDdmZjIwOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCkBAIC01NSw3ICs1NSw3IEBA
IFFUX0VORF9OQU1FU1BBQ0UKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgi
CiAjZW5kaWYKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdURiB7CiBjbGFzcyBS
dW5Mb29wOwogfQogCkBAIC0xMzUsOCArMTM1LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBib29s
IGlkZW50aWZpZXJJc051bGwoSWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiAhaWRlbnRp
ZmllcjsgfQogI2VuZGlmCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVh
dGVTZXJ2ZXJDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVudCosIFdlYkNvcmU6OlJ1bkxvb3Aq
IGNsaWVudFJ1bkxvb3ApOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0
ZUNsaWVudENvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV2ViQ29yZTo6UnVuTG9vcCog
Y2xpZW50UnVuTG9vcCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRl
U2VydmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBXVEY6OlJ1bkxvb3AqIGNsaWVu
dFJ1bkxvb3ApOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZUNsaWVu
dENvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV1RGOjpSdW5Mb29wKiBjbGllbnRSdW5M
b29wKTsKICAgICB+Q29ubmVjdGlvbigpOwogCiAgICAgQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudDsgfQpAQCAtMTg1LDcgKzE4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRlY3JlbWVudERpc3BhdGNoTWVzc2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHlDb3VudCgpIHsgLS1tX2luRGlzcGF0Y2hNZXNzYWdlTWFya2VkRGlzcGF0Y2hXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseUNvdW50OyB9CiAKIHByaXZhdGU6Ci0gICAgQ29ubmVjdGlvbihJZGVu
dGlmaWVyLCBib29sIGlzU2VydmVyLCBDbGllbnQqLCBXZWJDb3JlOjpSdW5Mb29wKiBjbGllbnRS
dW5Mb29wKTsKKyAgICBDb25uZWN0aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENsaWVu
dCosIFdURjo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemUoSWRlbnRpZmllcik7CiAgICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGUoKTsKICAgICAK
QEAgLTIzMSw3ICsyMzEsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lzQ29ubmVjdGVkOwog
ICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fY29ubmVjdGlvblF1ZXVlOwotICAgIFdlYkNvcmU6OlJ1
bkxvb3AqIG1fY2xpZW50UnVuTG9vcDsKKyAgICBXVEY6OlJ1bkxvb3AqIG1fY2xpZW50UnVuTG9v
cDsKIAogICAgIEhhc2hNYXA8U3RyaW5nUmVmZXJlbmNlLCBzdGQ6OnBhaXI8UmVmUHRyPFdvcmtR
dWV1ZT4sIFJlZlB0cjxXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXI+Pj4gbV93b3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXJzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwCmluZGV4IGJhNTY2ZjY0MGEwNTc1NzNjNTM0YTdkNzM2
MDhjYTcyZWQxMGY2ODUuLjVmM2I1ZDlkMDM0MDcyZGU5OTMwYmM3ZmFmZTdkMWEzZmM0ZGEwNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rp
b25NYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5l
Y3Rpb25NYWMuY3BwCkBAIC0yOSwxNiArMjksMTQgQEAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNl
LmgiCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNpbmNsdWRlICJNYWNoVXRpbGl0aWVzLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8bWFjaC9tYWNoX2Vycm9yLmg+
CiAjaW5jbHVkZSA8bWFjaC92bV9tYXAuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAj
aWYgSEFWRShYUEMpCiAjaW5jbHVkZSA8eHBjL3hwYy5oPgogI2VuZGlmCiAKLXVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKIHN0YXRpYyBjb25zdCBzaXpl
X3QgaW5saW5lTWVzc2FnZU1heFNpemUgPSA0MDk2OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nl
c3NNYWluLm1tIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9M
ZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCmluZGV4IDczMDQ1ZDM5MWNjYjg0Nzlm
YjFiMmQ1NmRhNjVkNjY1NTVmNTE4NGYuLjU0N2JhYTBmYzMzNGVkMzZhM2NjZTg5YmYyYTlmYTM0
YTJhNjllMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2lu
UHJvY2Vzc01haW4ubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgIk5ldHNjYXBlUGx1Z2lu
TW9kdWxlLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCiAjaW1wb3J0ICJXS0Jhc2UuaCIK
LSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAog
I2lmIFVTRShBUFBLSVQpCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKFdlYk5TQXBwbGljYXRp
b25EZXRhaWxzKQpAQCAtNDAsOCArNDAsNiBAQAogQGVuZAogI2VuZGlmCiAKLXVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUGx1Z2luUHJvY2Vz
c01haW5EZWxlZ2F0ZSA6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1t
CmluZGV4IDg3ZmNjNGZkM2ZmNGUwNTAyZTI5M2Q4MGU4NTIzOTQzYTQ5MTIwOWIuLjEyNDE4MmRl
ZDk4YmE0YjliNTQ1ZTA0MDhhM2U4OThjMjM2YTE0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNl
RW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTMxLDcgKzMx
LDcgQEAKICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKICNpbXBvcnQgIldLQmFzZS5oIgogI2lt
cG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5o
PgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTYx
LDcgKzYxLDYgQEAgcHVibGljOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBleHRlcm4gIkMiIFdL
X0VYUE9SVCB2b2lkIFBsdWdpblNlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNv
bm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKaW5kZXgg
MDUwYzU3Y2E1MjZhNWU1ZjMyMjk2YjU1NmJkYmQzZmJlYWY5NDRiYS4uZTJhMTViN2U1YWRkY2M1
MWM2MGE4YjIwNTQ4OThhZTFjYjliMjc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCkBAIC0zNCw5ICszNCw5IEBACiAj
aW5jbHVkZSAiUGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTaGFy
ZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgi
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0
eU9yaWdpbi5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKICAgICBjbGFzcyBEYXRhUmVmZXJlbmNl
OwpAQCAtMTg0LDE0ICsxODQsMTQgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1f
ZGlydHlSZWN0OwogCiAgICAgLy8gVGhlIHBhaW50IHRpbWVyLCB1c2VkIGZvciBjb2FsZXNjaW5n
IHBhaW50aW5nLgotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQ
cm94eT4gbV9wYWludFRpbWVyOwotICAgIAorICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRy
b2xsZXJQcm94eT4gbV9wYWludFRpbWVyOworCiAgICAgLy8gQSBjb3VudGVyIHVzZWQgdG8gcHJl
dmVudCB0aGUgcGx1Zy1pbiBmcm9tIGJlaW5nIGRlc3Ryb3llZC4KICAgICB1bnNpZ25lZCBtX3Bs
dWdpbkRlc3RydWN0aW9uUHJvdGVjdENvdW50OwogCiAgICAgLy8gQSB0aW1lciB0aGF0IHdlIHVz
ZSB0byBwcmV2ZW50IGRlc3RydWN0aW9uIG9mIHRoZSBwbHVnLWluIHdoaWxlIHBsdWctaW4KICAg
ICAvLyBjb2RlIGlzIG9uIHRoZSBzdGFjay4KLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQ
bHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1Z2luRGVzdHJveVRpbWVyOworICAgIFJ1bkxvb3A6
OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wbHVnaW5EZXN0cm95VGltZXI7CiAKICAg
ICAvLyBXaGV0aGVyIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSBwbHVnLWluIHByb3h5IGluIHRoZSB3
ZWIgcHJvY2VzcyB0byBkcmF3IHRoZSBjb250ZW50cyBvZiBpdHMKICAgICAvLyBiYWNraW5nIHN0
b3JlIGludG8gdGhlIHdlYiBwcm9jZXNzIGJhY2tpbmcgc3RvcmUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCAxYTFhZWQ2ZWNjNDA2YTg3
ZmFmMTM4MzNlN2ExZmRjZjFkMTg5MGE0Li4zYjYwMTYxNGY4NDIyZmMyNGE3ODg4Y2E4ODJkNGI5
NDcyZTM4NTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJv
Y2Vzcy5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVk
ZSA8Y3J0X2V4dGVybnMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvUGx1Z2luUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmgKaW5kZXggMGE4N2IyZDlmYWE4MGY3ZWU2MTc2NDcwZjZiNTU0Nzk0MjBjOGQ4ZS4u
N2Q2MDdlNDg2NjVkNTkxNmYxZmFiMWQ0OGFkYmE3N2FlMzIxZmQ4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBw
cml2YXRlOgogICAgIAogICAgIGJvb2wgbV9zdXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRp
YWxpemF0aW9uOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luUHJvY2Vzcz4g
bV9taW5pbXVtTGlmZXRpbWVUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxQbHVnaW5Qcm9jZXNz
PiBtX21pbmltdW1MaWZldGltZVRpbWVyOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBQTEFURk9STShNQUMpCiAgICAgLy8gVGhlIE1hY2ggcG9ydCB1c2VkIGZvciBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMDQyZTUzYjIxMjBjMjY4OGE5MTU5
OGQxMzFjZTA5N2U1OWIzZGMyZi4uMjBjOGYwOGI5NTBkNDE1MDA0NjA0OTk3YTA3MDliNmUwZjE4
NWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTM4LDggKzM4LDggQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmNwcAppbmRleCBlNzJhMzczOWU1ZDA0OTYyMjRmZTA0NDQzYWM2MDhjN2Q4
NjVlNjc1Li40N2E0Yjc2MjE4YWY5MmJhZjMxYWQyMjI0MGY1NzA1ZTljMzMyNzY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApAQCAtMzIsOCArMzIsNiBAQAogI2luY2x1
ZGUgPHVuaXN0ZC5oPgogI2VuZGlmCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogQ2hpbGRQcm9jZXNzOjpDaGlsZFByb2Nlc3MoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NoaWxkUHJvY2Vzcy5oCmluZGV4IDg3OGQ1YmQzNmMzMWY2NWJjMzVjNTZmZTViYWNk
MWFlZWEyMTA2ODguLjU0NDIzMGZiOGY3M2FkMTRmOGQwNjZhY2M3ODQ3MzgxNmM4MGIyNDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTI5LDkgKzI5LDkgQEAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xMDMsNyArMTAzLDcgQEAgcHJpdmF0
ZToKICAgICAvLyBhZnRlciBhIGdpdmVuIHBlcmlvZCBvZiB0aW1lLgogICAgIHVuc2lnbmVkIG1f
dGVybWluYXRpb25Db3VudGVyOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8Q2hpbGRQ
cm9jZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8Q2hpbGRQcm9j
ZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CiAKICAgICBSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOwogICAgIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCBtX21lc3Nh
Z2VSZWNlaXZlck1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDA1NDYwZmEyZGVkZGFmNTkzZWQ3M2FkNzgwZDNmMmZmYmYyZjQzNDYuLmFlZjFh
NDc1YTlhMWIxMjA2OTU2ZGMxY2E5MGFmOTk3Y2U0Y2FkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjYsOSArMjYsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCiAKLSNpbmNsdWRlIDxX
ZWJDb3JlL1J1bkxvb3AuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0No
aWxkUHJvY2Vzc0VudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaAppbmRl
eCBhM2QyZjk2MGY4MTYxNmVhNzYwZDc3NzQ3MGMxZDc5MTM4NWZiODJhLi5mMzI1Y2NkMDlmMTgz
NzhmZjEwMTYzOGVjMzBkN2UxOGQ4ZmQ4YjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NF
bnRyeVBvaW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRp
ZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oCkBAIC0yOSw5ICsy
OSw5IEBACiAjaW1wb3J0ICJDaGlsZFByb2Nlc3MuaCIKICNpbXBvcnQgIkNvbW1hbmRMaW5lLmgi
CiAjaW1wb3J0ICJXZWJLaXQySW5pdGlhbGl6ZS5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHN5c2V4aXRz
Lmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAt
OTUsNyArOTUsNyBAQCBpbnQgQ2hpbGRQcm9jZXNzTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
CiAgICAgICAgIENoaWxkUHJvY2Vzc1R5cGU6OnNoYXJlZCgpLmluaXRpYWxpemUocGFyYW1ldGVy
cyk7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6cnVuKCk7CisgICAgUnVuTG9vcDo6
cnVuKCk7CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICAgZGVsZWdhdGUuZG9Qb3N0
UnVuV29yaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0
aWFsaXplLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAK
aW5kZXggODRmNzM2ZjJmYTZiNTk0YjI1ZmI2YjliNWMzN2RlYWQ3NTU2MTNiZC4uYmMyMDIxZmE0
OGQzMDMwNmI4YzY5YjVkN2VjMWY1ZTUxNzI3YTM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Jbml0aWFsaXplTG9nZ2luZy5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxv
b3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJXZWJTeXN0ZW1JbnRlcmZhY2Uu
aCIKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBJbml0aWFsaXplV2ViS2l0MigpCiAKICAgICBKU0M6
OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7
Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVu
TG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAKICNpZiAhTE9HX0RJU0FCTEVECiAgICAg
V2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQ
cm9jZXNzLmNwcAppbmRleCBkNDJhYjRlN2UxYTYyYmUwYWZhMzhjZWMwYzEwZjE0NDU4NGY2ZjVk
Li44NjQ2NGYwNGQ2OGUzNDZjNWE2MmYwYjNkOWMzYTRkZTM2ZTc2YjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJv
Y2Vzcy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJTaGFyZWRXb3JrZXJQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBQTEFURk9STShNQUMpCiAjaW5j
bHVkZSA8Y3J0X2V4dGVybnMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdv
cmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
V29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmgKaW5kZXggODJjNTljMDYxNTBiYTlj
YjgyZDJlYjBlNmM1ODJiODU0ZDg2OTg0OS4uMDUwZjVkZTdjYTM0YWQ1ZDUyZDA2YTI3YTE4MDQ3
MTU0MjA4NGJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vz
cy9TaGFyZWRXb3JrZXJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2Vy
UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToK
ICAgICAvLyBPdXIgd2ViIHByb2Nlc3MgY29ubmVjdGlvbnMuCiAgICAgVmVjdG9yPFJlZlB0cjxX
ZWJQcm9jZXNzQ29ubmVjdGlvbj4+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zOwogCi0gICAgV2Vi
Q29yZTo6UnVuTG9vcDo6VGltZXI8U2hhcmVkV29ya2VyUHJvY2Vzcz4gbV9taW5pbXVtTGlmZXRp
bWVUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxTaGFyZWRXb3JrZXJQcm9jZXNzPiBtX21pbmlt
dW1MaWZldGltZVRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmgK
aW5kZXggY2JlMzRhMWE5MGZiOWJhOWE1YmY3OTM2NWJiMTdkMjM0YTlkOGE0My4uYmI3ZTIwODUy
YWRmOTRhZDA2MGM1N2E5Y2Y4YzkxNDYwNmM1YzU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaApAQCAtMjcsMTEg
KzI3LDExIEBACiAjZGVmaW5lIEZpbmRJbmRpY2F0b3JXaW5kb3dfaAogCiAjaW1wb3J0ICJXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9y
dCA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW1wb3J0IDx3dGYvUGFzc093blB0ci5oPgogI2ltcG9y
dCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KIAogQGNsYXNzIFdLRmluZEluZGljYXRvcldpbmRvd0FuaW1hdGlvbjsKIEBj
bGFzcyBXS1ZpZXc7CkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgV0tXaW5kb3dCb3Vu
Y2VBbmltYXRpb25Db250ZXh0UmVmIG1fYm91bmNlQW5pbWF0aW9uQ29udGV4dDsKICAgICBSZXRh
aW5QdHI8V0tGaW5kSW5kaWNhdG9yV2luZG93QW5pbWF0aW9uPiBtX2JvdW5jZUFuaW1hdGlvbjsK
IAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPEZpbmRJbmRpY2F0b3JXaW5kb3c+IG1fc3Rh
cnRGYWRlT3V0VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RmluZEluZGljYXRvcldpbmRvdz4g
bV9zdGFydEZhZGVPdXRUaW1lcjsKICAgICBSZXRhaW5QdHI8V0tGaW5kSW5kaWNhdG9yV2luZG93
QW5pbWF0aW9uPiBtX2ZhZGVPdXRBbmltYXRpb247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggYzc2ZTY1OTM1YWY1YWZlZDdjNmI5NGE4ZjIx
YTA3ODY5Mjk2NzdjMC4uMjhkOTU4N2VhMzg5NjYzZWRmYmM5ZDRmYWM2NDEwMmJjNmNmZTU3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtNzgsNyAr
NzgsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZWdpb24u
aD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRC
dWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1N0cmluZ0V4dHJhcy5oPgpAQCAtODksNiArODgsNyBA
QAogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIC8qIEFQSSBpbnRl
cm5hbHMuICovCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaApp
bmRleCBlNWQxNjYzOTdiMWRhZWU4OGM5NmQwOWJhZDE4NmQ5YmU3MjcyOTRhLi4xY2E4MGQ4Yjdk
MTdmNjZhOWI0ZWU3YWZhNzNlZGJhOThhZmIxNzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaApAQCAtMjksOSArMjksOSBAQAogI2luY2x1
ZGUgIkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNs
dWRlICJMYXllclRyZWVDb250ZXh0LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVnaW9u
OwpAQCAtMTE4LDcgKzExOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQmFja2luZ1N0b3Jl
RGlzY2FyZGFibGU7CiAgICAgT3duUHRyPEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAK
LSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5SW1wbD4gbV9kaXNj
YXJkQmFja2luZ1N0b3JlVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFQcm94
eUltcGw+IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFj
L1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IDdjOTUxNjY4Y2RjZWQ5YTNhNmVkMDQ3
MzBhNGU0ZmVhODQ4YzcxMzAuLmRhZmFlYzQ1MDYyOTA1Mjc5ZDhjYzMxYjIyMmFhM2MwYzQ1NmMz
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJv
Y2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC0yOSw3ICsyOSw2IEBACiAjaW1wb3J0ICJE
eW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCIKICNpbXBvcnQgIkVudmlyb25tZW50
VmFyaWFibGVzLmgiCiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbXBvcnQg
PFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8Y3J0X2V4dGVybnMuaD4KICNpbXBvcnQgPG1h
Y2gtby9keWxkLmg+CiAjaW1wb3J0IDxtYWNoL21hY2hpbmUuaD4KQEAgLTQwLDYgKzM5LDcgQEAK
ICNpbXBvcnQgPHN5cy9zdGF0Lmg+CiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0
Zi9UaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDgsOCArNDgsNiBAQAogI2ltcG9ydCA8eHBjL3hwYy5o
PgogI2VuZGlmCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiAvLyBGSVhNRTogV2Ugc2hv
dWxkIGJlIGRvaW5nIHRoaXMgYW5vdGhlciB3YXkuCiBleHRlcm4gIkMiIGtlcm5fcmV0dXJuX3Qg
Ym9vdHN0cmFwX3JlZ2lzdGVyMihtYWNoX3BvcnRfdCwgbmFtZV90LCBtYWNoX3BvcnRfdCwgdWlu
dDY0X3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGYxNWJkYjQ0MmYwZDA4NTA1MzgxNTQ2Mjgz
MjFlN2RiNGI3NTUzNTYuLmNkZWEzYzYxNTU3NDk4YzU3N2JkODdlOGNiNzg4YWQ1ZDk2NzAwZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1By
b2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKICNpbmNsdWRl
ICJTZWNJdGVtU2hpbVByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBjYThhYzg3OTU3ODBlYTE3
MThjYWZjZDVhYzU3NDFmM2QxZjYxZTIxLi45OGQ5ZjkyMGNmODg1MmQ0ZWYzYmFiN2NlMzVjY2Rm
ZTA0NDFmZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlICJX
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9S
dW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykK
ICNpbmNsdWRlICJNYWNoUG9ydC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jl
c3BvbnNpdmVuZXNzVGltZXIuY3BwCmluZGV4IDc2NmFlMGUyMGMyN2VkYjQ5MTdlNzZmYjE1NjIx
ZDY3MTRmNWJhYmIuLjk3MzlmYTNhMTFmNTQwOGE2MTAwYjA2MzhlYmIxMDNhNTk4NDZmYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAK
QEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNwb25z
aXZlbmVzc1RpbWVyLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IGRvdWJsZSByZXNwb25zaXZlbmVzc1RpbWVvdXQgPSAz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGlt
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmgKaW5k
ZXggOGRiMjg3MmZkZWFmZTc5N2M5YWY0ZTdlYzcxMjkxNmUyNmI3ZWVlYy4uZjc1YzBhOTk4ZmY0
NjdkYWM5M2JhNzNhYmMwZTJhNTZiNmM4MTU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFJl
c3BvbnNpdmVuZXNzVGltZXJfaAogI2RlZmluZSBSZXNwb25zaXZlbmVzc1RpbWVyX2gKIAotI2lu
Y2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgUmVzcG9u
c2l2ZW5lc3NUaW1lcjo6Q2xpZW50KiBtX2NsaWVudDsKICAgICBib29sIG1faXNSZXNwb25zaXZl
OwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UmVzcG9uc2l2ZW5lc3NUaW1lcj4gbV90
aW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxSZXNwb25zaXZlbmVzc1RpbWVyPiBtX3RpbWVyOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1By
b3h5LmNwcAppbmRleCA2MzYwODViMTdjNjNhYjAzZjA3Zjc5YTllYzJhZDc0NGFiZDU2NTZlLi44
OTBhOWEyNGU1MzdjMDljYzY0NDBmZTNjNzlkMjI0Yjg3M2M4ODdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJl
ZFdvcmtlclByb2Nlc3NQcm94eS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJQ
cm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRl
ICJNYWNoUG9ydC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1By
b3ZpZGVyLmgKaW5kZXggZTBlNTMxMDI1YjFkYTcwMjNhNThkMjMzMTlkZWFjMWI4NDJkYzZhOS4u
YzBkNGVjOTYzNzEwMjRmZWZjZTE4ZjI0OTM3NjZiMGM4NmJiOGY4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oCkBAIC0yOCw5ICsyOCw5IEBA
CiAKICNpbmNsdWRlICJWaXNpdGVkTGlua1RhYmxlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5r
SGFzaC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAg
IFZpc2l0ZWRMaW5rVGFibGUgbV90YWJsZTsKIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6TGlua0hh
c2gsIFdlYkNvcmU6OkxpbmtIYXNoSGFzaD4gbV9wZW5kaW5nVmlzaXRlZExpbmtzOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFZpc2l0ZWRMaW5rUHJvdmlkZXI+IG1fcGVuZGluZ1Zpc2l0
ZWRMaW5rc1RpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFZpc2l0ZWRMaW5rUHJvdmlkZXI+IG1f
cGVuZGluZ1Zpc2l0ZWRMaW5rc1RpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggMzM1ZjE1MTVlYWE5NWIx
NTEzZGZlM2ZjOGVkNmU0YmMyNmZmZTNiNC4uNDk5ODY1MGE5MzkyMDZiMjQ2NDI0NmRlMGZkMzA2
NmI3ZjdlNjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAt
NTksMTEgKzU5LDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKICNpbmNs
dWRlICJXZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nl
c3NNYWluLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdh
Y3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbQppbmRleCBmZTc4NDBkOWUwYTgxOTRi
NjE1YjlmYzIxYjE3NTMwZWQwMjNkMWNmLi4zNDMwYTM4Mzc3OTVkNjBiZmQ5MWFlMWJkMzc4NmI5
NDdiNDQxNTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250
ZW50UHJvY2Vzc01haW4ubW0KQEAgLTMxLDEyICszMSwxMiBAQAogI2ltcG9ydCAiU3RyaW5nVXRp
bGl0aWVzLmgiCiAjaW1wb3J0ICJXS0Jhc2UuaCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKLSNp
bXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+CiAj
aW1wb3J0IDxzZXJ2ZXJzL2Jvb3RzdHJhcC5oPgogI2ltcG9ydCA8c3Bhd24uaD4KICNpbXBvcnQg
PHN0ZGlvLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9v
cC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKQEAgLTQ4LDggKzQ4LDYgQEAKIAogZXh0ZXJuICJDIiBrZXJuX3JldHVybl90
IGJvb3RzdHJhcF9yZWdpc3RlcjIobWFjaF9wb3J0X3QsIG5hbWVfdCwgbWFjaF9wb3J0X3QsIHVp
bnQ2NF90KTsKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBXZWJDb250ZW50UHJvY2Vzc01haW5EZWxlZ2F0ZSA6IHB1YmxpYyBDaGlsZFBy
b2Nlc3NNYWluRGVsZWdhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9X
ZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggOTk1OTA3ZWJmZTI4NTBjM2MzYWMx
ZmY1ZDY1NzU0NGJkZmFmODQxMS4uYzg1Yjg0YjVhMTEzYTAzOGU1OTQyMmIxZGNmZDQ2Yzc1MzM0
MWM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNl
cnZpY2VFbnRyeVBvaW50Lm1tCkBAIC0zMSw5ICszMSw4IEBACiAjaW1wb3J0ICJXS0Jhc2UuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKICNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50Lmgi
Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAK
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogZXh0
ZXJuICJDIiBXS19FWFBPUlQgdm9pZCBXZWJDb250ZW50U2VydmljZUluaXRpYWxpemVyKHhwY19j
b25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggNTVmNmUzMTdkM2FkNDkyMTYwZmIzMDhhZTFh
OTM4ZTQ5M2ViYzE4ZC4uMDY4MDFjOTA0MWE5ZTVlOTYxNjAzODZjYWI2MmY1YjM1ZWM4OWZmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VMb2FkUHJpb3JpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
TG9hZFNjaGVkdWxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAj
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgaW50ZXJuYWxseUZhaWxlZExvYWRUaW1lckZpcmVkKCk7CiAgICAgCiAgICAgSGFz
aFNldDxSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+PiBtX2ludGVybmFsbHlGYWlsZWRS
ZXNvdXJjZUxvYWRlcnM7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyPiBtX2ludGVybmFsbHlGYWlsZWRMb2FkVGltZXI7CisgICAgUnVuTG9vcDo6
VGltZXI8V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyPiBtX2ludGVybmFsbHlGYWlsZWRMb2FkVGlt
ZXI7CiAgICAgCiAgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBSZWZQdHI8V2ViUmVzb3VyY2VM
b2FkZXI+PiBtX3dlYlJlc291cmNlTG9hZGVyczsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmpl
Y3RNYXAuaAppbmRleCA4NzQ0Mjg5ZmNiYWM5Y2ZjNzVkNWFkNDFhNTFkYTc3MjA4ZjllZWZmLi45
NmVhNjU0MDZiM2FmMjE5OWYxYTI5OWI5Zjk0Yzg1NTA3M2JjNjZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFw
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVu
dGltZU9iamVjdE1hcC5oCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQogCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
aGVhcC9XZWFrLmg+CiAjaW5jbHVkZSA8aGVhcC9XZWFrSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogCiBzdHJ1Y3QgTlBPYmplY3Q7CiB0eXBlZGVmIHN0cnVjdCBfTlBWYXJpYW50IE5Q
VmFyaWFudDsKQEAgLTk5LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPEpTQzo6SlNP
YmplY3QqLCBOUEpTT2JqZWN0Kj4gbV9ucEpTT2JqZWN0czsKICAgICBIYXNoTWFwPE5QT2JqZWN0
KiwgSlNDOjpXZWFrPEpTTlBPYmplY3Q+PiBtX2pzTlBPYmplY3RzOwogICAgIFZlY3RvcjxOUE9i
amVjdCo+IG1fbnBPYmplY3RzVG9GaW5hbGl6ZTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1l
cjxOUFJ1bnRpbWVPYmplY3RNYXA+IG1fZmluYWxpemF0aW9uVGltZXI7CisgICAgUnVuTG9vcDo6
VGltZXI8TlBSdW50aW1lT2JqZWN0TWFwPiBtX2ZpbmFsaXphdGlvblRpbWVyOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCmluZGV4IDBlZTRmMzQ4YzYz
NDQxZmJjNTRhMDEzMmYwMTFjMjFiZWJmNjJkYTMuLmU2YzJiN2NkOTM1MTkzMWUwNGQ3MGI0ZmI0
YzM5NGY4NWNkZWU1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBAIC0zMyw4ICszMyw4IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9BZmZpbmVUcmFuc2Zvcm0uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMzMyLDcgKzMzMiw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIGJvb2wgbV9yZXBlYXQ7CiAgICAgICAgIFRpbWVyRnVuYyBtX3RpbWVyRnVuYzsKIAot
ICAgICAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxUaW1lcj4gbV90aW1lcjsKKyAgICAgICAg
UnVuTG9vcDo6VGltZXI8VGltZXI+IG1fdGltZXI7CiAgICAgfTsKICAgICB0eXBlZGVmIEhhc2hN
YXA8dW5zaWduZWQsIE93blB0cjxUaW1lcj4+IFRpbWVyTWFwOwogICAgIFRpbWVyTWFwIG1fdGlt
ZXJzOwpAQCAtMzc5LDcgKzM3OSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBGSVhNRTogSXQncyBh
IGJpdCB3YXN0ZWZ1bCB0byBoYXZlIG9uZSBudWxsIGV2ZW50IHRpbWVyIHBlciBwbHVnLWluLgog
ICAgIC8vIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSBoYXZpbmcgb25lIHBlciB3aW5kb3cuCi0gICAg
V2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW4+IG1fbnVsbEV2ZW50VGltZXI7
CisgICAgUnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW4+IG1fbnVsbEV2ZW50VGltZXI7CiAg
ICAgTlBfQ0dDb250ZXh0IG1fbnBDR0NvbnRleHQ7CiAjZW5kaWYKICNlbGlmIFBMVUdJTl9BUkNI
SVRFQ1RVUkUoV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAppbmRleCBmZmE1
NWNiMjVkOGNkODc0NDZiYTgzN2ZkMzkwZTgzYjhjNGE3YjcyLi5kZDU5YjA1NWI5ZmVjOWE4Mzhl
Mjk5YjNmYWRiMDU4MmQwZDNkOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0u
aApAQCAtMjksMTIgKzI5LDEyIEBACiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL25wcnVudGltZV9pbnRlcm5hbC5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMTA1LDcgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgQ1N0cmluZyBtX21pbWVU
eXBlOwogICAgIENTdHJpbmcgbV9oZWFkZXJzOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGlt
ZXI8TmV0c2NhcGVQbHVnaW5TdHJlYW0+IG1fZGVsaXZlcnlEYXRhVGltZXI7CisgICAgUnVuTG9v
cDo6VGltZXI8TmV0c2NhcGVQbHVnaW5TdHJlYW0+IG1fZGVsaXZlcnlEYXRhVGltZXI7CiAgICAg
T3duUHRyPCBWZWN0b3I8dWludDhfdD4+IG1fZGVsaXZlcnlEYXRhOwogICAgIGJvb2wgbV9zdG9w
U3RyZWFtV2hlbkRvbmVEZWxpdmVyaW5nOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IGM2Y2Q1ODg5YWJhZTYzNDFlOTNmMmJiZmNh
NzQzZTFiMTNiMDZjYTIuLjZhMDczNzliN2Q5NjIwYzY5ZjY3ODZlZWRhMGY3MjBlNWQwNjljMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaApA
QCAtMzYsOSArMzYsOSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KIAogLy8gRklYTUU6IEV2ZW50dWFsbHkgdGhpcyBzaG91bGQgbW92ZSB0byBXZWJD
b3JlLgogCkBAIC0yMzEsNyArMjMxLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFBlbmRpbmcgVVJM
UmVxdWVzdHMgdGhhdCB0aGUgcGx1Zy1pbiBoYXMgbWFkZS4KICAgICBEZXF1ZTxSZWZQdHI8VVJM
UmVxdWVzdD4+IG1fcGVuZGluZ1VSTFJlcXVlc3RzOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRp
bWVyPFBsdWdpblZpZXc+IG1fcGVuZGluZ1VSTFJlcXVlc3RzVGltZXI7CisgICAgUnVuTG9vcDo6
VGltZXI8UGx1Z2luVmlldz4gbV9wZW5kaW5nVVJMUmVxdWVzdHNUaW1lcjsKIAogICAgIC8vIFBl
bmRpbmcgZnJhbWUgbG9hZHMgdGhhdCB0aGUgcGx1Zy1pbiBoYXMgbWFkZS4KICAgICB0eXBlZGVm
IEhhc2hNYXA8UmVmUHRyPFdlYkZyYW1lPiwgUmVmUHRyPFVSTFJlcXVlc3Q+PiBGcmFtZUxvYWRN
YXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWFJbXBsLmgKaW5kZXggNzg5MzAwOWY3NGEyMDhmZmY4YzU2ZDlhZTk5ODdkMTA4YTY3ZTRlZS4u
NDFhMGJlNTI0ODg3NmJjNzQ4NWYzYTdhM2FlNmQ2NTc3ZDY2NjlhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaApAQCAtMjks
NyArMjksNyBAQAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVl
SG9zdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9S
dW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKQEAgLTE0MCw4ICsxNDAsOCBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc1BhaW50aW5nU3VzcGVuZGVkOwogICAgIGJvb2wgbV9hbHdheXNVc2VD
b21wb3NpdGluZzsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1w
bD4gbV9kaXNwbGF5VGltZXI7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8RHJhd2luZ0Fy
ZWFJbXBsPiBtX2V4aXRDb21wb3NpdGluZ1RpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPERyYXdp
bmdBcmVhSW1wbD4gbV9kaXNwbGF5VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0Fy
ZWFJbXBsPiBtX2V4aXRDb21wb3NpdGluZ1RpbWVyOwogCiAgICAgLy8gVGhlIGxheWVyIHRyZWUg
aG9zdCB0aGF0IGhhbmRsZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCiAgICAgUmVmUHRyPExh
eWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggZDc5YzI5NzBmMjZi
ZDhmZjUxODJlZjlhODYyOTI1OGY3ZGFlNDA2Yy4uYWQ0MDQwMDg4NWUzYTBlMDllZTQ3ODFlYjg0
MTljM2FiYTE3NjFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlICJX
ZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFC
TEUoVEhSRUFERURfU0NST0xMSU5HKQogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Q
YWdlT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVy
bGF5LmgKaW5kZXggMGZhMDU4YWE0NmYzNzQ1ZDcxMzllMWRkNWQ2MDgwNjEyZTMxYjE5Yi4uYmMx
ODJkYTA2NTI4ZWY3N2ExZDBhODY1ZGI1YzBiYWZkNmFlMDgwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKQEAgLTI3LDggKzI3LDggQEAK
ICNkZWZpbmUgUGFnZU92ZXJsYXlfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgR3Jh
cGhpY3NDb250ZXh0OwpAQCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogICAgIENsaWVudCogbV9j
bGllbnQ7CiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXI8UGFnZU92ZXJsYXk+IG1fZmFkZUFuaW1hdGlvblRpbWVyOworICAgIFJ1bkxvb3A6OlRp
bWVyPFBhZ2VPdmVybGF5PiBtX2ZhZGVBbmltYXRpb25UaW1lcjsKICAgICBkb3VibGUgbV9mYWRl
QW5pbWF0aW9uU3RhcnRUaW1lOwogICAgIGRvdWJsZSBtX2ZhZGVBbmltYXRpb25EdXJhdGlvbjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDdhZGQ5NmIzOGMzZGY3NjU3NzM0OWVkMTMyMGY5NzUyMTA2ZmE1MDYuLmRjMzViYjQ2ZDkzNmI2
NDY3MGY4MmNhNDVkYWNmMTJiYTZkYThjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyMCw3ICsxMjAsNiBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KQEAgLTEzNSw2ICsxMzQsNyBAQAogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNDSlNWYWx1ZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lm
IEVOQUJMRShNSFRNTCkKICNpbmNsdWRlIDxXZWJDb3JlL01IVE1MQXJjaGl2ZS5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYWM5NTNiOTczMGI0
OGViZjEzNWVmNGY4NzRlNWQzYjU0NWM4NjQ0OC4uMDg2NmUyYTU3NDk5YmZiYTZiZjM4ODYyOGJk
ZDM0Y2IxZGMyYjJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC04ODMsNyArODgzLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wcmltYXJ5
UGx1Z0luUGFnZU9yaWdpbjsKICAgICBTdHJpbmcgbV9wcmltYXJ5UGx1Z0luT3JpZ2luOwogICAg
IFN0cmluZyBtX3ByaW1hcnlQbHVnSW5NaW1lVHlwZTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpU
aW1lcjxXZWJQYWdlPiBtX2RldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblRpbWVyOwor
ICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVk
UGx1Z0luVGltZXI7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTkyNSw4ICs5MjUs
OCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxQYWdlQmFubmVyPiBtX2hlYWRlckJhbm5lcjsKICAg
ICBSZWZQdHI8UGFnZUJhbm5lcj4gbV9mb290ZXJCYW5uZXI7CiAKLSAgICBXZWJDb3JlOjpSdW5M
b29wOjpUaW1lcjxXZWJQYWdlPiBtX3NldENhblN0YXJ0TWVkaWFUaW1lcjsKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX3NlbmREaWRVcGRhdGVJbldpbmRvd1N0YXRlVGlt
ZXI7CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZXRDYW5TdGFydE1lZGlhVGltZXI7
CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZW5kRGlkVXBkYXRlSW5XaW5kb3dTdGF0
ZVRpbWVyOwogICAgIGJvb2wgbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwogCiAgICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlVuZG9TdGVwPj4gbV91bmRvU3RlcE1hcDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDk5ZGViYTVlMWU0ZTUxMmIz
OGRlYjQ5ZjQxYTBmZjkzNGY4ZDczMDAuLjlmNjUyOGVlZTVkODlmNzUxMDZiMzllMDRkMTgzZDQ1
NWZlMmIzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
NzQsNyArNzQsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVS
ZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC04Miw2ICs4MSw3IEBACiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202576</attachid>
            <date>2013-05-22 11:05:25 -0700</date>
            <delta_ts>2013-05-22 12:18:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116606-20130522200410.patch</filename>
            <type>text/plain</type>
            <size>196059</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MjMxODRlZTQ5Y2VmYmVlNzUxN2E4MjIzZDc4NzBhZDM5NGMxNTljLi5lYWNmYzMxNjExZjIxNTUy
MmYwMGE1OGZiMWZjZWJjYzAwYzUyZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMy0wNS0yMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0
Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEzLTA1LTIxICBCcmVudCBGdWxnaGFt
ICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5kb3dzXSBVbnJldmlld2VkIHNw
ZWN1bGF0aXZlIGZpeCBmb3IgdGVzdC1ib3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjNTk2YTg5MTg0YjgzNmFjM2NkN2Iz
YWRhZmIyYzlhOWIwNzQ0M2U0Li5hYzg0OTg2NTAzOTA0NzhlMDkyZTU4NDI3YTBiNWU1YWY3Yjk5
ZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAxMy0wNS0yMiAgUGF0cmljayBHYW5zdGVyZXIg
IDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3Jl
IHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE2NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2l0aCB0aGlzIGNoYW5nZSBSdW5Mb29wIGNhbiBiZSB1c2VkIGluIEphdmFTY3JpcHRDb3JlIHRv
by4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLnBybzoK
KyAgICAgICAgKiBXVEYudmNwcm9qL1dURi52Y3Byb2o6CisgICAgICAgICogV1RGLnZjeHByb2ov
V1RGLnZjeHByb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUJsYWNr
QmVycnkuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAq
IHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XaW5DRS5jbWFr
ZToKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3ApOgorICAgICAgICAo
UnVuTG9vcDo6SG9sZGVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6SG9sZGVyOjpIb2xkZXIp
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpIb2xkZXI6OnJ1bkxvb3ApOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpjdXJyZW50KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6bWFpbik6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2gp
OgorICAgICAgICAqIHd0Zi9SdW5Mb29wLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9SdW5Mb29wLmguCisgICAgICAgIChXVEYpOgorICAgICAgICAoUnVuTG9vcCk6Cisg
ICAgICAgIChUaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0
YXJ0UmVwZWF0aW5nKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydE9u
ZVNob3QpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzUmVwZWF0aW5nKToK
KyAgICAgICAgKFRpbWVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXI6OlRpbWVyKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXI6OmZpcmVkKToKKyAgICAgICAgKiB3dGYvV2lu
ZG93c0V4dHJhcy5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dp
bmRvd3NFeHRyYXMuaC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OmdldFJlZ2lzdHJ5
VmFsdWUpOgorICAgICAgICAoV1RGOjpnZXRXaW5kb3dQb2ludGVyKToKKyAgICAgICAgKFdURjo6
c2V0V2luZG93UG9pbnRlcik6CisgICAgICAgICogd3RmL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNr
QmVycnkuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJy
eS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAqIHd0Zi9lZmwvUnVuTG9vcEVm
bC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUnVuTG9vcEVm
bC5jcHAuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpydW4pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6d2FrZVVwRXZlbnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6
OlRpbWVyQmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFz
ZTo6c3RhcnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYv
Z3RrL1J1bkxvb3BHdGsuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1J1bkxvb3BHdGsuY3BwLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6aW5uZXJtb3N0TG9v
cCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnB1c2hOZXN0ZWRNYWluTG9vcCk6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnF1ZXVlV29yayk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNl
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spOgor
ICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJC
YXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogd3RmL21hYy9SdW5Mb29wTWFjLm1tOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9vcENGLmNwcC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9u
TWFpblJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpwZXJmb3JtV29yayk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp+UnVu
TG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6VGlt
ZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6aXNBY3RpdmUpOgorICAgICAgICAqIHd0Zi9xdC9SdW5Mb29wUXQuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChSdW5Mb29wOjpUaW1lck9iamVjdCk6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OlRpbWVyT2JqZWN0OjpUaW1lck9iamVjdCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6
OlRpbWVyT2JqZWN0OjpwZXJmb3JtV29yayk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
T2JqZWN0Ojp3YWtlVXApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lck9iamVjdDo6dGlt
ZXJFdmVudCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJ1bik6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OnN0b3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXAp
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQpOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRp
bWVyQmFzZTo6c3RhcnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3Ap
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAg
KiB3dGYvd2luL1J1bkxvb3BXaW4uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6UnVuTG9vcFduZFByb2MpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3bmRQcm9j
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5k
b3dDbGFzcyk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjp+UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChX
VEY6OmdlbmVyYXRlVGltZXJJRCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNl
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRp
bWVyQmFzZTo6aXNBY3RpdmUpOgorCiAyMDEzLTA1LTIxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdhM2Ux
MDQyOTg2ZmYwOGM0MzhmYzg5OGZlYjE1OTI2MzEwMTI3OGEuLjExNDQxYzAyYWYwMDYwYmVlNWM1
MWYzMDZkYjljNmE1MjczMDNlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMy0w
NS0yMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBN
b3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFBsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbkNFLmNtYWtlOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmg6CisgICAgICAgIChTY3JvbGxpbmdUaHJlYWQp
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAq
IHBsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1J1bkxvb3AuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL1J1bkxvb3AuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jZi9SdW5Mb29wQ0YuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9SdW5Mb29wRWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVGdWxsc2NyZWVuV2luZG93Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1J1bkxvb3BH
dGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SdW5Mb29wTWFjLm1tOiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vd2luL01JTUVUeXBlUmVnaXN0cnlXaW4uY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
UG9wdXBNZW51V2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1NoYXJlZFRpbWVyV2luLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vV2luZG93TWVzc2FnZUxpc3RlbmVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vd2luL1dpbmRvd3NFeHRyYXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbHVnaW5z
L3dpbi9QbHVnaW5EYXRhYmFzZVdpbi5jcHA6CisKIDIwMTMtMDUtMjEgIE1paGFpIFRpY2EgIDxt
aXRpY2FAYWRvYmUuY29tPgogICAgICAgICAKICAgICAgICAgVXBkYXRlIHRoZSBiYWNrZ3JvdW5k
IGJsZW5kaW5nIGltcGxlbWVudGF0aW9uIHRvIG1hdGNoIHRoZSBjaGFuZ2VzIGRvbmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwppbmRleCBjNGFhZTA4ODY2MTYyMjQ4NWRmYWJlYTI5ZjFmZmVmNDk5Y2ZkYjhiLi5i
NDg3YTllMTdlYmMxNmFmNzhkNDUyOTA4NzMzMGRjMjhiZDk2MDAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTEgQEAKKzIwMTMtMDUtMjIgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29yZSB0byBXVEYK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjYwNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2FyYm9u
L0NhcmJvbldpbmRvd0FkYXB0ZXIubW06CisgICAgICAgICgrW0NhcmJvbldpbmRvd0FkYXB0ZXIg
aW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tOgor
ICAgICAgICAoK1tXZWJCYWNrRm9yd2FyZExpc3QgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhp
c3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CisgICAgICAgICgrW1dlYkhpc3RvcnlJdGVtIGluaXRp
YWxpemVdKToKKyAgICAgICAgKiBNaXNjL1dlYkNhY2hlLm1tOgorICAgICAgICAoK1tXZWJDYWNo
ZSBpbml0aWFsaXplXSk6CisgICAgICAgICogTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbToK
KyAgICAgICAgKCtbV2ViRWxlbWVudERpY3Rpb25hcnkgaW5pdGlhbGl6ZV0pOgorICAgICAgICAq
IE1pc2MvV2ViSWNvbkRhdGFiYXNlLm1tOgorICAgICAgICAoK1tXZWJJY29uRGF0YWJhc2UgaW5p
dGlhbGl6ZV0pOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldy5tbToKKyAgICAgICAgKCtbV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGluaXRp
YWxpemVdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNr
YWdlLm1tOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2Fw
ZVBsdWdpblZpZXcubW06CisgICAgICAgICgrW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBpbml0aWFs
aXplXSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoK1tXZWJVbmRvU3RlcCBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgICogV2ViVmlldy9XZWJBcmNoaXZl
Lm1tOgorICAgICAgICAoK1tXZWJBcmNoaXZlUHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJEYXRhU291cmNlLm1tOgorICAgICAgICAoK1tXZWJEYXRhU291cmNlIGlu
aXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAo
K1tXZWJIVE1MVmlld1ByaXZhdGUgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoK1tXZWJIVE1MVmll
dyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAg
ICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcv
V2ViUmVzb3VyY2UubW06CisgICAgICAgICgrW1dlYlJlc291cmNlUHJpdmF0ZSBpbml0aWFsaXpl
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJUZXh0SXRlcmF0b3IubW06CisgICAgICAgICgrW1dl
YlRleHRJdGVyYXRvclByaXZhdGUgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAgICAgKCtbV2ViVmlld1ByaXZhdGUgaW5pdGlhbGl6
ZV0pOgorCiAyMDEzLTA1LTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAK
ICAgICAgICAgU3luY2hyb25pemUgRmVhdHVyZURlZmluZXMueGNjb25maWcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA2ZGZiOWQ1NjY5MDMzMDlkYmIwYmUxNjk0MmUzNDFiZDIyYmZlYzJmLi4wZDdiOGYzNDExNGUx
YjFjYzU5ZjBkZDVhOTBmZmYzYzY0NjhiNDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAK
KzIwMTMtMDUtMjIgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29yZSB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjYwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmg6CisgICAgICAgICog
T2ZmbGluZVN0b3JhZ2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5jcHA6CisgICAgICAg
ICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9D
b3JlSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKENvbm5lY3Rpb24pOgorICAgICAgICAqIFBs
YXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwOgorICAgICAgICAqIFBsdWdpblBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbToK
KyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2lu
U2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKFBsdWdpbkNvbnRyb2xsZXJQcm94eSk6CisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAgICAgKiBQbHVnaW5Qcm9j
ZXNzL1BsdWdpblByb2Nlc3MuaDoKKyAgICAgICAgKFBsdWdpblByb2Nlc3MpOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFNoYXJl
ZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAg
ICAgICAgKENoaWxkUHJvY2Vzcyk6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJv
Y2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50Lmg6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJv
Y2Vzc01haW4pOgorICAgICAgICAqIFNoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKToKKyAgICAgICAgKiBTaGFyZWRXb3JrZXJQ
cm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwOgorICAgICAgICAqIFNoYXJlZFdvcmtlclBy
b2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oOgorICAgICAgICAoU2hhcmVkV29ya2VyUHJvY2Vz
cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oOgor
ICAgICAgICAoRmluZEluZGljYXRvcldpbmRvdyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5o
OgorICAgICAgICAoRHJhd2luZ0FyZWFQcm94eUltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9M
YXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1Jlc3BvbnNp
dmVuZXNzVGltZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVy
Lmg6CisgICAgICAgIChSZXNwb25zaXZlbmVzc1RpbWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
U2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmg6CisgICAgICAgIChWaXNpdGVkTGlua1Byb3Zp
ZGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFp
bi5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2Vi
Q29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaDoKKyAgICAgICAgKFdlYlJlc291cmNlTG9hZFNj
aGVkdWxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGlt
ZU9iamVjdE1hcC5oOgorICAgICAgICAoTlBSdW50aW1lT2JqZWN0TWFwKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaDoKKyAgICAgICAgKFRp
bWVyKToKKyAgICAgICAgKE5ldHNjYXBlUGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaDoKKyAgICAgICAgKE5ldHNjYXBl
UGx1Z2luU3RyZWFtKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5o
OgorICAgICAgICAoUGx1Z2luVmlldyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhSW1wbC5oOgorICAgICAgICAoRHJhd2luZ0FyZWFJbXBsKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaDoKKyAgICAgICAgKFBhZ2VPdmVybGF5KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYlBhZ2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisKIDIwMTMtMDUtMjIgIE1pY2hhxYIgUGFrdcWCYSB2ZWwg
UnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIENoYW5n
ZSBFd2tfQ29udGV4dF9NZW51X0l0ZW0ncyBwYXJlbnQgbWVudSB0byByYXcgcG9pbnRlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ODBhYTFlNWQyZTQ4NjI2ZGJmOGI3Y2JiMjg1
NGNmMTViMGU3NzRlLi5mNjAyMDgyMmRlMTc4MDlmNzY3ZmNjMTVhYmUyZmUyZjY4MjNiOWNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA5LDYgKzUwOSw3IEBACiAJCTFBQ0Y3
Mzc3MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNw
cCAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0
MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3
MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpT
U3RyaW5nSm9pbmVyLmggKi87IH07CisJCTJDQjNFNzE2MTczQUNBNzMwMEFBN0JGRCAvKiBBcHBL
aXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkNCM0U3MTUxNzNBQ0E3MzAwQUE3QkZEIC8qIEFwcEtpdC5mcmFtZXdvcmsgKi87IH07
CiAJCTQxMzU5Q0YzMEZERDg5QUQwMDIwNjE4MCAvKiBEYXRlQ29udmVyc2lvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIxMjAyMjkwQUQ0MzEwQzAw
RUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmggKi87IH07CiAJCTQ0NDNBRTMzMTZFMTg4RDkwMDc2
RjExMCAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjBFQjYxMDVDODZDNkIwMEU2REYxQiAvKiBGb3VuZGF0
aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJNDUxNTM5QjkxMkRDOTk0NTAwRUY3QUM0IC8qIFlhcnIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MTUzOUI4
MTJEQzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEzODgsNiArMTM4OSw3IEBACiAJCTFDQUE4QjRCMEQzMkMz
OUEwMDQxQkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
NjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdK
b2luZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdKb2luZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCM0U3MTUxNzNBQ0E3MzAwQUE3QkZE
IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcEtpdC5mcmFtZXdvcms7
IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrOyBzb3Vy
Y2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQk0NDkwOTdFRTBGOEY4MUI1MDA3NkEzMjcgLyog
RmVhdHVyZURlZmluZXMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0g
RmVhdHVyZURlZmluZXMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1
MTUzOUI4MTJEQzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFlhcnIuaDsgcGF0aCA9IHlhcnIvWWFyci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NUUxMkQ4ODA2QTQ5QjBGMDBFOURGODQgLyoganNjLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGpzYy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gNDsgfTsKQEAgLTE4NjQsNiArMTg2Niw3
IEBACiAJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkyQ0IzRTcxNjE3M0FDQTczMDBBQTdC
RkQgLyogQXBwS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTkzMkY1QkQzMDgy
MkExQzcwMDczNjk3NSAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LywKIAkJCQlBNzMxQjI1QTEzMDA5Mzg4MDA0MEE3RkEgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLywKIAkJCQk5MzJGNUJENzA4MjJBMUM3MDA3MzY5NzUgLyogbGliaWN1
Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLApAQCAtMTk0MCw2ICsxOTQzLDcgQEAKIAkJMDg2
N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJDQjNFNzE1MTczQUNBNzMwMEFBN0JGRCAvKiBB
cHBLaXQuZnJhbWV3b3JrICovLAogCQkJCTY1NjBBNENGMDRCM0IzRTcwMDhBRTk1MiAvKiBDb3Jl
Rm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJNTFGMEVCNjEwNUM4NkM2QjAwRTZERjFCIC8q
IEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAogCQkJCTVENUQ4QUQwMEUwRDBFQkUwMEY5QzY5MiAv
KiBsaWJlZGl0LmR5bGliICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDFkN2YwYjM2MmEy
ZmY1YWFmMzRlZGM3ODY2NWRjMWE0ZWYzNTg1NDguLmE4ZDA2YTIzNTI4OTMzYTVkOGVmNTA2NWUw
NWVmZTkyNmVhODFjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE0MCw2ICsxNDAsOCBA
QCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvUmVmUHRyLmggXAogICAgIFNv
dXJjZS9XVEYvd3RmL1JlZlB0ckhhc2hNYXAuaCBcCiAgICAgU291cmNlL1dURi93dGYvUmV0YWlu
UHRyLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwIFwKKyAgICBTb3VyY2UvV1RG
L3d0Zi9SdW5Mb29wLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1NIQTEuY3BwIFwKICAgICBTb3Vy
Y2UvV1RGL3d0Zi9TSEExLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1NhdHVyYXRlZEFyaXRobWV0
aWMuaCBcCkBAIC0yMjAsNiArMjIyLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9X
VEYvd3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL2dv
YmplY3QvR2xpYlV0aWxpdGllcy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9ndGsvTWFpblRocmVh
ZEd0ay5jcHAgXAorICAgIFNvdXJjZS9XVEYvd3RmL2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAgICAg
U291cmNlL1dURi93dGYvdGV4dC9BU0NJSUZhc3RQYXRoLmggXAogICAgIFNvdXJjZS9XVEYvd3Rm
L3RleHQvQXRvbWljU3RyaW5nLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNT
dHJpbmcuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dU
Ri5wcm8KaW5kZXggZTNmOTBiODc4ODFiMTljODMyZDZhNDJiZmRmZGZmYzc4MTU3ZTdhOS4uYTZm
NWM1YjVmMzE0MjVhMGU5ZmU0ODkzMzNmNjE3MDViNTA5Y2YzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMTI4LDYgKzEyOCw3IEBA
IEhFQURFUlMgKz0gXAogICAgIFJlZlB0ci5oIFwKICAgICBSZWZQdHJIYXNoTWFwLmggXAogICAg
IFJldGFpblB0ci5oIFwKKyAgICBSdW5Mb29wLmggXAogICAgIFNIQTEuaCBcCiAgICAgU2F0dXJh
dGVkQXJpdGhtZXRpYy5oIFwKICAgICBTcGVjdHJ1bS5oIFwKQEAgLTIxNiw4ICsyMTcsMTAgQEAg
U09VUkNFUyArPSBcCiAgICAgTnVsbFB0ci5jcHAgXAogICAgIE51bWJlck9mQ29yZXMuY3BwIFwK
ICAgICBSQU1TaXplLmNwcCBcCisgICAgUnVuTG9vcC5jcHAgXAogICAgIE9TUmFuZG9tU291cmNl
LmNwcCBcCiAgICAgcXQvTWFpblRocmVhZFF0LmNwcCBcCisgICAgcXQvUnVuTG9vcFF0LmNwcCBc
CiAgICAgcXQvU3RyaW5nUXQuY3BwIFwKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwIFwK
ICAgICBQYWdlQmxvY2suY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9X
VEYudmNwcm9qIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggMzAxYThi
ZmRiY2MzZTVlNTViMTRlYWQ4OTRhN2IyYjE1MGM3NzFlMS4uMTBmOTY3NzdmOWJmNWI1NjU3ODcy
ZWFlMjNjYmQ4NjVkZTY2OWJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dU
Ri52Y3Byb2oKKysrIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTM0NSw2
ICszNDUsMTAgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0Zlx3aW5cT3duUHRyV2luLmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXHdp
blxSdW5Mb29wV2luLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCTwvRmlsdGVyPgogCQk8Rmls
dGVyCiAJCQlOYW1lPSJ1bmljb2RlIgpAQCAtMTEyNyw2ICsxMTMxLDE0IEBACiAJCQk+CiAJCTwv
RmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXFJ1bkxvb3AuY3BwIgorCQkJ
PgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxSdW5Mb29wLmgi
CisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXFNhdHVy
YXRlZEFyaXRobWV0aWMuaCIKIAkJCT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYudmN4cHJvai9XVEYudmN4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZj
eHByb2oKaW5kZXggNmU3ZjRiMzgwNzAzYzRkYmRjZTAzNTM4NTNlYmI0YTJiMjA5NzM3MS4uNGQx
YzdhZWE3NGEyOWEwZDc5ZWU0OWI2MzViNjA0OGJmZWUxZjczOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9q
L1dURi52Y3hwcm9qCkBAIC02Niw2ICs2Niw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
Llx3dGZcUkFNU2l6ZS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFJh
bmRvbU51bWJlci5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFJlZkNv
dW50ZWRMZWFrQ291bnRlci5jcHAiIC8+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3Rm
XFJ1bkxvb3AuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxTSEExLmNw
cCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcU2l6ZUxpbWl0cy5jcHAiIC8+
DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFN0YWNrQm91bmRzLmNwcCIgLz4NCkBA
IC04OCw2ICs4OSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcdW5pY29kZVxV
VEY4LmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcd2luXE1haW5UaHJl
YWRXaW4uY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0Zlx3aW5cT3duUHRy
V2luLmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcd2luXFJ1bkxvb3BX
aW4uY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxXVEZUaHJlYWREYXRh
LmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcU2NoZWR1bGVQYWlyQ0Yu
Y3BwIiAvPg0KICAgPC9JdGVtR3JvdXA+DQpAQCAtMjAwLDYgKzIwMiw3IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcUmVmUHRyLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cd3RmXFJlZlB0ckhhc2hNYXAuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3dGZcUmV0YWluUHRyLmgiIC8+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJ1
bkxvb3AuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU2F0dXJhdGVkQXJp
dGhtZXRpYy5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTY2hlZHVsZVBh
aXIuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU2VnbWVudGVkVmVjdG9y
LmgiIC8+DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWMy
YmExZmQ3NzE5Njc1ZmQxYmQ3MWU3YjVmZWI5YWMxNzA1MGY5OS4uY2JlOTM4NjIyNWVlZTRmY2Nh
YTA3OTU0NmRhY2EwMDQxNDE1MjBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC00Nyw2ICs0Nyw5IEBACiAJCTFBNkJCNzY5MTYyRjMwMDUwMEREMTZEQiAv
KiBTdHJlYW1CdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBNkJCNzY4MTYyRjMwMDUwMEREMTZEQiAvKiBTdHJlYW1CdWZmZXIuaCAqLzsgfTsK
IAkJMjYxNDdCMEExNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MTQ3QjA4
MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggKi87IH07CiAJ
CTJDMDUzODU0MTVCQzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRlVGltZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwNTM4NTMxNUJDODE5MDAw
RjIxQjk2IC8qIEdyZWdvcmlhbkRhdGVUaW1lLmggKi87IH07CisJCTJDQjNFNzExMTczQUI4QkYw
MEFBN0JGRCAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJDQjNFNzBGMTczQUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29wLmNwcCAqLzsg
fTsKKwkJMkNCM0U3MTIxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQjNFNzEwMTczQUI4QkYwMEFBN0JG
RCAvKiBSdW5Mb29wLmggKi87IH07CisJCTJDQjNFNzE0MTczQUI4RUIwMEFBN0JGRCAvKiBSdW5M
b29wTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkNCM0U3MTMxNzNBQjhFQjAwQUE3QkZEIC8qIFJ1bkxvb3BNYWMubW0gKi87IH07CiAJCTJDQ0Q4
OTJBMTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0NEODkyOTE1QzAzOTAyMDAyODUw
ODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwICovOyB9OwogCQk0NEY2NjAwODE3MUFGQUU2MDBF
NEFEMTkgLyogRW51bUNsYXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NEY2NjAwNzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi87IH07
CiAJCTRGMDMyMUJDMTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2
IC8qIEJpdEFycmF5LmggKi87IH07CkBAIC0zMTAsNiArMzEzLDkgQEAKIAkJMUE2QkI3NjgxNjJG
MzAwNTAwREQxNkRCIC8qIFN0cmVhbUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdHJlYW1CdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYx
NDdCMDgxNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzA1Mzg1MzE1QkM4MTkwMDBGMjFCOTYg
LyogR3JlZ29yaWFuRGF0ZVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R3JlZ29yaWFuRGF0ZVRpbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCM0U3
MEYxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUnVuTG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJDQjNFNzEwMTczQUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29wLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJ1bkxvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkNCM0U3MTMxNzNBQjhFQjAwQUE3QkZEIC8qIFJ1bkxvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW5Mb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyQ0NEODkyOTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRp
bWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JlZ29yaWFuRGF0
ZVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NERFRTc0QTE1MjI3NEJC
MDBDNkVDMzcgLyogaU9TLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9
IGlPUy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRGNjYwMDcxNzFB
RkFBOTAwRTRBRDE5IC8qIEVudW1DbGFzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbnVtQ2xhc3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc0MCw2ICs3NDYsOCBAQAogCQkJCUE4QTQ3
MzAzMTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZQdHIuaCAqLywKIAkJCQlBOEE0NzMwNDE1MUE4MjVC
MDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5oICovLAogCQkJCUE4QTQ3MzA1MTUxQTgyNUIwMDQx
MjNGRiAvKiBSZXRhaW5QdHIuaCAqLywKKwkJCQkyQ0IzRTcwRjE3M0FCOEJGMDBBQTdCRkQgLyog
UnVuTG9vcC5jcHAgKi8sCisJCQkJMkNCM0U3MTAxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxvb3Au
aCAqLywKIAkJCQkxNDY5NDE5MDE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi8s
CiAJCQkJMTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAqLywK
IAkJCQkxNEYzQjBGNjE1RTQ1RTQ2MDAyMTAwNjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpYy5oICov
LApAQCAtODMzLDYgKzg0MSw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAogCQkJCUE4QTQ3MkM1MTUxQTgyNUEwMDQxMjNGRiAvKiBNYWluVGhyZWFkTWFjLm1tICovLAor
CQkJCTJDQjNFNzEzMTczQUI4RUIwMEFBN0JGRCAvKiBSdW5Mb29wTWFjLm1tICovLAogCQkJKTsK
IAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTAzNCw2ICsx
MDQzLDggQEAKIAkJCQlBOEE0NzQxQzE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOEE0NzQxRDE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MUUxNTFBODI1QjAwNDEyM0ZGIC8qIFJldGFpblB0
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkNCM0U3MTIxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxv
b3AuaCBpbiBIZWFkZXJzICovLAorCQkJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5M
b29wVGltZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RjNCMEY3MTVFNDVFNDYwMDIxMDA2OSAv
KiBTYXR1cmF0ZWRBcml0aG1ldGljLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ2NjE1MUE4
MjVCMDA0MTIzRkYgLyogU2NyaXB0Q29kZXNGcm9tSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEE0NzQxRjE1MUE4MjVCMDA0MTIzRkYgLyogU2VnbWVudGVkVmVjdG9yLmggaW4gSGVhZGVycyAq
LywKQEAgLTEyMTAsNiArMTIyMSw4IEBACiAJCQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8q
IFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MTQxNTFBODI1QjAwNDEyM0ZG
IC8qIFJhbmRvbU51bWJlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQxQTE1MUE4MjVC
MDA0MTIzRkYgLyogUmVmQ291bnRlZExlYWtDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTJDQjNFNzExMTczQUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTJDQjNFNzE0MTczQUI4RUIwMEFBN0JGRCAvKiBSdW5Mb29wTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThBNDc0MjExNTFBODI1QjAwNDEyM0ZGIC8qIFNIQTEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThBNDc0MjUxNTFBODI1QjAwNDEyM0ZGIC8qIFNpemVMaW1pdHMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQThBNDc0MjcxNTFBODI1QjAwNDEyM0ZGIC8qIFN0YWNrQm91bmRzLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA1YmNkMzM2Y2VkMjM3MDg5
MWU1Mzc2MGU4NDNjNmU2MjA4NjU3NWFhLi4yMGE2N2IwNmJlZGNiZmI0MmVmM2U3ZWI5NGJmMzI2
NDc2YjcyMmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNTYsNiArNTYsNyBAQCBzZXQoV1RG
X0hFQURFUlMKICAgICBOdWxsUHRyLmgKICAgICBOdW1iZXJPZkNvcmVzLmgKICAgICBSQU1TaXpl
LmgKKyAgICBSdW5Mb29wLmgKICAgICBPU0FsbG9jYXRvci5oCiAgICAgT1NSYW5kb21Tb3VyY2Uu
aAogICAgIE93bkFycmF5UHRyLmgKQEAgLTE2Nyw2ICsxNjgsNyBAQCBzZXQoV1RGX1NPVVJDRVMK
ICAgICBPU1JhbmRvbVNvdXJjZS5jcHAKICAgICBOdW1iZXJPZkNvcmVzLmNwcAogICAgIFJBTVNp
emUuY3BwCisgICAgUnVuTG9vcC5jcHAKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwCiAg
ICAgUGFnZUJsb2NrLmNwcAogICAgIFBhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggZmI5Y2M1MTJkNWUyNDdmMzU5ZjI2M2Uy
Y2VjOGYwMzA3YjcyNGZlZS4uN2QxNGU3YWQ5NDc2MjY4ZDkyOGE3ZGY5NTRlOTVmNDFhNmY1OGUz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtMSw1ICsxLDYg
QEAKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgYmxhY2tiZXJyeS9NYWluVGhyZWFkQmxh
Y2tCZXJyeS5jcHAKKyAgICBibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcAogKQogCiBs
aXN0KElOU0VSVCBXVEZfSU5DTFVERV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNt
YWtlCmluZGV4IGM1OWY0OTcyZjc2YWM0YTZkY2ZjNjA3OGIwZjhiNzBjOWY2MzY5MzkuLjk4M2Vl
OWU3NzI2YWM3MmNiOGQxYWZlOTNlMmFmNGYxMGYwYmUzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZs
LmNtYWtlCkBAIC0yLDYgKzIsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGVmbC9N
YWluVGhyZWFkRWZsLmNwcAogICAgIGVmbC9Pd25QdHJFZmwuY3BwCiAgICAgZWZsL1JlZlB0ckVm
bC5jcHAKKyAgICBlZmwvUnVuTG9vcEVmbC5jcHAKIAogICAgIGdvYmplY3QvR093blB0ci5jcHAK
ICAgICBnb2JqZWN0L0dSZWZQdHIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDUw
MDIxNmU3NTJhYWE0NDIwNDEyNDQ1NTk2ODY0ZWJlMDdmNjg1ODkuLmQ1YjZkMDMxNjFhY2RmOGJm
OGE0NDA0ZDNiNTM1Mzg2ODRiNWNiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC00
LDYgKzQsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGdvYmplY3QvR1JlZlB0ci5j
cHAKIAogICAgIGd0ay9NYWluVGhyZWFkR3RrLmNwcAorICAgIGd0ay9SdW5Mb29wR3RrLmNwcAog
KQogCiBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybVdpbkNFLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1XaW5DRS5jbWFr
ZQppbmRleCA2YTkxYzUwYzFiN2NmNDJkZWMzOWE3MTg4NjQ4ZTgwNmQ3ZDExZDg2Li5iZmVlMjZj
MDFhM2E1NTQyZDJiNDJmMWFiMDkxNzNiZGVmYmI3OWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybVdpbkNFLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2lu
Q0UuY21ha2UKQEAgLTIsNiArMiw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdGhy
ZWFkcy93aW4vQmluYXJ5U2VtYXBob3JlV2luLmNwcAogCiAgICAgd2luL01haW5UaHJlYWRXaW4u
Y3BwCisgICAgd2luL1J1bkxvb3BXaW4uY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJ
RVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwIGIvU291cmNlL1dURi93
dGYvUnVuTG9vcC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhmYjljODBlZDc3YmI5YjRlODBlYzc1ZDEwNDQ2
Njc3N2UyNDM4MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3Bw
CkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNs
dWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiAhUExB
VEZPUk0oTUFDKQordm9pZCBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5S
dW5Mb29wKCkKK3sKK30KKyNlbmRpZgorCitzdGF0aWMgUnVuTG9vcCogc19tYWluUnVuTG9vcDsK
KworLy8gSGVscGVyIGNsYXNzIGZvciBUaHJlYWRTcGVjaWZpY0RhdGEuCitjbGFzcyBSdW5Mb29w
OjpIb2xkZXIgeworcHVibGljOgorICAgIEhvbGRlcigpCisgICAgICAgIDogbV9ydW5Mb29wKGFk
b3B0UmVmKG5ldyBSdW5Mb29wKSkKKyAgICB7CisgICAgfQorCisgICAgUnVuTG9vcCogcnVuTG9v
cCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuTG9vcC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJl
ZlB0cjxSdW5Mb29wPiBtX3J1bkxvb3A7Cit9OworCit2b2lkIFJ1bkxvb3A6OmluaXRpYWxpemVN
YWluUnVuTG9vcCgpCit7CisgICAgaWYgKHNfbWFpblJ1bkxvb3ApCisgICAgICAgIHJldHVybjsK
KyAgICBzX21haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworfQorCitSdW5Mb29wKiBS
dW5Mb29wOjpjdXJyZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VGhyZWFk
U3BlY2lmaWM8UnVuTG9vcDo6SG9sZGVyPiwgcnVuTG9vcEhvbGRlciwgKCkpOworICAgIHJldHVy
biBydW5Mb29wSG9sZGVyLT5ydW5Mb29wKCk7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6Om1haW4o
KQoreworICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKKyAgICByZXR1cm4gc19tYWluUnVuTG9v
cDsKK30KKwordm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCit7CisgICAgLy8gSXQgaXMgaW1w
b3J0YW50IHRvIGhhbmRsZSB0aGUgZnVuY3Rpb25zIGluIHRoZSBxdWV1ZSBvbmUgYXQgYSB0aW1l
IGJlY2F1c2Ugd2hpbGUgaW5zaWRlIG9uZSBvZiB0aGVzZQorICAgIC8vIGZ1bmN0aW9ucyB3ZSBt
aWdodCByZS1lbnRlciBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGFuZCB3ZSBuZWVkIHRvIGJlIGFi
bGUgdG8gcGljayB1cCB3aGVyZSB3ZSBsZWZ0IG9mZi4KKyAgICAvLyBTZWUgaHR0cDovL3dlYmtp
dC5vcmcvYi84OTU5MCBmb3IgbW9yZSBkaXNjdXNzaW9uLgorCisgICAgLy8gT25lIHBvc3NpYmxl
IHNjZW5hcmlvIHdoZW4gaGFuZGxpbmcgdGhlIGZ1bmN0aW9uIHF1ZXVlIGlzIGFzIGZvbGxvd3M6
CisgICAgLy8gLSBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGlzIGludm9rZWQgd2l0aCAxIGZ1bmN0
aW9uIG9uIHRoZSBxdWV1ZQorICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBmdW5jdGlvbiByZXN1bHRz
IGluIDEgbW9yZSBmdW5jdGlvbiBiZWluZyBlbnF1ZXVlZAorICAgIC8vIC0gSGFuZGxpbmcgdGhh
dCBvbmUgcmVzdWx0cyBpbiB5ZXQgYW5vdGhlciBiZWluZyBlbnF1ZXVlZAorICAgIC8vIC0gQW5k
IHNvIG9uCisgICAgLy8KKyAgICAvLyBJbiB0aGlzIHNpdHVhdGlvbiBvbmUgaW52b2NhdGlvbiBv
ZiBwZXJmb3JtV29yaygpIG5ldmVyIHJldHVybnMgc28gYWxsIG90aGVyIGV2ZW50IHNvdXJjZXMg
YXJlIGJsb2NrZWQuCisgICAgLy8gQnkgb25seSBoYW5kbGluZyB1cCB0byB0aGUgbnVtYmVyIG9m
IGZ1bmN0aW9ucyB0aGF0IHdlcmUgaW4gdGhlIHF1ZXVlIHdoZW4gcGVyZm9ybVdvcmsoKSBpcyBj
YWxsZWQKKyAgICAvLyB3ZSBndWFyYW50ZWUgdG8gb2NjYXNpb25hbGx5IHJldHVybiBmcm9tIHRo
ZSBydW4gbG9vcCBzbyBvdGhlciBldmVudCBzb3VyY2VzIHdpbGwgYmUgYWxsb3dlZCB0byBzcGlu
LgorCisgICAgRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbjsKKyAgICBzaXplX3QgZnVuY3Rpb25z
VG9IYW5kbGUgPSAwOworCisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5j
dGlvblF1ZXVlTG9jayk7CisgICAgICAgIGZ1bmN0aW9uc1RvSGFuZGxlID0gbV9mdW5jdGlvblF1
ZXVlLnNpemUoKTsKKworICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmdW5jdGlvbiA9IG1fZnVuY3Rpb25RdWV1ZS50
YWtlRmlyc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbigpOworCisgICAgZm9yIChzaXplX3Qg
ZnVuY3Rpb25zSGFuZGxlZCA9IDE7IGZ1bmN0aW9uc0hhbmRsZWQgPCBmdW5jdGlvbnNUb0hhbmRs
ZTsgKytmdW5jdGlvbnNIYW5kbGVkKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKKworICAgICAgICAgICAgLy8gRXZlbiBp
ZiB3ZSBzdGFydCBvZmYgd2l0aCBOIGZ1bmN0aW9ucyB0byBoYW5kbGUgYW5kIHdlJ3ZlIG9ubHkg
aGFuZGxlZCBsZXNzIHRoYW4gTiBmdW5jdGlvbnMsIHRoZSBxdWV1ZQorICAgICAgICAgICAgLy8g
c3RpbGwgbWlnaHQgYmUgZW1wdHkgYmVjYXVzZSB0aG9zZSBmdW5jdGlvbnMgbWlnaHQgaGF2ZSBi
ZWVuIGhhbmRsZWQgaW4gYW4gaW5uZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKS4KKyAgICAgICAg
ICAgIC8vIEluIHRoYXQgY2FzZSB3ZSBzaG91bGQgYmFpbCBoZXJlLgorICAgICAgICAgICAgaWYg
KG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uID0gbV9mdW5jdGlvblF1ZXVlLnRha2VGaXJzdCgpOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbigpOworICAgIH0KK30KKwordm9pZCBSdW5M
b29wOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAgICBN
dXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7CisgICAgbV9mdW5jdGlvblF1
ZXVlLmFwcGVuZChmdW5jdGlvbik7CisKKyAgICB3YWtlVXAoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RG
L3d0Zi9SdW5Mb29wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI0ZjFhMzhmOWY2NDI4NGYyZjExN2VmNGVlNWM0
YjQxZDU2MzhjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApA
QCAtMCwwICsxLDE4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgUnVuTG9vcF9oCisjZGVmaW5lIFJ1bkxvb3BfaAorCisjaW5jbHVkZSA8
d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvRnVu
Y3Rpb25EaXNwYXRjaGVyLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8d3RmL2dvYmpl
Y3QvR1JlZlB0ci5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8RWNv
cmUuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUnVuTG9vcCA6IHB1Ymxp
YyBGdW5jdGlvbkRpc3BhdGNoZXIgeworcHVibGljOgorICAgIC8vIE11c3QgYmUgY2FsbGVkIGZy
b20gdGhlIG1haW4gdGhyZWFkIChleGNlcHQgZm9yIHRoZSBNYWMgcGxhdGZvcm0sIHdoZXJlIGl0
CisgICAgLy8gY2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQpLgorICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAgIC8vIE11
c3QgYmUgY2FsbGVkIGJlZm9yZSBlbnRlcmluZyBtYWluIHJ1biBsb29wLiBJZiBjYWxsZWQsIGFw
cGxpY2F0aW9uIHN0eWxlIHJ1biBsb29wIHdpbGwgYmUgdXNlZCwgaGFuZGxpbmcgZXZlbnRzLgor
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBzZXRVc2VBcHBsaWNhdGlvblJ1bkxv
b3BPbk1haW5SdW5Mb29wKCk7CisKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJ1bkxv
b3AqIGN1cnJlbnQoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJ1bkxvb3AqIG1h
aW4oKTsKKyAgICB+UnVuTG9vcCgpOworCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JikgT1ZFUlJJREU7CisKKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgcnVuKCk7CisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgc3RvcCgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdha2VVcCgpOwor
CisjaWYgUExBVEZPUk0oTUFDKQorICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJ1bkZvckR1
cmF0aW9uKGRvdWJsZSBkdXJhdGlvbik7CisjZW5kaWYKKworICAgIGNsYXNzIFRpbWVyQmFzZSB7
CisgICAgICAgIGZyaWVuZCBjbGFzcyBSdW5Mb29wOworICAgIHB1YmxpYzoKKyAgICAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFRpbWVyQmFzZShSdW5Mb29wKik7CisgICAgICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5UaW1lckJhc2UoKTsKKworICAgICAgICB2b2lkIHN0
YXJ0UmVwZWF0aW5nKGRvdWJsZSByZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZh
bCwgdHJ1ZSk7IH0KKyAgICAgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7
IHN0YXJ0KGludGVydmFsLCBmYWxzZSk7IH0KKworICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBzdG9wKCk7CisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzQWN0aXZlKCkg
Y29uc3Q7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOworCisgICAgcHJpdmF0
ZToKKyAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJl
SW50ZXJ2YWwsIGJvb2wgcmVwZWF0KTsKKworICAgICAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisK
KyNpZiBQTEFURk9STShXSU4pCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9v
cCosIHVpbnQ2NF90IElEKTsKKyAgICAgICAgdWludDY0X3QgbV9JRDsKKyAgICAgICAgYm9vbCBt
X2lzUmVwZWF0aW5nOworI2VsaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBzdGF0aWMgdm9pZCB0
aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CisgICAgICAgIFJldGFpblB0cjxD
RlJ1bkxvb3BUaW1lclJlZj4gbV90aW1lcjsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgICAgICBz
dGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1bkxvb3AqLCBpbnQgSUQpOworICAgICAgICBpbnQgbV9J
RDsKKyAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOworI2VsaWYgUExBVEZPUk0oR1RLKQorICAg
ICAgICBzdGF0aWMgZ2Jvb2xlYW4gdGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFz
ZSopOworICAgICAgICBnYm9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNS
ZXBlYXRpbmc7IH0KKyAgICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7CisgICAgICAgIEdS
ZWZQdHI8R1NvdXJjZT4gbV90aW1lclNvdXJjZTsKKyAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVh
dGluZzsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICAgICAgc3RhdGljIGJvb2wgdGltZXJGaXJl
ZCh2b2lkKiBkYXRhKTsKKyAgICAgICAgRWNvcmVfVGltZXIqIG1fdGltZXI7CisgICAgICAgIGJv
b2wgbV9pc1JlcGVhdGluZzsKKyNlbmRpZgorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVGltZXJGaXJlZENsYXNzPgorICAgIGNsYXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7
CisgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRp
bWVyRmlyZWRGdW5jdGlvbikoKTsKKworICAgICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBU
aW1lckZpcmVkQ2xhc3MqIG8sIFRpbWVyRmlyZWRGdW5jdGlvbiBmKQorICAgICAgICAgICAgOiBU
aW1lckJhc2UocnVuTG9vcCkKKyAgICAgICAgICAgICwgbV9vYmplY3QobykKKyAgICAgICAgICAg
ICwgbV9mdW5jdGlvbihmKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpIHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsg
fQorCisgICAgICAgIFRpbWVyRmlyZWRDbGFzcyogbV9vYmplY3Q7CisgICAgICAgIFRpbWVyRmly
ZWRGdW5jdGlvbiBtX2Z1bmN0aW9uOworICAgIH07CisKKyAgICBjbGFzcyBIb2xkZXI7CisKK3By
aXZhdGU6CisgICAgUnVuTG9vcCgpOworCisgICAgdm9pZCBwZXJmb3JtV29yaygpOworCisgICAg
TXV0ZXggbV9mdW5jdGlvblF1ZXVlTG9jazsKKyAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+ID4g
bV9mdW5jdGlvblF1ZXVlOworCisjaWYgUExBVEZPUk0oV0lOKQorICAgIHN0YXRpYyBib29sIHJl
Z2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcygpOworICAgIHN0YXRpYyBMUkVTVUxUIENB
TExCQUNLIFJ1bkxvb3BXbmRQcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKKyAgICBM
UkVTVUxUIHduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQ
QVJBTSBsUGFyYW0pOworICAgIEhXTkQgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdzsKKworICAgIHR5
cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgVGltZXJCYXNlKj4gVGltZXJNYXA7CisgICAgVGltZXJN
YXAgbV9hY3RpdmVUaW1lcnM7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIHZvaWQg
cGVyZm9ybVdvcmsodm9pZCopOworICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fcnVuTG9v
cDsKKyAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wU291cmNlUmVmPiBtX3J1bkxvb3BTb3VyY2U7Cisg
ICAgaW50IG1fbmVzdGluZ0xldmVsOworI2VsaWYgUExBVEZPUk0oUVQpCisgICAgdHlwZWRlZiBI
YXNoTWFwPGludCwgVGltZXJCYXNlKj4gVGltZXJNYXA7CisgICAgVGltZXJNYXAgbV9hY3RpdmVU
aW1lcnM7CisgICAgY2xhc3MgVGltZXJPYmplY3Q7CisgICAgVGltZXJPYmplY3QqIG1fdGltZXJP
YmplY3Q7CisjZWxpZiBQTEFURk9STShHVEspCitwdWJsaWM6CisgICAgc3RhdGljIGdib29sZWFu
IHF1ZXVlV29yayhSdW5Mb29wKik7CisgICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wKCk7Cisg
ICAgdm9pZCBwdXNoTmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKik7CisgICAgdm9pZCBwb3BOZXN0
ZWRNYWluTG9vcCgpOworcHJpdmF0ZToKKyAgICBHUmVmUHRyPEdNYWluQ29udGV4dD4gbV9ydW5M
b29wQ29udGV4dDsKKyAgICBWZWN0b3I8R1JlZlB0cjxHTWFpbkxvb3A+ID4gbV9ydW5Mb29wTWFp
bkxvb3BzOworI2VsaWYgUExBVEZPUk0oRUZMKQorICAgIGJvb2wgbV9pbml0RWZsOworCisgICAg
TXV0ZXggbV9waXBlTG9jazsKKyAgICBPd25QdHI8RWNvcmVfUGlwZT4gbV9waXBlOworCisgICAg
TXV0ZXggbV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2s7CisgICAgYm9vbCBtX3dha2VVcEV2ZW50
UmVxdWVzdGVkOworCisgICAgc3RhdGljIHZvaWQgd2FrZVVwRXZlbnQodm9pZCogZGF0YSwgdm9p
ZCosIHVuc2lnbmVkIGludCk7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1
c2luZyBXVEY6OlJ1bkxvb3A7CisKKyNlbmRpZiAvLyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1dpbmRvd3NFeHRyYXMuaCBiL1NvdXJjZS9XVEYvd3RmL1dpbmRvd3NFeHRy
YXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZmM2YjIwMWMzMzU5M2NmOGVjNmQ0MzAzNzg3NTdlYTIzZWM0OWEw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvV2luZG93c0V4dHJhcy5oCkBAIC0w
LDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUGF0cmljayBHYW5zdGVyZXIg
PHBhcm9nYUBwYXJvZ2EuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV2luZG93c0V4dHJhc19oCisjZGVmaW5lIFdpbmRvd3NF
eHRyYXNfaAorCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPG9iamJhc2UuaD4KKyNp
bmNsdWRlIDxzaGx3YXBpLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisjaWZuZGVmIEhXTkRfTUVT
U0FHRQorY29uc3QgSFdORCBIV05EX01FU1NBR0UgPSAwOworI2VuZGlmCisKK2lubGluZSBIUkVT
VUxUIGdldFJlZ2lzdHJ5VmFsdWUoSEtFWSBoa2V5LCBMUENXU1RSIHBzelN1YktleSwgTFBDV1NU
UiBwc3pWYWx1ZSwgTFBEV09SRCBwZHdUeXBlLCBMUFZPSUQgcHZEYXRhLCBMUERXT1JEIHBjYkRh
dGEpCit7CisjaWYgT1MoV0lOQ0UpCisgICAgSEtFWSBrZXk7CisgICAgaWYgKDo6UmVnT3Blbktl
eUV4Vyhoa2V5LCBwc3pTdWJLZXksIDAsIDAsICZrZXkpICE9IEVSUk9SX1NVQ0NFU1MpCisgICAg
ICAgIHJldHVybiBFUlJPUl9JTlZBTElEX05BTUU7CisgICAgSFJFU1VMVCByZXN1bHQgPSA6OlJl
Z1F1ZXJ5VmFsdWVFeFcoa2V5LCBwc3pWYWx1ZSwgMCwgcGR3VHlwZSwgc3RhdGljX2Nhc3Q8TFBC
WVRFPihwdkRhdGEpLCBwY2JEYXRhKTsKKyAgICA6OlJlZ0Nsb3NlS2V5KGtleSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKKyNlbHNlCisgICAgcmV0dXJuIDo6U0hHZXRWYWx1ZVcoaGtleSwgcHN6U3Vi
S2V5LCBwc3pWYWx1ZSwgcGR3VHlwZSwgcHZEYXRhLCBwY2JEYXRhKTsKKyNlbmRpZgorfQorCitp
bmxpbmUgdm9pZCogZ2V0V2luZG93UG9pbnRlcihIV05EIGhXbmQsIGludCBpbmRleCkKK3sKKyNp
ZiBPUyhXSU5DRSkKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oOjpHZXRXaW5k
b3dMb25nKGhXbmQsIGluZGV4KSk7CisjZWxzZQorICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PHZvaWQqPig6OkdldFdpbmRvd0xvbmdQdHIoaFduZCwgaW5kZXgpKTsKKyNlbmRpZgorfQorCitp
bmxpbmUgdm9pZCogc2V0V2luZG93UG9pbnRlcihIV05EIGhXbmQsIGludCBpbmRleCwgdm9pZCog
dmFsdWUpCit7CisjaWYgT1MoV0lOQ0UpCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KDo6U2V0V2luZG93TG9uZyhoV25kLCBpbmRleCwgcmVpbnRlcnByZXRfY2FzdDxMT05HPih2
YWx1ZSkpKTsKKyNlbHNlCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDo6U2V0
V2luZG93TG9uZ1B0cihoV25kLCBpbmRleCwgcmVpbnRlcnByZXRfY2FzdDxMT05HX1BUUj4odmFs
dWUpKSk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6Z2V0
UmVnaXN0cnlWYWx1ZTsKK3VzaW5nIFdURjo6Z2V0V2luZG93UG9pbnRlcjsKK3VzaW5nIFdURjo6
c2V0V2luZG93UG9pbnRlcjsKKworI2VuZGlmIC8vIFdpbmRvd3NFeHRyYXNfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
MmI4NmI1YjUxMTg1MTc3MDQyNWY0ZDkyOGYzZGY4NWRmMWRlNDZiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKQEAgLTAs
MCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJT04gZW1iZWRkZWQg
c3lzdGVtcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RGIHsKKworUnVuTG9vcDo6UnVuTG9vcCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL2VmbC9SdW5Mb29wRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9SdW5Mb29w
RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wYzA5N2Y4NmFmNzI4ZjVmOGJlMWQzYmJhZDE0M2QyYzA1MWNl
NjUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3Bw
CkBAIC0wLDAgKzEsMTM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBl
bWJlZGRlZCBzeXN0ZW1zLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDxFY29yZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCitzdGF0
aWMgY29uc3QgaW50IGVjb3JlUGlwZU1lc3NhZ2VTaXplID0gMTsKK3N0YXRpYyBjb25zdCBjaGFy
IHdha3VwRWNvcmVQaXBlTWVzc2FnZVtdID0gIlciOworCituYW1lc3BhY2UgV1RGIHsKKworUnVu
TG9vcDo6UnVuTG9vcCgpCisgICAgOiBtX2luaXRFZmwoZmFsc2UpCisgICAgLCBtX3dha2VVcEV2
ZW50UmVxdWVzdGVkKGZhbHNlKQoreworICAgIG1fcGlwZSA9IGFkb3B0UHRyKGVjb3JlX3BpcGVf
YWRkKHdha2VVcEV2ZW50LCB0aGlzKSk7CisgICAgbV9pbml0RWZsID0gdHJ1ZTsKK30KKworUnVu
TG9vcDo6flJ1bkxvb3AoKQoreworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7CisgICAgZWNv
cmVfbWFpbl9sb29wX2JlZ2luKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAg
ZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXBFdmVudCh2
b2lkKiBkYXRhLCB2b2lkKiwgdW5zaWduZWQgaW50KQoreworICAgIFJ1bkxvb3AqIGxvb3AgPSBz
dGF0aWNfY2FzdDxSdW5Mb29wKj4oZGF0YSk7CisKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihsb29wLT5tX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jayk7CisgICAgICAgIGxvb3At
Pm1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBsb29wLT5wZXJm
b3JtV29yaygpOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgeworICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2spOworICAgICAg
ICBpZiAobV93YWtlVXBFdmVudFJlcXVlc3RlZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgbV93YWtlVXBFdmVudFJlcXVlc3RlZCA9IHRydWU7CisgICAgfQorCisgICAgeworICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9waXBlTG9jayk7CisgICAgICAgIGVjb3JlX3BpcGVfd3Jp
dGUobV9waXBlLmdldCgpLCB3YWt1cEVjb3JlUGlwZU1lc3NhZ2UsIGVjb3JlUGlwZU1lc3NhZ2VT
aXplKTsKKyAgICB9Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3Aq
KQorICAgIDogbV90aW1lcigwKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKK3sKK30KKwor
UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK2Jv
b2wgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHZvaWQqIGRhdGEpCit7CisgICAgUnVu
TG9vcDo6VGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFJ1bkxvb3A6OlRpbWVyQmFzZSo+
KGRhdGEpOworCisgICAgdGltZXItPmZpcmVkKCk7CisKKyAgICBpZiAoIXRpbWVyLT5tX2lzUmVw
ZWF0aW5nKSB7CisgICAgICAgIHRpbWVyLT5tX3RpbWVyID0gMDsKKyAgICAgICAgcmV0dXJuIEVD
T1JFX0NBTExCQUNLX0NBTkNFTDsKKyAgICB9CisKKyAgICByZXR1cm4gRUNPUkVfQ0FMTEJBQ0tf
UkVORVc7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZp
cmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgaWYgKGlzQWN0aXZlKCkpCisgICAgICAg
IHN0b3AoKTsKKworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgQVNTRVJUKCFtX3Rp
bWVyKTsKKyAgICBtX3RpbWVyID0gZWNvcmVfdGltZXJfYWRkKG5leHRGaXJlSW50ZXJ2YWwsIHJl
aW50ZXJwcmV0X2Nhc3Q8RWNvcmVfVGFza19DYj4odGltZXJGaXJlZCksIHRoaXMpOworfQorCit2
b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKG1fdGltZXIpIHsKKyAg
ICAgICAgZWNvcmVfdGltZXJfZGVsKG1fdGltZXIpOworICAgICAgICBtX3RpbWVyID0gMDsKKyAg
ICB9Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIChtX3RpbWVyKSA/IHRydWUgOiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9ndGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9ndGsvUnVuTG9vcEd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M0MzUyNzhiMjc3NTQy
YWFiYTk0M2IxNmY5NGVjMzA1ZDk0NDNmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL2d0ay9SdW5Mb29wR3RrLmNwcApAQCAtMCwwICsxLDE3MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBD
b3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29w
LmgiCisKKyNpbmNsdWRlIDxnZGsvZ2RrLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorCisjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK1J1bkxvb3A6OlJ1bkxv
b3AoKQoreworICAgIC8vIGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKSBkb2Vzbid0IGFkZCBhbiBl
eHRyYSByZWZlcmVuY2UuCisgICAgbV9ydW5Mb29wQ29udGV4dCA9IGlzTWFpblRocmVhZCgpID8g
Z19tYWluX2NvbnRleHRfZGVmYXVsdCgpIDogYWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0X25ldygp
KTsKKyAgICBBU1NFUlQobV9ydW5Mb29wQ29udGV4dCk7CisgICAgR1JlZlB0cjxHTWFpbkxvb3A+
IGlubmVybW9zdExvb3AgPSBhZG9wdEdSZWYoZ19tYWluX2xvb3BfbmV3KG1fcnVuTG9vcENvbnRl
eHQuZ2V0KCksIEZBTFNFKSk7CisgICAgQVNTRVJUKGlubmVybW9zdExvb3ApOworICAgIG1fcnVu
TG9vcE1haW5Mb29wcy5hcHBlbmQoaW5uZXJtb3N0TG9vcCk7Cit9CisKK1J1bkxvb3A6On5SdW5M
b29wKCkKK3sKKyAgICBmb3IgKGludCBpID0gbV9ydW5Mb29wTWFpbkxvb3BzLnNpemUoKSAtIDE7
IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIGlmICghZ19tYWluX2xvb3BfaXNfcnVubmluZyhtX3J1
bkxvb3BNYWluTG9vcHNbaV0uZ2V0KCkpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGdfbWFpbl9sb29wX3F1aXQobV9ydW5Mb29wTWFpbkxvb3BzW2ldLmdldCgpKTsKKyAgICB9Cit9
CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBSdW5Mb29wKiBtYWluUnVuTG9vcCA9IFJ1
bkxvb3A6OmN1cnJlbnQoKTsKKyAgICBHTWFpbkxvb3AqIGlubmVybW9zdExvb3AgPSBtYWluUnVu
TG9vcC0+aW5uZXJtb3N0TG9vcCgpOworICAgIGlmICghZ19tYWluX2xvb3BfaXNfcnVubmluZyhp
bm5lcm1vc3RMb29wKSkgeworICAgICAgICBnX21haW5fbG9vcF9ydW4oaW5uZXJtb3N0TG9vcCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBDcmVhdGUgYW5kIHJ1biBhIG5lc3Rl
ZCBsb29wIGlmIHRoZSBpbm5lcm1vc3Qgb25lIHdhcyBhbHJlYWR5IHJ1bm5pbmcuCisgICAgR01h
aW5Mb29wKiBuZXN0ZWRNYWluTG9vcCA9IGdfbWFpbl9sb29wX25ldygwLCBGQUxTRSk7CisgICAg
bWFpblJ1bkxvb3AtPnB1c2hOZXN0ZWRNYWluTG9vcChuZXN0ZWRNYWluTG9vcCk7CisgICAgZ19t
YWluX2xvb3BfcnVuKG5lc3RlZE1haW5Mb29wKTsKKyAgICBtYWluUnVuTG9vcC0+cG9wTmVzdGVk
TWFpbkxvb3AoKTsKK30KKworR01haW5Mb29wKiBSdW5Mb29wOjppbm5lcm1vc3RMb29wKCkKK3sK
KyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgor
ICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgcmV0dXJuIG1f
cnVuTG9vcE1haW5Mb29wc1swXS5nZXQoKTsKK30KKwordm9pZCBSdW5Mb29wOjpwdXNoTmVzdGVk
TWFpbkxvb3AoR01haW5Mb29wKiBuZXN0ZWRMb29wKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3Qg
bWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BN
YWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBtX3J1bkxvb3BNYWluTG9vcHMuYXBwZW5kKGFkb3B0
R1JlZihuZXN0ZWRMb29wKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cG9wTmVzdGVkTWFpbkxvb3Ao
KQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhl
cmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBtX3J1
bkxvb3BNYWluTG9vcHMucmVtb3ZlTGFzdCgpOworfQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQor
eworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUu
CisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBHUmVmUHRy
PEdNYWluTG9vcD4gbGFzdE1haW5Mb29wID0gbV9ydW5Mb29wTWFpbkxvb3BzLmxhc3QoKTsKKyAg
ICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmluZyhsYXN0TWFpbkxvb3AuZ2V0KCkpKQorICAgICAg
ICBnX21haW5fbG9vcF9xdWl0KGxhc3RNYWluTG9vcC5nZXQoKSk7Cit9CisKK2dib29sZWFuIFJ1
bkxvb3A6OnF1ZXVlV29yayhSdW5Mb29wKiBydW5Mb29wKQoreworICAgIHJ1bkxvb3AtPnBlcmZv
cm1Xb3JrKCk7CisgICAgcmV0dXJuIEZBTFNFOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgp
Cit7CisgICAgR1JlZlB0cjxHU291cmNlPiBzb3VyY2UgPSBhZG9wdEdSZWYoZ19pZGxlX3NvdXJj
ZV9uZXcoKSk7CisgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNvdXJjZS5nZXQoKSwgR19QUklP
UklUWV9ERUZBVUxUKTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2soc291cmNlLmdldCgpLCBy
ZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6cXVldWVXb3JrKSwgdGhpcywg
MCk7CisgICAgZ19zb3VyY2VfYXR0YWNoKHNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wQ29udGV4dC5n
ZXQoKSk7CisKKyAgICBnX21haW5fY29udGV4dF93YWtldXAobV9ydW5Mb29wQ29udGV4dC5nZXQo
KSk7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3Ap
CisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKKyAgICAsIG1fdGltZXJTb3VyY2UoMCkKK3sKK30K
KworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisK
K3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKCkKK3sKKyAgICBtX3Rp
bWVyU291cmNlID0gMDsKK30KKworZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZp
cmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJCYXNlKiB0aW1lcikKK3sKKyAgICBHU291cmNlKiBj
dXJyZW50VGltZXJTb3VyY2UgPSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKTsKKyAgICBib29s
IGlzUmVwZWF0aW5nID0gdGltZXItPmlzUmVwZWF0aW5nKCk7CisgICAgLy8gVGhpcyBjYW4gY2hh
bmdlIHRoZSB0aW1lclNvdXJjZSBieSBzdGFydGluZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhlIGNh
bGxiYWNrLgorICAgIHRpbWVyLT5maXJlZCgpOworICAgIGlmICghaXNSZXBlYXRpbmcgJiYgY3Vy
cmVudFRpbWVyU291cmNlID09IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpKQorICAgICAgICB0
aW1lci0+Y2xlYXJUaW1lclNvdXJjZSgpOworICAgIHJldHVybiBpc1JlcGVhdGluZzsKK30KKwor
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wg
cmVwZWF0KQoreworICAgIGlmIChtX3RpbWVyU291cmNlKQorICAgICAgICBzdG9wKCk7CisKKyAg
ICBtX3RpbWVyU291cmNlID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19j
YXN0PGd1aW50PihmaXJlSW50ZXJ2YWwgKiAxMDAwKSkpOworICAgIG1faXNSZXBlYXRpbmcgPSBy
ZXBlYXQ7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJl
aW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmly
ZWRDYWxsYmFjayksIHRoaXMsIDApOworICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNl
LmdldCgpLCBtX3J1bkxvb3AtPm1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOworfQorCit2b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX3RpbWVyU291cmNlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBnX3NvdXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkp
OworICAgIGNsZWFyVGltZXJTb3VyY2UoKTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6
OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90aW1lclNvdXJjZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9tYWMvUnVuTG9vcE1h
Yy5tbSBiL1NvdXJjZS9XVEYvd3RmL21hYy9SdW5Mb29wTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1M2Iw
MmRmZjFiMGQxODdkZTliNjVkMzQ0MjM0NGQ0OTNiMTgzYjAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9tYWMvUnVuTG9vcE1hYy5tbQpAQCAtMCwwICsxLDE2MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUnVuTG9vcC5oIgorCisj
aW1wb3J0ICJBdXRvZHJhaW5lZFBvb2wuaCIKKyNpZiAhUExBVEZPUk0oSU9TKQorI2ltcG9ydCA8
QXBwS2l0L0FwcEtpdC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgYm9v
bCBzX3VzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3A7CisKK3ZvaWQgUnVuTG9vcDo6
c2V0VXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCgpCit7CisgICAgc191c2VBcHBs
aWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wID0gdHJ1ZTsKK30KKwordm9pZCBSdW5Mb29wOjpw
ZXJmb3JtV29yayh2b2lkKiBjb250ZXh0KQoreworICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwor
ICAgIHN0YXRpY19jYXN0PFJ1bkxvb3AqPihjb250ZXh0KS0+cGVyZm9ybVdvcmsoKTsKK30KKwor
UnVuTG9vcDo6UnVuTG9vcCgpCisgICAgOiBtX3J1bkxvb3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgp
KQorICAgICwgbV9uZXN0aW5nTGV2ZWwoMCkKK3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VDb250ZXh0
IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIHBlcmZvcm1Xb3JrIH07
CisgICAgbV9ydW5Mb29wU291cmNlID0gYWRvcHRDRihDRlJ1bkxvb3BTb3VyY2VDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgMCwgJmNvbnRleHQpKTsKKyAgICBDRlJ1bkxvb3BBZGRTb3VyY2Uo
bV9ydW5Mb29wLmdldCgpLCBtX3J1bkxvb3BTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25N
b2Rlcyk7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VJ
bnZhbGlkYXRlKG1fcnVuTG9vcFNvdXJjZS5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVu
Rm9yRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQoreworICAgIENGUnVuTG9vcFJ1bkluTW9kZShr
Q0ZSdW5Mb29wRGVmYXVsdE1vZGUsIGR1cmF0aW9uLCB0cnVlKTsKK30KKwordm9pZCBSdW5Mb29w
Ojp3YWtlVXAoKQoreworICAgIENGUnVuTG9vcFNvdXJjZVNpZ25hbChtX3J1bkxvb3BTb3VyY2Uu
Z2V0KCkpOworICAgIENGUnVuTG9vcFdha2VVcChtX3J1bkxvb3AuZ2V0KCkpOworfQorCit2b2lk
IFJ1bkxvb3A6OnJ1bigpCit7CisgICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCsrOworCisj
aWYgIVBMQVRGT1JNKElPUykKKyAgICBpZiAoY3VycmVudCgpID09IG1haW4oKSAmJiBjdXJyZW50
KCktPm1fbmVzdGluZ0xldmVsID09IDEgJiYgc191c2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5S
dW5Mb29wKSB7CisgICAgICAgIC8vIFVzZSAtW05TQXBwbGljYXRpb24gcnVuXSBmb3IgdGhlIG1h
aW4gcnVuIGxvb3AuCisgICAgICAgIFtOU0FwcCBydW5dOworICAgIH0gZWxzZQorI2VuZGlmCisg
ICAgeworICAgICAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKKyAgICAgICAgQ0ZSdW5Mb29wUnVu
KCk7CisgICAgfQorCisgICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbC0tOworfQorCit2b2lk
IFJ1bkxvb3A6OnN0b3AoKQoreworICAgIEFTU0VSVChtX3J1bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0
Q3VycmVudCgpKTsKKworI2lmICFQTEFURk9STShJT1MpCisgICAgLy8gTmVzdGluZyBsZXZlbCBj
YW4gYmUgMCBpZiB0aGUgcnVuIGxvb3AgaXMgc3RhcnRlZCBleHRlcm5hbGx5IChzdWNoIGFzIHRo
ZSBjYXNlIGZvciBYUEMgc2VydmljZXMpLgorICAgIGlmIChtX3J1bkxvb3AgPT0gbWFpbigpLT5t
X3J1bkxvb3AgJiYgbV9uZXN0aW5nTGV2ZWwgPD0gMSAmJiBzX3VzZUFwcGxpY2F0aW9uUnVuTG9v
cE9uTWFpblJ1bkxvb3ApIHsKKyAgICAgICAgQVNTRVJUKFtOU0FwcCBpc1J1bm5pbmddKTsKKyAg
ICAgICAgW05TQXBwIHN0b3A6bmlsXTsKKyAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBsaWNhdGlvbkRlZmluZWQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowLjAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOjAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6bmls
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0eXBlOiAw
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGExOjAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTI6MF07
CisgICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZXZlbnQgYXRTdGFydDp0cnVlXTsKKyAgICB9IGVs
c2UKKyNlbmRpZgorICAgICAgICBDRlJ1bkxvb3BTdG9wKG1fcnVuTG9vcC5nZXQoKSk7Cit9CisK
Ky8vIFJ1bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVk
KENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKiBjb250ZXh0KQoreworICAgIFRpbWVyQmFzZSogdGlt
ZXIgPSBzdGF0aWNfY2FzdDxUaW1lckJhc2UqPihjb250ZXh0KTsKKworICAgIEF1dG9kcmFpbmVk
UG9vbCBwb29sOworICAgIHRpbWVyLT5maXJlZCgpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6
OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCit7
Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOwor
fQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2
YWwsIGJvb2wgcmVwZWF0KQoreworICAgIGlmIChtX3RpbWVyKQorICAgICAgICBzdG9wKCk7CisK
KyAgICBDRlJ1bkxvb3BUaW1lckNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCB9
OworICAgIENGVGltZUludGVydmFsIHJlcGVhdEludGVydmFsID0gcmVwZWF0ID8gbmV4dEZpcmVJ
bnRlcnZhbCA6IDA7CisgICAgbV90aW1lciA9IGFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBuZXh0Rmly
ZUludGVydmFsLCByZXBlYXRJbnRlcnZhbCwgMCwgMCwgdGltZXJGaXJlZCwgJmNvbnRleHQpKTsK
KyAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcC5nZXQoKSwgbV90aW1l
ci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1l
ckJhc2U6OnN0b3AoKQoreworICAgIGlmICghbV90aW1lcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgQ0ZSdW5Mb29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIuZ2V0KCkpOworICAgIG1fdGltZXIg
PSBudWxscHRyOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25z
dAoreworICAgIHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVy
LmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9xdC9SdW5Mb29wUXQuY3BwIGIvU291cmNlL1dURi93dGYvcXQvUnVuTG9vcFF0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44NWIzNTlhYzI2M2FhZjZhOTY5NzJmMDVhZTA1MGFlMzBhN2RmNDU1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvcXQvUnVuTG9vcFF0LmNwcApAQCAtMCwwICsx
LDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDxRQWJzdHJhY3RFdmVudERpc3BhdGNoZXI+
CisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRTWV0YU1ldGhvZD4KKyNp
bmNsdWRlIDxRTWV0YU9iamVjdD4KKyNpbmNsdWRlIDxRT2JqZWN0PgorI2luY2x1ZGUgPFFUaW1l
ckV2ZW50PgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUnVuTG9vcDo6VGltZXJPYmplY3Qg
OiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QKK3B1YmxpYzoKKyAgICBUaW1lck9iamVj
dChSdW5Mb29wKiBydW5Mb29wKSA6IG1fcnVuTG9vcChydW5Mb29wKQorICAgIHsKKyAgICAgICAg
aW50IG1ldGhvZEluZGV4ID0gbWV0YU9iamVjdCgpLT5pbmRleE9mTWV0aG9kKCJwZXJmb3JtV29y
aygpIik7CisgICAgICAgIG1fbWV0aG9kID0gbWV0YU9iamVjdCgpLT5tZXRob2QobWV0aG9kSW5k
ZXgpOworICAgIH0KKworICAgIFFfU0xPVCB2b2lkIHBlcmZvcm1Xb3JrKCkgeyBtX3J1bkxvb3At
PnBlcmZvcm1Xb3JrKCk7IH0KKyAgICBpbmxpbmUgdm9pZCB3YWtlVXAoKSB7IG1fbWV0aG9kLmlu
dm9rZSh0aGlzLCBRdDo6UXVldWVkQ29ubmVjdGlvbik7IH0KKworcHJvdGVjdGVkOgorICAgIHZp
cnR1YWwgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBldmVudCkKKyAgICB7CisgICAgICAg
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChtX3J1bkxvb3AsIGV2ZW50LT50aW1lcklk
KCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisgICAgUU1l
dGFNZXRob2QgbV9tZXRob2Q7Cit9OworCitzdGF0aWMgUUV2ZW50TG9vcCogY3VycmVudEV2ZW50
TG9vcDsKKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAgIHN0YXRpYyBib29sIG1haW5FdmVu
dExvb3BJc1J1bm5pbmcgPSBmYWxzZTsKKyAgICBpZiAoIW1haW5FdmVudExvb3BJc1J1bm5pbmcp
IHsKKyAgICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IHRydWU7CisgICAgICAgIFFDb3Jl
QXBwbGljYXRpb246OmV4ZWMoKTsKKyAgICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZh
bHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIFFFdmVudExvb3AgZXZlbnRMb29wOworCisgICAg
ICAgIFFFdmVudExvb3AqIHByZXZpb3VzRXZlbnRMb29wID0gY3VycmVudEV2ZW50TG9vcDsKKyAg
ICAgICAgY3VycmVudEV2ZW50TG9vcCA9ICZldmVudExvb3A7CisKKyAgICAgICAgZXZlbnRMb29w
LmV4ZWMoKTsKKworICAgICAgICBjdXJyZW50RXZlbnRMb29wID0gcHJldmlvdXNFdmVudExvb3A7
CisgICAgfQorfQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIGlmIChjdXJyZW50RXZl
bnRMb29wKQorICAgICAgICBjdXJyZW50RXZlbnRMb29wLT5leGl0KCk7CisgICAgZWxzZQorICAg
ICAgICBRQ29yZUFwcGxpY2F0aW9uOjpleGl0KCk7Cit9CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQor
ICAgIDogbV90aW1lck9iamVjdChuZXcgVGltZXJPYmplY3QodGhpcykpCit7Cit9CisKK1J1bkxv
b3A6On5SdW5Mb29wKCkKK3sKKyAgICBkZWxldGUgbV90aW1lck9iamVjdDsKK30KKwordm9pZCBS
dW5Mb29wOjp3YWtlVXAoKQoreworICAgIG1fdGltZXJPYmplY3QtPndha2VVcCgpOworfQorCisv
LyBSdW5Mb29wOjpUaW1lcgorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChS
dW5Mb29wKiBydW5Mb29wLCBpbnQgSUQpCit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0g
cnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChJRCk7CisgICAgQVNTRVJUKGl0ICE9IHJ1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKTsKKyAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnZh
bHVlOworCisgICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgeworICAgICAgICAvLyBTdG9w
IHRoZSB0aW1lciAoY2FsbGluZyBzdG9wIHdvdWxkIG5lZWQgYW5vdGhlciBoYXNoIHRhYmxlIGxv
b2t1cCkuCisgICAgICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAg
ICAgIHJ1bkxvb3AtPm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcih0aW1lci0+bV9JRCk7CisgICAg
ICAgIHRpbWVyLT5tX0lEID0gMDsKKyAgICB9CisKKyAgICB0aW1lci0+ZmlyZWQoKTsKK30KKwor
UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1f
cnVuTG9vcChydW5Mb29wKQorICAgICwgbV9JRCgwKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxz
ZSkKK3sKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9w
KCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJ
bnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgc3RvcCgpOworICAgIGludCBtaWxsaXMgPSBz
dGF0aWNfY2FzdDxpbnQ+KG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwKTsKKyAgICBtX2lzUmVwZWF0
aW5nID0gcmVwZWF0OworICAgIG1fSUQgPSBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3QtPnN0YXJ0
VGltZXIobWlsbGlzKTsKKyAgICBBU1NFUlQobV9JRCk7CisgICAgbV9ydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5zZXQobV9JRCwgdGhpcyk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpz
dG9wKCkKK3sKKyAgICBpZiAoIW1fSUQpCisgICAgICAgIHJldHVybjsKKyAgICBUaW1lck1hcDo6
aXRlcmF0b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7CisgICAg
aWYgKGl0ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICBtX3J1
bkxvb3AtPm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcihtX0lEKTsKKyAgICBtX0lEID0gMDsKK30K
KworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9JRDsKK30KKworI2luY2x1ZGUgIlJ1bkxvb3BRdC5tb2MiCisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwIGIvU291
cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMDZmNTU4Nzk2ZjJj
YTE5OTQ3MTliZGMwN2YxNWI0MTlmNTY3NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKQEAgLTAsMCArMSwxNzkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KKwordXNpbmcg
bmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdURiB7CisKK3N0YXRpYyBjb25zdCBVSU5UIFBl
cmZvcm1Xb3JrTWVzc2FnZSA9IFdNX1VTRVIgKyAxOworc3RhdGljIGNvbnN0IExQV1NUUiBrUnVu
TG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdlV2luZG93IjsKKwor
TFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05EIGhXbmQsIFVJTlQg
bWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAgICBpZiAoUnVuTG9v
cCogcnVuTG9vcCA9IHN0YXRpY19jYXN0PFJ1bkxvb3AqPihnZXRXaW5kb3dQb2ludGVyKGhXbmQs
IDApKSkKKyAgICAgICAgcmV0dXJuIHJ1bkxvb3AtPnduZFByb2MoaFduZCwgbWVzc2FnZSwgd1Bh
cmFtLCBsUGFyYW0pOworCisgICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JFQVRFKSB7CisgICAgICAg
IExQQ1JFQVRFU1RSVUNUIGNyZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TFBDUkVBVEVT
VFJVQ1Q+KGxQYXJhbSk7CisKKyAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBSdW5Mb29wIHdpdGgg
dGhlIHdpbmRvdy4KKyAgICAgICAgc2V0V2luZG93UG9pbnRlcihoV25kLCAwLCBjcmVhdGVTdHJ1
Y3QtPmxwQ3JlYXRlUGFyYW1zKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0
dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisK
K0xSRVNVTFQgUnVuTG9vcDo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFN
IHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAgICBzd2l0Y2ggKG1lc3NhZ2UpIHsKKyAgICBj
YXNlIFBlcmZvcm1Xb3JrTWVzc2FnZToKKyAgICAgICAgcGVyZm9ybVdvcmsoKTsKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgY2FzZSBXTV9USU1FUjoKKyAgICAgICAgUnVuTG9vcDo6VGltZXJCYXNl
Ojp0aW1lckZpcmVkKHRoaXMsIHdQYXJhbSk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKwor
ICAgIHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0p
OworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7CisgICAgTVNHIG1lc3NhZ2U7CisgICAgd2hp
bGUgKEJPT0wgcmVzdWx0ID0gOjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAwLCAwLCAwKSkgeworICAg
ICAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIDo6VHJh
bnNsYXRlTWVzc2FnZSgmbWVzc2FnZSk7CisgICAgICAgIDo6RGlzcGF0Y2hNZXNzYWdlKCZtZXNz
YWdlKTsKKyAgICB9Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgOjpQb3N0UXVp
dE1lc3NhZ2UoMCk7Cit9CisKK2Jvb2wgUnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdp
bmRvd0NsYXNzKCkKK3sKKyAgICAvLyBGSVhNRTogVGhpcyByZWFsbHkgb25seSBuZWVkcyB0byBi
ZSBjYWxsZWQgb25jZS4KKworICAgIFdORENMQVNTIHdpbmRvd0NsYXNzID0geyAwIH07CisgICAg
d2luZG93Q2xhc3MubHBmblduZFByb2MgICAgID0gUnVuTG9vcDo6UnVuTG9vcFduZFByb2M7Cisg
ICAgd2luZG93Q2xhc3MuY2JXbmRFeHRyYSAgICAgID0gc2l6ZW9mKFJ1bkxvb3AqKTsKKyAgICB3
aW5kb3dDbGFzcy5scHN6Q2xhc3NOYW1lICAgPSBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05h
bWU7CisKKyAgICByZXR1cm4gISE6OlJlZ2lzdGVyQ2xhc3MoJndpbmRvd0NsYXNzKTsKK30KKwor
UnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0Ns
YXNzKCk7CisKKyAgICBtX3J1bkxvb3BNZXNzYWdlV2luZG93ID0gOjpDcmVhdGVXaW5kb3coa1J1
bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDV19VU0VERUZBVUxULCAwLCBDV19VU0VERUZBVUxULCAw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIV05EX01FU1NB
R0UsIDAsIDAsIHRoaXMpOworICAgIEFTU0VSVCg6OklzV2luZG93KG1fcnVuTG9vcE1lc3NhZ2VX
aW5kb3cpKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIC8vIEZJWE1FOiBUZWFy
IGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBoZXJlLgorfQorCit2b2lkIFJ1bkxvb3A6Ondha2VV
cCgpCit7CisgICAgLy8gRklYTUU6IE5vIG5lZWQgdG8gd2FrZSB1cCB0aGUgcnVuIGxvb3AgaWYg
d2UndmUgYWxyZWFkeSBjYWxsZWQgZGlzcGF0Y2gKKyAgICAvLyBiZWZvcmUgdGhlIHJ1biBsb29w
IGhhcyBoYWQgdGhlIHRpbWUgdG8gcmVzcG9uZC4KKyAgICA6OlBvc3RNZXNzYWdlKG1fcnVuTG9v
cE1lc3NhZ2VXaW5kb3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRlcnByZXRfY2FzdDxXUEFS
QU0+KHRoaXMpLCAwKTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwordm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgdWludDY0X3QgSUQpCit7Cisg
ICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChJ
RCk7CisgICAgaWYgKGl0ID09IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKSB7CisgICAg
ICAgIC8vIFRoZSB0aW1lciBtdXN0IGhhdmUgYmVlbiBzdG9wcGVkIGFmdGVyIHRoZSBXTV9USU1F
UiBtZXNzYWdlIHdhcyBwb3N0ZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUuCisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnZhbHVlOworCisgICAgaWYg
KCF0aW1lci0+bV9pc1JlcGVhdGluZykgeworICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5yZW1vdmUoaXQpOworICAgICAgICA6OktpbGxUaW1lcihydW5Mb29wLT5tX3J1bkxvb3BNZXNz
YWdlV2luZG93LCBJRCk7CisgICAgfQorCisgICAgdGltZXItPmZpcmVkKCk7Cit9CisKK3N0YXRp
YyB1aW50NjRfdCBnZW5lcmF0ZVRpbWVySUQoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlx
dWVUaW1lcklEID0gMTsKKyAgICByZXR1cm4gdW5pcXVlVGltZXJJRCsrOworfQorCitSdW5Mb29w
OjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29w
KHJ1bkxvb3ApCisgICAgLCBtX0lEKGdlbmVyYXRlVGltZXJJRCgpKQorICAgICwgbV9pc1JlcGVh
dGluZyhmYWxzZSkKK3sKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sK
KyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUg
bmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgbV9pc1JlcGVhdGluZyA9IHJl
cGVhdDsKKyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKKyAg
ICA6OlNldFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCwgbmV4
dEZpcmVJbnRlcnZhbCAqIDEwMDAsIDApOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RvcCgpCit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5maW5kKG1fSUQpOworICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLnJlbW92ZShpdCk7CisgICAgOjpLaWxsVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNz
YWdlV2luZG93LCBtX0lEKTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlu
cyhtX0lEKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IGI0MWUzNThkMDcwZTVkNTA0YTc5YzBjM2M1OTMxMmNhNzM0ZmVhNjMuLjBmOWM0MGFlOTY1Yzg5
M2UyMzEyYTk1MGRiN2Q5ZmVmOTdhM2I2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xODMx
LDcgKzE4MzEsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1F
dmVudC5jcHAKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAKICAgICBw
bGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCi0gICAgcGxhdGZvcm0vUnVuTG9vcC5jcHAK
ICAgICBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAgcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiYWU1ZjM5M2ZiOWRlNjhlNjY4OWJhMjczZmVk
OTY1NTc2YjM5NmNjLi5jM2U2MDdmYTQ1ZTA2MmNiODc1NTJjMDVlYTQxMTMyN2ZiNDVlNzY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYxMzEsOCArNjEzMSw2IEBAIHBsYXRm
b3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJl
SGFuZGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL05vdEltcGxlbWVudGVkLmggXAotCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9S
dW5Mb29wLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VVUlELmNwcCBcCkBAIC02MjY1LDcg
KzYyNjMsNiBAQCBwbGF0Zm9ybWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1No
YXJlZEJ1ZmZlckd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRU
aW1lckd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Tb3VuZEd0ay5jcHAg
XApAQCAtNjMyNyw3ICs2MzI0LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vU3lzdGVtSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vV2ViQ29yZUluc3RhbmNlSGFuZGxlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1dlYkNvcmVJbnN0YW5jZUhhbmRsZS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vV2luZG93c0V4dHJhcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVn
aW5EYXRhYmFzZVdpbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbk1l
c3NhZ2VUaHJvdHRsZXJXaW4uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVn
aW5NZXNzYWdlVGhyb3R0bGVyV2luLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5
LmNtYWtlCmluZGV4IDE3MzZmNWY0MmJkOWQ5NWUyYmYwNjc5Mzk1Y2EwZTczZjFkZDcwYjMuLmU2
ZWZlMzE1M2QxMzgyN2NiNzEzZDA3MjRhYmE0ZDcxNjNjMmMwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTExNiw3ICsxMTYsNiBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BsYXRmb3JtVG91Y2hQb2lu
dEJsYWNrQmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9Qb3B1cE1lbnVCbGFja0Jl
cnJ5LmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvUmVuZGVyVGhlbWVCbGFja0JlcnJ5LmNw
cAotICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwCiAgICAgcGxh
dGZvcm0vYmxhY2tiZXJyeS9TU0xLZXlHZW5lcmF0b3JCbGFja0JlcnJ5LmNwcAogICAgIHBsYXRm
b3JtL2JsYWNrYmVycnkvU2Nyb2xsYmFyVGhlbWVCbGFja0JlcnJ5LmNwcAogICAgIHBsYXRmb3Jt
L2JsYWNrYmVycnkvU2VhcmNoUG9wdXBNZW51QmxhY2tCZXJyeS5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1F
ZmwuY21ha2UKaW5kZXggZjQ5NjY0NzI1MDk3OWFjNDdhZmU1M2RjMjRiYTQzMmY4ZTE1MDU3YS4u
NDE2MjQ4MmYyZGZkYTU5NTBlOTU0YjZiNmFkYjQ5NGUwMDg0MTc3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1FZmwuY21ha2UKQEAgLTc2LDcgKzc2LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VT
CiAgICAgcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcAogICAgIHBsYXRmb3JtL2Vm
bC9QbGF0Zm9ybVdoZWVsRXZlbnRFZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1l
RWZsLmNwcAotICAgIHBsYXRmb3JtL2VmbC9SdW5Mb29wRWZsLmNwcAogICAgIHBsYXRmb3JtL2Vm
bC9TY3JvbGxiYXJFZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1Njcm9sbGJhclRoZW1lRWZsLmNw
cAogICAgIHBsYXRmb3JtL2VmbC9TY3JvbGxWaWV3RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5j
bWFrZQppbmRleCAyYThiODQ1YmRlMDAyOTk5YTlhMjBiMWNjNTJkZTIxMDk3YmNmNTA3Li5mMDE1
ZmZhZjc1MzEzMDE2NGU5YWZmNThjYTdlMzNhOGVmNGM0ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdU
Sy5jbWFrZQpAQCAtOTYsNyArOTYsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAg
ICBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcAogICAgIHBsYXRmb3JtL2d0ay9SZW5k
ZXJUaGVtZUd0azMuY3BwCiAgICAgcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAotICAg
IHBsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxiYXJU
aGVtZUd0azIuY3BwCiAgICAgcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMy5jcHAKICAg
ICBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdpbkNFLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5D
RS5jbWFrZQppbmRleCA5ZDQ3ZDQwZGE0ODcwYTIyM2JjY2JhYmQ0MjNmZWE4MjVmM2ZjZDdlLi5l
MTMwMTlkMDZlOTVmZWQzMTVhMDY5OWMwZjNkNzgwZGU3ZjFiYWFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNFLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtV2luQ0UuY21ha2UKQEAgLTUxLDcgKzUxLDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTCiAgICAgcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4v
UGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVl
bldpbi5jcHAKLSAgICBwbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKICAgICBwbGF0Zm9ybS93
aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9TY3JvbGxiYXJUaGVt
ZVdpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggNGRmNzhkNDk4Nzk5NWI2ODMyY2FkZTQ0NmY3YTZjNTg0ODJkODVmZi4uOWU1M2Y5
ZmU1NDQ5ZTFlZDc1ZmFjODg1NjEwOTk4NzE1YjQ2MTI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMTA1
LDcgKzExMDUsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNw
cCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwIFwKICAgICBwbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIFwKLSAgICBwbGF0Zm9ybS9SdW5Mb29w
LmNwcCBcCiAgICAgcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKICAgICBwbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAgXAogICAgIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcCBcCkBA
IC0yOTE5LDcgKzI5MTgsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9xdC9EcmFnSW1h
Z2VRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0V2ZW50TG9vcFF0LmNwcCBcCiAgICAgcGxhdGZv
cm0vcXQvRmlsZVN5c3RlbVF0LmNwcCBcCi0gICAgcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcCBc
CiAgICAgcGxhdGZvcm0vcXQvU2hhcmVkQnVmZmVyUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9U
aGlyZFBhcnR5Q29va2llc1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvVXNlckFnZW50UXQuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMzIxNzc2NTJhNmY4NzRlYzY0MjNhZmFiODFmNTg3
M2I4YjRjMmU5OS4uMjBmNjEzZTc4OGQ5NTQ2OWJkZjI5NDk0MGQwZTE1N2JmMGQwNDFmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwMjEsMTkgKzEwMjEsNiBAQCBfX1pON1dlYkNvcmU3SW50
UmVjdDlpbnRlcnNlY3RFUktTMF8KIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU18xMExheW91
dFJlY3RFCiBfX1pON1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfOUZsb2F0UmVjdEUKIF9fWk43V2Vi
Q29yZTdJbnRTaXplQzFFUks2Q0dTaXplCi1fX1pON1dlYkNvcmU3UnVuTG9vcDE0cnVuRm9yRHVy
YXRpb25FZAotX19aTjdXZWJDb3JlN1J1bkxvb3AyMWluaXRpYWxpemVNYWluUnVuTG9vcEV2Ci1f
X1pON1dlYkNvcmU3UnVuTG9vcDM3c2V0VXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9v
cEV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDNydW5FdgotX19aTjdXZWJDb3JlN1J1bkxvb3A0bWFp
bkV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDRzdG9wRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wNndh
a2VVcEV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDdjdXJyZW50RXYKLV9fWk43V2ViQ29yZTdSdW5M
b29wOGRpc3BhdGNoRVJLTjNXVEY4RnVuY3Rpb25JRnZ2RUVFCi1fX1pON1dlYkNvcmU3UnVuTG9v
cDlUaW1lckJhc2U0c3RvcEV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2U1c3RhcnRF
ZGIKLV9fWk43V2ViQ29yZTdSdW5Mb29wOVRpbWVyQmFzZUMyRVBTMF8KLV9fWk43V2ViQ29yZTdS
dW5Mb29wOVRpbWVyQmFzZUQyRXYKIF9fWk43V2ViQ29yZTdUZXh0UnVuMTlhbGxvd3NSb3VuZGlu
Z0hhY2tzRXYKIF9fWk43V2ViQ29yZTdUZXh0UnVuMjFzX2FsbG93c1JvdW5kaW5nSGFja3NFCiBf
X1pON1dlYkNvcmU3VGV4dFJ1bjIyc2V0QWxsb3dzUm91bmRpbmdIYWNrc0ViCkBAIC0xNjE4LDcg
KzE2MDUsNiBAQCBfX1pOSzdXZWJDb3JlN0VsZW1lbnQ2c2hhZG93RXYKIF9fWk5LN1dlYkNvcmU3
SW50UmVjdDEwaW50ZXJzZWN0c0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5z
RVJLUzBfCiBfX1pOSzdXZWJDb3JlN0ludFJlY3RjdjZDR1JlY3RFdgotX19aTks3V2ViQ29yZTdS
dW5Mb29wOVRpbWVyQmFzZThpc0FjdGl2ZUV2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTFjb21w
bGV0ZVVSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxM2F4T2JqZWN0
Q2FjaGVFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDE0Z2V0RWxlbWVudEJ5SWRFUktOM1dURjEy
QXRvbWljU3RyaW5nRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCA3MTg5NWFmOGJiM2M0ZDEwMjQ1ZTIwZTU0MDE3N2UzNjYzYzZhYjI3Li43YzM2
ODk4YTY2NTE3YjU2NjU0NzgxYzYxOGM4NzM0M2I4NzQ4ODY3IDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjkwNzksMTQgKzI5MDc5LDYgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZv
cm1cUnVuTG9vcC5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBsYXRmb3JtXFJ1bkxvb3AuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yOTQ5OCwxMCArMjk0OTAsNiBAQAogCQkJCQk+
CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1c
d2luXFJ1bkxvb3BXaW4uY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cd2luXFNjcm9sbGJhclRoZW1lU2FmYXJpLmNwcCIK
IAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCmluZGV4IDViNjMyYTNjMjVhYTc2NjFlOGM3NTY1NTIxYzJkNGFiMjY3
Y2E3OTIuLjg1ZWM0Yzk3Y2ViMGIyNzg4YzJlZjNkOGQxNzE3NDJkNmZmYjIzN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNDEwOSw3
ICs0MTA5LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFBsYXRmb3Jt
RXZlbnQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUGxhdGZv
cm1JbnN0cnVtZW50YXRpb24uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxh
dGZvcm1cUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHBsYXRmb3JtXFJ1bkxvb3AuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNjaGVtZVJlZ2lzdHJ5LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNjcm9sbGFibGVBcmVhLmNwcCIgLz4KQEAgLTQxNjQs
NyArNDE2Myw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cUGxh
dGZvcm1Nb3VzZUV2ZW50V2luLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXHdpblxQbGF0Zm9ybVNjcmVlbldpbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVx3aW5cUG9wdXBNZW51V2luLmNwcCIgLz4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxSdW5Mb29wV2luLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTY3JvbGxiYXJUaGVtZVNhZmFyaS5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cU2Nyb2xsYmFyVGhlbWVX
aW4uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFNlYXJj
aFBvcHVwTWVudVdpbi5jcHAiIC8+CkBAIC0xMTU2MSw3ICsxMTU1OSw2IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxQb3B1cE1lbnVTdHlsZS5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUHVyZ2VhYmxlQnVmZmVyLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxSZWZlcnJlclBvbGljeS5oIiAvPgotICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUnVuTG9vcC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxTY2hlbWVSZWdpc3RyeS5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cU2Nyb2xsYWJsZUFyZWEuaCIgLz4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBkNjY0ZDUyMDFiMGQ2MWQ2YTY2NDUxYzJiOGQ1MTVjODcxZTIyNzk1Li5kNzM2NjU3YjQ1
YzkyNzRiNTE2M2RhODdmZjNlODI1NTAyNjU1MWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NDEsNyArNzQxLDYgQEAKIAkJ
Mjk3QkUzRDcxNkMwM0MwRTAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5RTREOERGMTZC
MDk0MEYwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmggKi87IH07CiAJCTI5
N0JFM0Q4MTZDMDNDQ0UwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlFNEQ4RTAx
NkIwOTU5ODAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gKi87IH07
CiAJCTI5N0JFM0RBMTZDMDQzRDgwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5N0JF
M0Q5MTZDMDQzRDgwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcCAqLzsg
fTsKLQkJMjlBMzA5QUMxNTYxQzk5QjAwQkJEOEU1IC8qIFJ1bkxvb3BDRi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUEzMDlBQjE1NjFDOTlCMDBC
QkQ4RTUgLyogUnVuTG9vcENGLmNwcCAqLzsgfTsKIAkJMjlBODEyMkIwRkJCOUMxRDAwNTEwMjkz
IC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjlBODEyMEQwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlU
YWJsZS5oICovOyB9OwogCQkyOUE4MTIyQzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0
eUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5
QTgxMjBFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5TGlzdC5oICovOyB9OwogCQky
OUE4MTIyRTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMTAwRkJC
OUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaCAqLzsgfTsKQEAgLTQ2
MTYsOSArNDYxNSw2IEBACiAJCUJDMDZFRTA0MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJs
ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkMwNkVFMDIwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5jcHAgKi87
IH07CiAJCUJDMDZFRTA1MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZFRTAzMEJG
RDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkMwNzNCQUEw
QzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNzNCQTkwQzM5OUIxRjAwMEY1OTc5IC8qIEZs
b2F0Q29udmVyc2lvbi5oICovOyB9OwotCQlCQzBCMzU4MzE0QzRGOTU0MDA1NUUyMkEgLyogUnVu
TG9vcE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMEIzNTgyMTRDNEY5NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFjLm1tICovOyB9OwotCQlCQzBC
MzU4NzE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVu
TG9vcC5jcHAgKi87IH07Ci0JCUJDMEIzNTg4MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzU4NjE0
QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDMEIzNkE0MENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIz
NkExMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmNwcCAqLzsgfTsKIAkJQkMwQjM2QTUwQ0Qz
QzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMEIzNkEyMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxMjRFRTcw
QzI2NDFDRDAwOUUyMzQ5IC8qIEJhclByb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhclByb3Au
Y3BwICovOyB9OwpAQCAtNzA0OCw3ICs3MDQ0LDYgQEAKIAkJMjk4MUNBQUYxMzE4MjJFQzAwRDEy
RjJBIC8qIEFYT2JqZWN0Q2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVhPYmplY3RDYWNo
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5ODU3MDkyMTVDQzUzMkQwMDYz
NTVDRCAvKiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTI5ODU3MDkzMTVDQzUzMkQwMDYzNTVDRCAvKiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyOUEzMDlBQjE1NjFDOTlCMDBCQkQ4RTUgLyogUnVuTG9vcENGLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3BDRi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjBEMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nl
c3NpYmlsaXR5VGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNz
aWJpbGl0eVRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjBFMEZC
QjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyOUE4MTIxMDBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlk
Q2VsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5QVJJ
QUdyaWRDZWxsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTMxMiw5ICsxMTMw
Nyw2IEBACiAJCUJDMDZGMjRDMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRQcm9j
ZXNzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CiAJCUJDMDZGMjREMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yTGlieHNs
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlCQzA3M0JBOTBDMzk5QjFGMDAwRjU5Nzkg
LyogRmxvYXRDb252ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
bG9hdENvbnZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMwQjM1ODIx
NEM0Rjk1NDAwNTVFMjJBIC8qIFJ1bkxvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBSdW5Mb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdW5Mb29wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzBCMzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDMEIzNkEyMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDMEIzNkEzMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ29uc29sZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzQxNiw3ICsxMzQwOCw2IEBACiAJCQkJOTM4MTkyMDQwRjg3RTFFQzAw
RDUzNTJBIC8qIEJpbmFyeVByb3BlcnR5TGlzdC5oICovLAogCQkJCTUxNjAzMDZCMENDNDM2MjMw
MEM4QUMyNSAvKiBGaWxlU3lzdGVtQ0YuY3BwICovLAogCQkJCTFBOTg5NTZBMEFBNzhGODAwMDVF
RjVFRiAvKiBLVVJMQ0ZOZXQuY3BwICovLAotCQkJCTI5QTMwOUFCMTU2MUM5OUIwMEJCRDhFNSAv
KiBSdW5Mb29wQ0YuY3BwICovLAogCQkJCTUxMkREOEUyMEQ5MUUyQjQwMDBGODlFRSAvKiBTaGFy
ZWRCdWZmZXJDRi5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNmOwpAQCAtMTQ2MzQsNyArMTQ2
MjUsNiBAQAogCQkJCTI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTWFjLm1tICovLAogCQkJCTAwODFGRUZFMTZCMEEyQjYwMDhBQUE3QSAvKiBQdWJs
aWNTdWZmaXhNYWMubW0gKi8sCiAJCQkJRTRENjg3NzYwRUQ3QUUzRDAwNkVBOTc4IC8qIFB1cmdl
YWJsZUJ1ZmZlck1hYy5jcHAgKi8sCi0JCQkJQkMwQjM1ODIxNEM0Rjk1NDAwNTVFMjJBIC8qIFJ1
bkxvb3BNYWMubW0gKi8sCiAJCQkJQkNBRTFGQTUxMjkzOURCNzAwNENCMDI2IC8qIFNjcm9sbEFu
aW1hdG9yTWFjLmggKi8sCiAJCQkJQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9sbEFu
aW1hdG9yTWFjLm1tICovLAogCQkJCUJDOEI4NTNDMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3JvbGxi
YXJUaGVtZU1hYy5oICovLApAQCAtMTkzODIsOCArMTkzNzIsNiBAQAogCQkJCTdFMzNDRDAwMTI3
RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi8sCiAJCQkJQTcyRUEzQkExNTg1Q0Y1
NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggKi8sCiAJCQkJOTgzMUFFNDkxNTQy
MjVBMjAwRkUyNjQ0IC8qIFJlZmVycmVyUG9saWN5LmggKi8sCi0JCQkJQkMwQjM1ODUxNEM0Rjk4
MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwICovLAotCQkJCUJDMEIzNTg2MTRDNEY5ODMwMDU1RTIy
QSAvKiBSdW5Mb29wLmggKi8sCiAJCQkJMjkzRUFFMjAxMzU2QjMyRTAwNjdBQ0Y5IC8qIFJ1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgKi8sCiAJCQkJMjkzRUFFMUUxMzU2QjJGRTAwNjdBQ0Y5
IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oICovLAogCQkJCTUxNjJDN0YyMTFGNzdFRkEw
MDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgKi8sCkBAIC0yMzI4Niw3ICsyMzI3NCw2IEBA
CiAJCQkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzlCQURBMjE2MUU3RjNGMDBDMkU2NTIgLyogUnVsZUZlYXR1cmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE3OUJBREE0MTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlU2V0LmggaW4g
SGVhZGVycyAqLywKLQkJCQlCQzBCMzU4ODE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMUYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJy
YXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTY5RDIxMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50
aW1lX21ldGhvZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMjMwRDdFMkI4MjAwN0MzOTgz
IC8qIHJ1bnRpbWVfb2JqZWN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2Mzg3LDkgKzI2Mzc0LDYg
QEAKIAkJCQlBNzNGOTVGRTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTc5QkFEQTExNjFFN0YzRjAwQzJFNjUyIC8qIFJ1bGVGZWF0dXJlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE3OUJBREEzMTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlU2V0
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDMEIzNTg3MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5M
b29wLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTI5QTMwOUFDMTU2MUM5OUIwMEJCRDhFNSAvKiBS
dW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMwQjM1ODMxNEM0Rjk1NDAwNTVFMjJB
IC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQxRTBEN0UyQjgyMDA3
QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQyMDBE
N0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUE1NjlEMjIwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfb2JqZWN0LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQu
aAppbmRleCA3NTgxODJlYjk3MGUzZTdhYWExZDcyMzY1NWExN2Y3NzU4YWQwYWEwLi5hYzRkZDdl
NGU4NGYxNDkwNTcyNjk2OTg5YmZkZmVhYmY3ZTAyM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuaApAQCAtNzcsNyArNzcsNyBAQCBwcml2
YXRlOgogICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+ID4gbV9mdW5jdGlvbnM7CiAKICNpZiBQ
TEFURk9STShNQUMpCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCB1c2UgV2ViQ29yZTo6UnVuTG9v
cCBoZXJlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdXNlIFdURjo6UnVuTG9vcCBoZXJlLgog
ICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fdGhyZWFkUnVuTG9vcDsKICAgICBSZXRhaW5Q
dHI8Q0ZSdW5Mb29wU291cmNlUmVmPiBtX3RocmVhZFJ1bkxvb3BTb3VyY2U7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKaW5kZXgg
YWMzMmFlNDAxODQ3ZGJlYWNkMTY5Yjg2NzY2MDM4MDljYzA4Y2ExZC4uYzg5NmQ4NzMwMTdiNDA5
YzhhZDIzZmI3ZGE4NDI3ZjhlNjg5ZWUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUg
IlBsYXRmb3JtRXZlbnQuaCIKICNpZiBPUyhXSU5ET1dTKQotI2luY2x1ZGUgIldpbmRvd3NFeHRy
YXMuaCIKKyNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJhcy5oPgogI2VuZGlmCiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtTW91c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1Nb3VzZUV2ZW50LmgKaW5kZXggMDM3YjViMTU4ODA1YjJlYzY3Yzc3NmVjOTNiOWE1MTFmOWM4
ZDE2Mi4uOGJkMzEyMWYyMGU1ZjMzYTVmN2M0ZmIyNDAwNmM5MWJmYTExMDFkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgKQEAgLTI5LDcgKzI5LDcg
QEAKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtRXZlbnQuaCIKICNp
ZiBPUyhXSU5ET1dTKQotI2luY2x1ZGUgIldpbmRvd3NFeHRyYXMuaCIKKyNpbmNsdWRlIDx3dGYv
V2luZG93c0V4dHJhcy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCmluZGV4IDUzZjIxY2QwYzk3YTYw
NTI3YjEyMDRmYmY5OThlZWIwMWU2YThiNmQuLjJkMTAyODhiNTAwYWM5YjVlYmU0MzcwM2UwMWUy
ODQ5OWRiNjEyNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
V2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxF
dmVudC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUV2ZW50LmgiCiAjaWYgT1MoV0lORE9XUykKLSNpbmNsdWRlICJXaW5kb3dzRXh0
cmFzLmgiCisjaW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNGQxZDI1NDM2ZjVjNTZiYWEwZWJmMjQ5MTVkODFkM2QwZDkwOGIxYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIK
LQotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU3Bl
Y2lmaWMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0jaWYgIVBMQVRGT1JNKE1BQykKLXZv
aWQgUnVuTG9vcDo6c2V0VXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCgpCi17Ci19
Ci0jZW5kaWYKLQotc3RhdGljIFJ1bkxvb3AqIHNfbWFpblJ1bkxvb3A7Ci0KLS8vIEhlbHBlciBj
bGFzcyBmb3IgVGhyZWFkU3BlY2lmaWNEYXRhLgotY2xhc3MgUnVuTG9vcDo6SG9sZGVyIHsKLXB1
YmxpYzoKLSAgICBIb2xkZXIoKQotICAgICAgICA6IG1fcnVuTG9vcChhZG9wdFJlZihuZXcgUnVu
TG9vcCkpCi0gICAgewotICAgIH0KLQotICAgIFJ1bkxvb3AqIHJ1bkxvb3AoKSBjb25zdCB7IHJl
dHVybiBtX3J1bkxvb3AuZ2V0KCk7IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8UnVuTG9vcD4g
bV9ydW5Mb29wOwotfTsKLQotdm9pZCBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKQot
ewotICAgIGlmIChzX21haW5SdW5Mb29wKQotICAgICAgICByZXR1cm47Ci0gICAgc19tYWluUnVu
TG9vcCA9IFJ1bkxvb3A6OmN1cnJlbnQoKTsKLX0KLQotUnVuTG9vcCogUnVuTG9vcDo6Y3VycmVu
dCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChXVEY6OlRocmVhZFNwZWNpZmljPFJ1bkxv
b3A6OkhvbGRlcj4sIHJ1bkxvb3BIb2xkZXIsICgpKTsKLSAgICByZXR1cm4gcnVuTG9vcEhvbGRl
ci0+cnVuTG9vcCgpOwotfQotCi1SdW5Mb29wKiBSdW5Mb29wOjptYWluKCkKLXsKLSAgICBBU1NF
UlQoc19tYWluUnVuTG9vcCk7Ci0gICAgcmV0dXJuIHNfbWFpblJ1bkxvb3A7Ci19Ci0KLXZvaWQg
UnVuTG9vcDo6cGVyZm9ybVdvcmsoKQotewotICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byBoYW5k
bGUgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgcXVldWUgb25lIGF0IGEgdGltZSBiZWNhdXNlIHdoaWxl
IGluc2lkZSBvbmUgb2YgdGhlc2UKLSAgICAvLyBmdW5jdGlvbnMgd2UgbWlnaHQgcmUtZW50ZXIg
UnVuTG9vcDo6cGVyZm9ybVdvcmsoKSBhbmQgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHBpY2sgdXAg
d2hlcmUgd2UgbGVmdCBvZmYuCi0gICAgLy8gU2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvODk1OTAg
Zm9yIG1vcmUgZGlzY3Vzc2lvbi4KLQotICAgIC8vIE9uZSBwb3NzaWJsZSBzY2VuYXJpbyB3aGVu
IGhhbmRsaW5nIHRoZSBmdW5jdGlvbiBxdWV1ZSBpcyBhcyBmb2xsb3dzOgotICAgIC8vIC0gUnVu
TG9vcDo6cGVyZm9ybVdvcmsoKSBpcyBpbnZva2VkIHdpdGggMSBmdW5jdGlvbiBvbiB0aGUgcXVl
dWUKLSAgICAvLyAtIEhhbmRsaW5nIHRoYXQgZnVuY3Rpb24gcmVzdWx0cyBpbiAxIG1vcmUgZnVu
Y3Rpb24gYmVpbmcgZW5xdWV1ZWQKLSAgICAvLyAtIEhhbmRsaW5nIHRoYXQgb25lIHJlc3VsdHMg
aW4geWV0IGFub3RoZXIgYmVpbmcgZW5xdWV1ZWQKLSAgICAvLyAtIEFuZCBzbyBvbgotICAgIC8v
Ci0gICAgLy8gSW4gdGhpcyBzaXR1YXRpb24gb25lIGludm9jYXRpb24gb2YgcGVyZm9ybVdvcmso
KSBuZXZlciByZXR1cm5zIHNvIGFsbCBvdGhlciBldmVudCBzb3VyY2VzIGFyZSBibG9ja2VkLgot
ICAgIC8vIEJ5IG9ubHkgaGFuZGxpbmcgdXAgdG8gdGhlIG51bWJlciBvZiBmdW5jdGlvbnMgdGhh
dCB3ZXJlIGluIHRoZSBxdWV1ZSB3aGVuIHBlcmZvcm1Xb3JrKCkgaXMgY2FsbGVkCi0gICAgLy8g
d2UgZ3VhcmFudGVlIHRvIG9jY2FzaW9uYWxseSByZXR1cm4gZnJvbSB0aGUgcnVuIGxvb3Agc28g
b3RoZXIgZXZlbnQgc291cmNlcyB3aWxsIGJlIGFsbG93ZWQgdG8gc3Bpbi4KLQotICAgIEZ1bmN0
aW9uPHZvaWQoKT4gZnVuY3Rpb247Ci0gICAgc2l6ZV90IGZ1bmN0aW9uc1RvSGFuZGxlID0gMDsK
LQotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2sp
OwotICAgICAgICBmdW5jdGlvbnNUb0hhbmRsZSA9IG1fZnVuY3Rpb25RdWV1ZS5zaXplKCk7Ci0K
LSAgICAgICAgaWYgKG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgZnVuY3Rpb24gPSBtX2Z1bmN0aW9uUXVldWUudGFrZUZpcnN0KCk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24oKTsKLQotICAgIGZvciAoc2l6ZV90IGZ1bmN0aW9uc0hhbmRs
ZWQgPSAxOyBmdW5jdGlvbnNIYW5kbGVkIDwgZnVuY3Rpb25zVG9IYW5kbGU7ICsrZnVuY3Rpb25z
SGFuZGxlZCkgewotICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9m
dW5jdGlvblF1ZXVlTG9jayk7Ci0KLSAgICAgICAgICAgIC8vIEV2ZW4gaWYgd2Ugc3RhcnQgb2Zm
IHdpdGggTiBmdW5jdGlvbnMgdG8gaGFuZGxlIGFuZCB3ZSd2ZSBvbmx5IGhhbmRsZWQgbGVzcyB0
aGFuIE4gZnVuY3Rpb25zLCB0aGUgcXVldWUKLSAgICAgICAgICAgIC8vIHN0aWxsIG1pZ2h0IGJl
IGVtcHR5IGJlY2F1c2UgdGhvc2UgZnVuY3Rpb25zIG1pZ2h0IGhhdmUgYmVlbiBoYW5kbGVkIGlu
IGFuIGlubmVyIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkuCi0gICAgICAgICAgICAvLyBJbiB0aGF0
IGNhc2Ugd2Ugc2hvdWxkIGJhaWwgaGVyZS4KLSAgICAgICAgICAgIGlmIChtX2Z1bmN0aW9uUXVl
dWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBmdW5j
dGlvbiA9IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsKLSAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgZnVuY3Rpb24oKTsKLSAgICB9Ci19Ci0KLXZvaWQgUnVuTG9vcDo6ZGlzcGF0Y2go
Y29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQoZnVu
Y3Rpb24pOwotCi0gICAgd2FrZVVwKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bkxvb3AuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjdm
MDFiY2FkNTc5NmQxMGFjYWM1ZDZlOGQ5NDFkMzk5NWMzZTM5My4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5M
b29wLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxODYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKiBQ
b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUnVuTG9vcF9oCi0jZGVmaW5lIFJ1
bkxvb3BfaAotCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25EaXNwYXRjaGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+Ci0KLSNpZiBQTEFURk9STShHVEsp
Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2VuZGlmCi0KLSNpZiBQTEFURk9S
TShFRkwpCi0jaW5jbHVkZSA8RWNvcmUuaD4KLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIFJ1bkxvb3AgOiBwdWJsaWMgRnVuY3Rpb25EaXNwYXRjaGVyIHsKLXB1YmxpYzoK
LSAgICAvLyBNdXN0IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZCAoZXhjZXB0IGZvciB0
aGUgTWFjIHBsYXRmb3JtLCB3aGVyZSBpdAotICAgIC8vIGNhbiBiZSBjYWxsZWQgZnJvbSBhbnkg
dGhyZWFkKS4KLSAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKLQotICAg
IC8vIE11c3QgYmUgY2FsbGVkIGJlZm9yZSBlbnRlcmluZyBtYWluIHJ1biBsb29wLiBJZiBjYWxs
ZWQsIGFwcGxpY2F0aW9uIHN0eWxlIHJ1biBsb29wIHdpbGwgYmUgdXNlZCwgaGFuZGxpbmcgZXZl
bnRzLgotICAgIHN0YXRpYyB2b2lkIHNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxv
b3AoKTsKLQotICAgIHN0YXRpYyBSdW5Mb29wKiBjdXJyZW50KCk7Ci0gICAgc3RhdGljIFJ1bkxv
b3AqIG1haW4oKTsKLSAgICB+UnVuTG9vcCgpOwotCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
KGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKSBPVkVSUklERTsKLQotICAgIHN0YXRpYyB2b2lkIHJ1
bigpOwotICAgIHZvaWQgc3RvcCgpOwotICAgIHZvaWQgd2FrZVVwKCk7Ci0KLSNpZiBQTEFURk9S
TShNQUMpCi0gICAgdm9pZCBydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOwotI2VuZGlm
Ci0gICAgCi0gICAgY2xhc3MgVGltZXJCYXNlIHsKLSAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxv
b3A7Ci0gICAgcHVibGljOgotICAgICAgICBleHBsaWNpdCBUaW1lckJhc2UoUnVuTG9vcCopOwot
ICAgICAgICB2aXJ0dWFsIH5UaW1lckJhc2UoKTsKLQotICAgICAgICB2b2lkIHN0YXJ0UmVwZWF0
aW5nKGRvdWJsZSByZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1ZSk7
IH0KLSAgICAgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0KGlu
dGVydmFsLCBmYWxzZSk7IH0KLQotICAgICAgICB2b2lkIHN0b3AoKTsKLSAgICAgICAgYm9vbCBp
c0FjdGl2ZSgpIGNvbnN0OwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKLQot
ICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWws
IGJvb2wgcmVwZWF0KTsKLQotICAgICAgICBSdW5Mb29wKiBtX3J1bkxvb3A7Ci0KLSNpZiBQTEFU
Rk9STShXSU4pCi0gICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2
NF90IElEKTsKLSAgICAgICAgdWludDY0X3QgbV9JRDsKLSAgICAgICAgYm9vbCBtX2lzUmVwZWF0
aW5nOwotI2VsaWYgUExBVEZPUk0oTUFDKQotICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVk
KENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7Ci0gICAgICAgIFJldGFpblB0cjxDRlJ1bkxvb3BU
aW1lclJlZj4gbV90aW1lcjsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgICAgICBzdGF0aWMgdm9p
ZCB0aW1lckZpcmVkKFJ1bkxvb3AqLCBpbnQgSUQpOwotICAgICAgICBpbnQgbV9JRDsKLSAgICAg
ICAgYm9vbCBtX2lzUmVwZWF0aW5nOwotI2VsaWYgUExBVEZPUk0oR1RLKQotICAgICAgICBzdGF0
aWMgZ2Jvb2xlYW4gdGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOwotICAg
ICAgICBnYm9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRpbmc7
IH0KLSAgICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7Ci0gICAgICAgIEdSZWZQdHI8R1Nv
dXJjZT4gbV90aW1lclNvdXJjZTsKLSAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsKLSNl
bGlmIFBMQVRGT1JNKEVGTCkKLSAgICAgICAgc3RhdGljIGJvb2wgdGltZXJGaXJlZCh2b2lkKiBk
YXRhKTsKLSAgICAgICAgRWNvcmVfVGltZXIqIG1fdGltZXI7Ci0gICAgICAgIGJvb2wgbV9pc1Jl
cGVhdGluZzsKLSNlbmRpZgotICAgIH07Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJG
aXJlZENsYXNzPgotICAgIGNsYXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7Ci0gICAgcHVi
bGljOgotICAgICAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRG
dW5jdGlvbikoKTsKLQotICAgICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVk
Q2xhc3MqIG8sIFRpbWVyRmlyZWRGdW5jdGlvbiBmKQotICAgICAgICAgICAgOiBUaW1lckJhc2Uo
cnVuTG9vcCkKLSAgICAgICAgICAgICwgbV9vYmplY3QobykKLSAgICAgICAgICAgICwgbV9mdW5j
dGlvbihmKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBmaXJlZCgpIHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQotCi0gICAg
ICAgIFRpbWVyRmlyZWRDbGFzcyogbV9vYmplY3Q7Ci0gICAgICAgIFRpbWVyRmlyZWRGdW5jdGlv
biBtX2Z1bmN0aW9uOwotICAgIH07Ci0KLSAgICBjbGFzcyBIb2xkZXI7Ci0KLXByaXZhdGU6Ci0g
ICAgUnVuTG9vcCgpOwotCi0gICAgdm9pZCBwZXJmb3JtV29yaygpOwotCi0gICAgTXV0ZXggbV9m
dW5jdGlvblF1ZXVlTG9jazsKLSAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+ID4gbV9mdW5jdGlv
blF1ZXVlOwotCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIHN0YXRpYyBib29sIHJlZ2lzdGVyUnVu
TG9vcE1lc3NhZ2VXaW5kb3dDbGFzcygpOwotICAgIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFJ1
bkxvb3BXbmRQcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKLSAgICBMUkVTVUxUIHdu
ZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFy
YW0pOwotICAgIEhXTkQgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdzsKLQotICAgIHR5cGVkZWYgSGFz
aE1hcDx1aW50NjRfdCwgVGltZXJCYXNlKj4gVGltZXJNYXA7Ci0gICAgVGltZXJNYXAgbV9hY3Rp
dmVUaW1lcnM7Ci0jZWxpZiBQTEFURk9STShNQUMpCi0gICAgc3RhdGljIHZvaWQgcGVyZm9ybVdv
cmsodm9pZCopOwotICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fcnVuTG9vcDsKLSAgICBS
ZXRhaW5QdHI8Q0ZSdW5Mb29wU291cmNlUmVmPiBtX3J1bkxvb3BTb3VyY2U7Ci0gICAgaW50IG1f
bmVzdGluZ0xldmVsOwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgdHlwZWRlZiBIYXNoTWFwPGlu
dCwgVGltZXJCYXNlKj4gVGltZXJNYXA7Ci0gICAgVGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7Ci0g
ICAgY2xhc3MgVGltZXJPYmplY3Q7Ci0gICAgVGltZXJPYmplY3QqIG1fdGltZXJPYmplY3Q7Ci0j
ZWxpZiBQTEFURk9STShHVEspCi1wdWJsaWM6Ci0gICAgc3RhdGljIGdib29sZWFuIHF1ZXVlV29y
ayhSdW5Mb29wKik7Ci0gICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wKCk7Ci0gICAgdm9pZCBw
dXNoTmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKik7Ci0gICAgdm9pZCBwb3BOZXN0ZWRNYWluTG9v
cCgpOwotcHJpdmF0ZToKLSAgICBHUmVmUHRyPEdNYWluQ29udGV4dD4gbV9ydW5Mb29wQ29udGV4
dDsKLSAgICBWZWN0b3I8R1JlZlB0cjxHTWFpbkxvb3A+ID4gbV9ydW5Mb29wTWFpbkxvb3BzOwot
I2VsaWYgUExBVEZPUk0oRUZMKQotICAgIGJvb2wgbV9pbml0RWZsOwotCi0gICAgTXV0ZXggbV9w
aXBlTG9jazsKLSAgICBPd25QdHI8RWNvcmVfUGlwZT4gbV9waXBlOwotCi0gICAgTXV0ZXggbV93
YWtlVXBFdmVudFJlcXVlc3RlZExvY2s7Ci0gICAgYm9vbCBtX3dha2VVcEV2ZW50UmVxdWVzdGVk
OwotCi0gICAgc3RhdGljIHZvaWQgd2FrZVVwRXZlbnQodm9pZCogZGF0YSwgdm9pZCosIHVuc2ln
bmVkIGludCk7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIFJ1bkxvb3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2ti
ZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFj
a2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTgyMDc4OGQ2YWJiMDkzODJlOWUxOGNjZWVkZTY3NTMxMTExNzU2My4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVtYmVkZGVkIHN5
c3RlbXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1J1bkxvb3BDRi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jZi9SdW5Mb29wQ0YuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkZmZiNTU2MzY2YjQ5YzhiNDc4MTE4MTU1Y2JjMzRkNTg5MjU0NTA2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NmL1J1bkxvb3BDRi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0K
LSNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgotI2luY2x1ZGUgPGRp
c3BhdGNoL2Rpc3BhdGNoLmg+Ci0jaW5jbHVkZSA8d3RmL0F1dG9kcmFpbmVkUG9vbC5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsodm9pZCogY29u
dGV4dCkKLXsKLSAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKLSAgICBzdGF0aWNfY2FzdDxSdW5M
b29wKj4oY29udGV4dCktPnBlcmZvcm1Xb3JrKCk7Ci19Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQot
ICAgIDogbV9ydW5Mb29wKENGUnVuTG9vcEdldEN1cnJlbnQoKSkKLSAgICAsIG1fbmVzdGluZ0xl
dmVsKDApCi17Ci0gICAgQ0ZSdW5Mb29wU291cmNlQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlz
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCBwZXJmb3JtV29yayB9OwotICAgIG1fcnVuTG9vcFNvdXJj
ZSA9IGFkb3B0Q0YoQ0ZSdW5Mb29wU291cmNlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAs
ICZjb250ZXh0KSk7Ci0gICAgQ0ZSdW5Mb29wQWRkU291cmNlKG1fcnVuTG9vcC5nZXQoKSwgbV9y
dW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotfQotCi1SdW5Mb29w
Ojp+UnVuTG9vcCgpCi17Ci0gICAgQ0ZSdW5Mb29wU291cmNlSW52YWxpZGF0ZShtX3J1bkxvb3BT
b3VyY2UuZ2V0KCkpOwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKGRvdWJsZSBk
dXJhdGlvbikKLXsKLSAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERlZmF1bHRNb2Rl
LCBkdXJhdGlvbiwgdHJ1ZSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBD
RlJ1bkxvb3BTb3VyY2VTaWduYWwobV9ydW5Mb29wU291cmNlLmdldCgpKTsKLSAgICBDRlJ1bkxv
b3BXYWtlVXAobV9ydW5Mb29wLmdldCgpKTsKLX0KLQotI2lmICFQTEFURk9STShNQUMpIHx8IFBM
QVRGT1JNKElPUykKLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAgICBjdXJyZW50KCktPm1fbmVz
dGluZ0xldmVsKys7Ci0gICAgCi0gICAgewotICAgICAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsK
LSAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7Ci0gICAgfQotICAgIAotICAgIGN1cnJlbnQoKS0+bV9u
ZXN0aW5nTGV2ZWwtLTsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAgICBBU1NFUlQo
bV9ydW5Mb29wID09IENGUnVuTG9vcEdldEN1cnJlbnQoKSk7Ci0gICAgQ0ZSdW5Mb29wU3RvcCht
X3J1bkxvb3AuZ2V0KCkpOwotfQotI2VuZGlmCi0KLS8vIFJ1bkxvb3A6OlRpbWVyCi0KLXZvaWQg
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKiBj
b250ZXh0KQotewotICAgIFRpbWVyQmFzZSogdGltZXIgPSBzdGF0aWNfY2FzdDxUaW1lckJhc2Uq
Pihjb250ZXh0KTsKLQotICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwotICAgIHRpbWVyLT5maXJl
ZCgpOwotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29w
KQotICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6
flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFz
ZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAgIGlm
IChtX3RpbWVyKQotICAgICAgICBzdG9wKCk7Ci0gICAgCi0gICAgQ0ZSdW5Mb29wVGltZXJDb250
ZXh0IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAgfTsKLSAgICBDRlRpbWVJbnRlcnZhbCBy
ZXBlYXRJbnRlcnZhbCA9IHJlcGVhdCA/IG5leHRGaXJlSW50ZXJ2YWwgOiAwOwotICAgIG1fdGlt
ZXIgPSBhZG9wdENGKENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIENG
QWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgbmV4dEZpcmVJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2
YWwsIDAsIDAsIHRpbWVyRmlyZWQsICZjb250ZXh0KSk7Ci0gICAgQ0ZSdW5Mb29wQWRkVGltZXIo
bV9ydW5Mb29wLT5tX3J1bkxvb3AuZ2V0KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21t
b25Nb2Rlcyk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKLXsKLSAgICBp
ZiAoIW1fdGltZXIpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBDRlJ1bkxvb3BUaW1lcklu
dmFsaWRhdGUobV90aW1lci5nZXQoKSk7Ci0gICAgbV90aW1lciA9IG51bGxwdHI7Ci19Ci0KLWJv
b2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
dGltZXIgJiYgQ0ZSdW5Mb29wVGltZXJJc1ZhbGlkKG1fdGltZXIuZ2V0KCkpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvUnVuTG9vcEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUnVuTG9vcEVm
bC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzODFiMzY3ZDMzODA3Y2ZmZjkz
NzNiYTczMDlmZWUyZTc2NWExNTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1J1bkxvb3BFZmwuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
UHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcwotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPEVj
b3JlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+Ci0KLXN0YXRpYyBjb25zdCBpbnQgZWNvcmVQaXBlTWVzc2FnZVNpemUgPSAxOwotc3RhdGlj
IGNvbnN0IGNoYXIgd2FrdXBFY29yZVBpcGVNZXNzYWdlW10gPSAiVyI7Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotUnVuTG9vcDo6UnVuTG9vcCgpCi0gICAgOiBtX2luaXRFZmwoZmFsc2UpCi0g
ICAgLCBtX3dha2VVcEV2ZW50UmVxdWVzdGVkKGZhbHNlKQotewotICAgIG1fcGlwZSA9IGFkb3B0
UHRyKGVjb3JlX3BpcGVfYWRkKHdha2VVcEV2ZW50LCB0aGlzKSk7Ci0gICAgbV9pbml0RWZsID0g
dHJ1ZTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotfQotCi12b2lkIFJ1bkxvb3A6OnJ1
bigpCi17Ci0gICAgZWNvcmVfbWFpbl9sb29wX2JlZ2luKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
c3RvcCgpCi17Ci0gICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKLX0KLQotdm9pZCBSdW5Mb29w
Ojp3YWtlVXBFdmVudCh2b2lkKiBkYXRhLCB2b2lkKiwgdW5zaWduZWQgaW50KQotewotICAgIFJ1
bkxvb3AqIGxvb3AgPSBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oZGF0YSk7Ci0KLSAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihsb29wLT5tX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jayk7
Ci0gICAgICAgIGxvb3AtPm1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQgPSBmYWxzZTsKLSAgICB9Ci0K
LSAgICBsb29wLT5wZXJmb3JtV29yaygpOwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17
Ci0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV93YWtlVXBFdmVudFJlcXVlc3Rl
ZExvY2spOwotICAgICAgICBpZiAobV93YWtlVXBFdmVudFJlcXVlc3RlZCkKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgbV93YWtlVXBFdmVudFJlcXVlc3RlZCA9IHRydWU7Ci0gICAgfQot
Ci0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9waXBlTG9jayk7Ci0gICAgICAg
IGVjb3JlX3BpcGVfd3JpdGUobV9waXBlLmdldCgpLCB3YWt1cEVjb3JlUGlwZU1lc3NhZ2UsIGVj
b3JlUGlwZU1lc3NhZ2VTaXplKTsKLSAgICB9Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGlt
ZXJCYXNlKFJ1bkxvb3AqKQotICAgIDogbV90aW1lcigwKQotICAgICwgbV9pc1JlcGVhdGluZyhm
YWxzZSkKLXsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBz
dG9wKCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHZvaWQqIGRh
dGEpCi17Ci0gICAgUnVuTG9vcDo6VGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFJ1bkxv
b3A6OlRpbWVyQmFzZSo+KGRhdGEpOwotCi0gICAgdGltZXItPmZpcmVkKCk7Ci0KLSAgICBpZiAo
IXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7Ci0gICAgICAgIHRpbWVyLT5tX3RpbWVyID0gMDsKLSAg
ICAgICAgcmV0dXJuIEVDT1JFX0NBTExCQUNLX0NBTkNFTDsKLSAgICB9Ci0KLSAgICByZXR1cm4g
RUNPUkVfQ0FMTEJBQ0tfUkVORVc7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFy
dChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0gICAgaWYgKGlzQWN0
aXZlKCkpCi0gICAgICAgIHN0b3AoKTsKLQotICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0g
ICAgQVNTRVJUKCFtX3RpbWVyKTsKLSAgICBtX3RpbWVyID0gZWNvcmVfdGltZXJfYWRkKG5leHRG
aXJlSW50ZXJ2YWwsIHJlaW50ZXJwcmV0X2Nhc3Q8RWNvcmVfVGFza19DYj4odGltZXJGaXJlZCks
IHRoaXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgaWYg
KG1fdGltZXIpIHsKLSAgICAgICAgZWNvcmVfdGltZXJfZGVsKG1fdGltZXIpOwotICAgICAgICBt
X3RpbWVyID0gMDsKLSAgICB9Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIChtX3RpbWVyKSA/IHRydWUgOiBmYWxzZTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IDRkNzBjZDI2YTQ3ZDMxYzE4YzcyYjMzYTYw
ODkwNDBlODJiOTdkNWIuLjM1M2QyOGJjMWEyMzBhZTMwZmEzNjMyMGEwNjA0ZTZlNjM4YTc0YTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmgKQEAgLTMwLDEzICszMCwxMyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJUcmFuc2Zv
cm0uaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKLSNpbmNsdWRl
ICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJU
aWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4
LmgiCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAjaW5jbHVkZSAiR3JhcGhpY3NTdXJmYWNl
VG9rZW4uaCIKICNlbmRpZgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCmlu
ZGV4IDllODNmYzViZTI1NmViZTI4Njk0MGI0ZTg5ZDhlOTVmMmM1MDMwZWEuLjA0ZWEwMWNlNzgw
NmUwN2UyNzk0M2Q0YWI5MWU0YTEzZWQ4NDBiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
U2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNp
bmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVk
ZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFw
cGVyLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUg
IlRleHR1cmVNYXBwZXJGUFNDb3VudGVyLmgiCkBAIC0zNyw2ICszNiw3IEBACiAjaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5n
UHJpbWl0aXZlcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZUZ1bGxz
Y3JlZW5XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRp
YVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93LmgKaW5kZXggMjYyMmZiYWQ0ZmRlNTM3OThi
ZmU3NDIyM2I5NWIxYTFkMDI0YzYwNS4uMmU0YWU2OTRiMzExNmNmZDY1OTFhMzhiN2U4Yzg4YmJk
NDZmZDExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L01lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRv
dy5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3Jl
ZW5XaW5kb3dfaAogCiAjaWYgT1MoV0lORE9XUykKLSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgi
CisjaW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KICNlbmRpZgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxv
b3BHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTBmMzVjYTY2ZDIyMGI0MGQ0ZjYzZjdkOWY2
Yzk4NDI3NTc3NzFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDE3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBN
b3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPGdk
ay9nZGsuaD4KLSNpbmNsdWRlIDxnbGliLmg+Ci0KLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotewotICAgIC8v
IGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKSBkb2Vzbid0IGFkZCBhbiBleHRyYSByZWZlcmVuY2Uu
Ci0gICAgbV9ydW5Mb29wQ29udGV4dCA9IGlzTWFpblRocmVhZCgpID8gZ19tYWluX2NvbnRleHRf
ZGVmYXVsdCgpIDogYWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0X25ldygpKTsKLSAgICBBU1NFUlQo
bV9ydW5Mb29wQ29udGV4dCk7Ci0gICAgR1JlZlB0cjxHTWFpbkxvb3A+IGlubmVybW9zdExvb3Ag
PSBhZG9wdEdSZWYoZ19tYWluX2xvb3BfbmV3KG1fcnVuTG9vcENvbnRleHQuZ2V0KCksIEZBTFNF
KSk7Ci0gICAgQVNTRVJUKGlubmVybW9zdExvb3ApOwotICAgIG1fcnVuTG9vcE1haW5Mb29wcy5h
cHBlbmQoaW5uZXJtb3N0TG9vcCk7Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLSAgICBm
b3IgKGludCBpID0gbV9ydW5Mb29wTWFpbkxvb3BzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7
Ci0gICAgICAgIGlmICghZ19tYWluX2xvb3BfaXNfcnVubmluZyhtX3J1bkxvb3BNYWluTG9vcHNb
aV0uZ2V0KCkpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGdfbWFpbl9sb29wX3F1
aXQobV9ydW5Mb29wTWFpbkxvb3BzW2ldLmdldCgpKTsKLSAgICB9Ci19Ci0KLXZvaWQgUnVuTG9v
cDo6cnVuKCkKLXsKLSAgICBSdW5Mb29wKiBtYWluUnVuTG9vcCA9IFJ1bkxvb3A6OmN1cnJlbnQo
KTsKLSAgICBHTWFpbkxvb3AqIGlubmVybW9zdExvb3AgPSBtYWluUnVuTG9vcC0+aW5uZXJtb3N0
TG9vcCgpOwotICAgIGlmICghZ19tYWluX2xvb3BfaXNfcnVubmluZyhpbm5lcm1vc3RMb29wKSkg
ewotICAgICAgICBnX21haW5fbG9vcF9ydW4oaW5uZXJtb3N0TG9vcCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICAvLyBDcmVhdGUgYW5kIHJ1biBhIG5lc3RlZCBsb29wIGlmIHRoZSBp
bm5lcm1vc3Qgb25lIHdhcyBhbHJlYWR5IHJ1bm5pbmcuCi0gICAgR01haW5Mb29wKiBuZXN0ZWRN
YWluTG9vcCA9IGdfbWFpbl9sb29wX25ldygwLCBGQUxTRSk7Ci0gICAgbWFpblJ1bkxvb3AtPnB1
c2hOZXN0ZWRNYWluTG9vcChuZXN0ZWRNYWluTG9vcCk7Ci0gICAgZ19tYWluX2xvb3BfcnVuKG5l
c3RlZE1haW5Mb29wKTsKLSAgICBtYWluUnVuTG9vcC0+cG9wTmVzdGVkTWFpbkxvb3AoKTsKLX0K
LQotR01haW5Mb29wKiBSdW5Mb29wOjppbm5lcm1vc3RMb29wKCkKLXsKLSAgICAvLyBUaGUgaW5u
ZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgotICAgIEFTU0VSVCghbV9y
dW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIG1fcnVuTG9vcE1haW5Mb29w
c1swXS5nZXQoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpwdXNoTmVzdGVkTWFpbkxvb3AoR01haW5M
b29wKiBuZXN0ZWRMb29wKQotewotICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3Vs
ZCBhbHdheXMgYmUgdGhlcmUuCi0gICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0
eSgpKTsKLSAgICBtX3J1bkxvb3BNYWluTG9vcHMuYXBwZW5kKGFkb3B0R1JlZihuZXN0ZWRMb29w
KSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cG9wTmVzdGVkTWFpbkxvb3AoKQotewotICAgIC8vIFRo
ZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCi0gICAgQVNTRVJU
KCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKLSAgICBtX3J1bkxvb3BNYWluTG9vcHMu
cmVtb3ZlTGFzdCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIC8vIFRoZSBp
bm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCi0gICAgQVNTRVJUKCFt
X3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKLSAgICBHUmVmUHRyPEdNYWluTG9vcD4gbGFz
dE1haW5Mb29wID0gbV9ydW5Mb29wTWFpbkxvb3BzLmxhc3QoKTsKLSAgICBpZiAoZ19tYWluX2xv
b3BfaXNfcnVubmluZyhsYXN0TWFpbkxvb3AuZ2V0KCkpKQotICAgICAgICBnX21haW5fbG9vcF9x
dWl0KGxhc3RNYWluTG9vcC5nZXQoKSk7Ci19Ci0KLWdib29sZWFuIFJ1bkxvb3A6OnF1ZXVlV29y
ayhSdW5Mb29wKiBydW5Mb29wKQotewotICAgIHJ1bkxvb3AtPnBlcmZvcm1Xb3JrKCk7Ci0gICAg
cmV0dXJuIEZBTFNFOwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgR1JlZlB0
cjxHU291cmNlPiBzb3VyY2UgPSBhZG9wdEdSZWYoZ19pZGxlX3NvdXJjZV9uZXcoKSk7Ci0gICAg
Z19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNvdXJjZS5nZXQoKSwgR19QUklPUklUWV9ERUZBVUxUKTsK
LSAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2soc291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0
PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6cXVldWVXb3JrKSwgdGhpcywgMCk7Ci0gICAgZ19zb3Vy
Y2VfYXR0YWNoKHNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7Ci0KLSAgICBn
X21haW5fY29udGV4dF93YWtldXAobV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7Ci19Ci0KLVJ1bkxv
b3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxv
b3AocnVuTG9vcCkKLSAgICAsIG1fdGltZXJTb3VyY2UoMCkKLXsKLX0KLQotUnVuTG9vcDo6VGlt
ZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKCkKLXsKLSAgICBtX3RpbWVyU291cmNlID0gMDsK
LX0KLQotZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2soUnVu
TG9vcDo6VGltZXJCYXNlKiB0aW1lcikKLXsKLSAgICBHU291cmNlKiBjdXJyZW50VGltZXJTb3Vy
Y2UgPSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKTsKLSAgICBib29sIGlzUmVwZWF0aW5nID0g
dGltZXItPmlzUmVwZWF0aW5nKCk7Ci0gICAgLy8gVGhpcyBjYW4gY2hhbmdlIHRoZSB0aW1lclNv
dXJjZSBieSBzdGFydGluZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhlIGNhbGxiYWNrLgotICAgIHRp
bWVyLT5maXJlZCgpOwotICAgIGlmICghaXNSZXBlYXRpbmcgJiYgY3VycmVudFRpbWVyU291cmNl
ID09IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpKQotICAgICAgICB0aW1lci0+Y2xlYXJUaW1l
clNvdXJjZSgpOwotICAgIHJldHVybiBpc1JlcGVhdGluZzsKLX0KLQotdm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAg
IGlmIChtX3RpbWVyU291cmNlKQotICAgICAgICBzdG9wKCk7Ci0KLSAgICBtX3RpbWVyU291cmNl
ID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJl
SW50ZXJ2YWwgKiAxMDAwKSkpOwotICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0gICAgZ19z
b3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8
R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayksIHRo
aXMsIDApOwotICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1bkxv
b3AtPm1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFz
ZTo6c3RvcCgpCi17Ci0gICAgaWYgKCFtX3RpbWVyU291cmNlKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBnX3NvdXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOwotICAgIGNsZWFyVGlt
ZXJTb3VyY2UoKTsKLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV90aW1lclNvdXJjZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzc1MGRhMDg5MDZkM2Q0ZmRmODc3ZWVmMWE3MjkwNTdmYjZh
MDlmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQorKysgL2Rldi9udWxsCkBAIC0x
LDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlJ1
bkxvb3AuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgYm9vbCBzX3VzZUFwcGxp
Y2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3A7Ci0KLXZvaWQgUnVuTG9vcDo6c2V0VXNlQXBwbGlj
YXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCgpCi17Ci0gICAgc191c2VBcHBsaWNhdGlvblJ1bkxv
b3BPbk1haW5SdW5Mb29wID0gdHJ1ZTsKLX0KLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAg
IGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwrKzsKLSAgICBpZiAoY3VycmVudCgpID09IG1haW4o
KSAmJiBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsID09IDEgJiYgc191c2VBcHBsaWNhdGlvblJ1
bkxvb3BPbk1haW5SdW5Mb29wKSB7Ci0gICAgICAgIC8vIFVzZSAtW05TQXBwbGljYXRpb24gcnVu
XSBmb3IgdGhlIG1haW4gcnVuIGxvb3AuCi0gICAgICAgIFtOU0FwcCBydW5dOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICAgICAgQ0ZSdW5Mb29wUnVu
KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbC0tOwot
fQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIEFTU0VSVChtX3J1bkxvb3AgPT0gQ0ZS
dW5Mb29wR2V0Q3VycmVudCgpKTsKLQotICAgIC8vIE5lc3RpbmcgbGV2ZWwgY2FuIGJlIDAgaWYg
dGhlIHJ1biBsb29wIGlzIHN0YXJ0ZWQgZXh0ZXJuYWxseSAoc3VjaCBhcyB0aGUgY2FzZSBmb3Ig
WFBDIHNlcnZpY2VzKS4KLSAgICBpZiAobV9ydW5Mb29wID09IG1haW4oKS0+bV9ydW5Mb29wICYm
IG1fbmVzdGluZ0xldmVsIDw9IDEgJiYgc191c2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5M
b29wKSB7Ci0gICAgICAgIEFTU0VSVChbTlNBcHAgaXNSdW5uaW5nXSk7Ci0gICAgICAgIFtOU0Fw
cCBzdG9wOm5pbF07Ci0gICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgb3RoZXJFdmVu
dFdpdGhUeXBlOk5TQXBwbGljYXRpb25EZWZpbmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MC4wCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjowCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0Om5pbAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidHlwZTogMAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhMTowCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEyOjBdOwotICAgICAgICBb
TlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1ZV07Ci0gICAgfSBlbHNlCi0gICAgICAg
IENGUnVuTG9vcFN0b3AobV9ydW5Mb29wLmdldCgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDUwMWJkNWMxMjNiMGYwM2NlOWEwY2Y5MGUxNzI2OTFmNTA2ZDlh
MWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE2
NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPFFBYnN0cmFjdEV2ZW50RGlzcGF0Y2hl
cj4KLSNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgotI2luY2x1ZGUgPFFNZXRhTWV0aG9kPgot
I2luY2x1ZGUgPFFNZXRhT2JqZWN0PgotI2luY2x1ZGUgPFFPYmplY3Q+Ci0jaW5jbHVkZSA8UVRp
bWVyRXZlbnQ+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUnVuTG9vcDo6VGltZXJP
YmplY3QgOiBwdWJsaWMgUU9iamVjdCB7Ci0gICAgUV9PQkpFQ1QKLXB1YmxpYzoKLSAgICBUaW1l
ck9iamVjdChSdW5Mb29wKiBydW5Mb29wKSA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgIHsKLSAg
ICAgICAgaW50IG1ldGhvZEluZGV4ID0gbWV0YU9iamVjdCgpLT5pbmRleE9mTWV0aG9kKCJwZXJm
b3JtV29yaygpIik7Ci0gICAgICAgIG1fbWV0aG9kID0gbWV0YU9iamVjdCgpLT5tZXRob2QobWV0
aG9kSW5kZXgpOwotICAgIH0KLQotICAgIFFfU0xPVCB2b2lkIHBlcmZvcm1Xb3JrKCkgeyBtX3J1
bkxvb3AtPnBlcmZvcm1Xb3JrKCk7IH0KLSAgICBpbmxpbmUgdm9pZCB3YWtlVXAoKSB7IG1fbWV0
aG9kLmludm9rZSh0aGlzLCBRdDo6UXVldWVkQ29ubmVjdGlvbik7IH0KLQotcHJvdGVjdGVkOgot
ICAgIHZpcnR1YWwgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBldmVudCkKLSAgICB7Ci0g
ICAgICAgIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChtX3J1bkxvb3AsIGV2ZW50LT50
aW1lcklkKCkpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBSdW5Mb29wKiBtX3J1bkxvb3A7Ci0g
ICAgUU1ldGFNZXRob2QgbV9tZXRob2Q7Ci19OwotCi1zdGF0aWMgUUV2ZW50TG9vcCogY3VycmVu
dEV2ZW50TG9vcDsKLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIHN0YXRpYyBib29sIG1h
aW5FdmVudExvb3BJc1J1bm5pbmcgPSBmYWxzZTsKLSAgICBpZiAoIW1haW5FdmVudExvb3BJc1J1
bm5pbmcpIHsKLSAgICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IHRydWU7Ci0gICAgICAg
IFFDb3JlQXBwbGljYXRpb246OmV4ZWMoKTsKLSAgICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmlu
ZyA9IGZhbHNlOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFFFdmVudExvb3AgZXZlbnRMb29wOwot
Ci0gICAgICAgIFFFdmVudExvb3AqIHByZXZpb3VzRXZlbnRMb29wID0gY3VycmVudEV2ZW50TG9v
cDsKLSAgICAgICAgY3VycmVudEV2ZW50TG9vcCA9ICZldmVudExvb3A7Ci0KLSAgICAgICAgZXZl
bnRMb29wLmV4ZWMoKTsKLQotICAgICAgICBjdXJyZW50RXZlbnRMb29wID0gcHJldmlvdXNFdmVu
dExvb3A7Ci0gICAgfQotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIGlmIChjdXJy
ZW50RXZlbnRMb29wKQotICAgICAgICBjdXJyZW50RXZlbnRMb29wLT5leGl0KCk7Ci0gICAgZWxz
ZQotICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpleGl0KCk7Ci19Ci0KLVJ1bkxvb3A6OlJ1bkxv
b3AoKQotICAgIDogbV90aW1lck9iamVjdChuZXcgVGltZXJPYmplY3QodGhpcykpCi17Ci19Ci0K
LVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLSAgICBkZWxldGUgbV90aW1lck9iamVjdDsKLX0KLQot
dm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewotICAgIG1fdGltZXJPYmplY3QtPndha2VVcCgpOwot
fQotCi0vLyBSdW5Mb29wOjpUaW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJG
aXJlZChSdW5Mb29wKiBydW5Mb29wLCBpbnQgSUQpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9y
IGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChJRCk7Ci0gICAgQVNTRVJUKGl0ICE9
IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKTsKLSAgICBUaW1lckJhc2UqIHRpbWVyID0g
aXQtPnZhbHVlOwotCi0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgewotICAgICAgICAv
LyBTdG9wIHRoZSB0aW1lciAoY2FsbGluZyBzdG9wIHdvdWxkIG5lZWQgYW5vdGhlciBoYXNoIHRh
YmxlIGxvb2t1cCkuCi0gICAgICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7
Ci0gICAgICAgIHJ1bkxvb3AtPm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcih0aW1lci0+bV9JRCk7
Ci0gICAgICAgIHRpbWVyLT5tX0lEID0gMDsKLSAgICB9Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsK
LX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKLSAg
ICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgICwgbV9JRCgwKQotICAgICwgbV9pc1JlcGVhdGlu
ZyhmYWxzZSkKLXsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAg
ICBzdG9wKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4
dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0gICAgc3RvcCgpOwotICAgIGludCBtaWxs
aXMgPSBzdGF0aWNfY2FzdDxpbnQ+KG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwKTsKLSAgICBtX2lz
UmVwZWF0aW5nID0gcmVwZWF0OwotICAgIG1fSUQgPSBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3Qt
PnN0YXJ0VGltZXIobWlsbGlzKTsKLSAgICBBU1NFUlQobV9JRCk7Ci0gICAgbV9ydW5Mb29wLT5t
X2FjdGl2ZVRpbWVycy5zZXQobV9JRCwgdGhpcyk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJC
YXNlOjpzdG9wKCkKLXsKLSAgICBpZiAoIW1fSUQpCi0gICAgICAgIHJldHVybjsKLSAgICBUaW1l
ck1hcDo6aXRlcmF0b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7
Ci0gICAgaWYgKGl0ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKLSAg
ICBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcihtX0lEKTsKLSAgICBtX0lEID0g
MDsKLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9JRDsKLX0KLQotI2luY2x1ZGUgIlJ1bkxvb3BRdC5tb2MiCi0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9N
SU1FVHlwZVJlZ2lzdHJ5V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9NSU1F
VHlwZVJlZ2lzdHJ5V2luLmNwcAppbmRleCBlZDdiNDI1MGY0ZGNjMWZlYTVhNGQ4MGY0OWExMjY2
NWM1MmRjNWM5Li44NTMyOTM0YjI2MTM4NzkyMzI3OGY4Nzk1ZjQ0NmY2NjA4ZjQxZWU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTUlNRVR5cGVSZWdpc3RyeVdpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL01JTUVUeXBlUmVnaXN0cnlXaW4u
Y3BwCkBAIC0yNiwxMCArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJN
SU1FVHlwZVJlZ2lzdHJ5LmgiCiAKLSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgiCiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHAKaW5kZXggYWM3MDZjNGM1MTAwNDI5NTE1M2UxODViNDE0MWQyYmM2MTJmZjBh
Mi4uNmJkNWMxOGE1OWFkMTJlMDM3NTYxNTIyYTJhN2Y0ZmVhMDE4OWJlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtNDQsOCArNDQsOCBA
QAogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUluc3RhbmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiV2luZG93c0V4dHJh
cy5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCmluZGV4IDI4MGM0
ODVhOTc3NGNjMGMzMzUyMjU5MzJmNWM3YTY1OTlmNjFlZGEuLjg3YzRjOWE5M2FkMDU2OWRhMjkw
MjM4YTA5MzY3ZTg0ZGIyZTNjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
b3B1cE1lbnVXaW4uY3BwCkBAIC00NSw3ICs0NSw3IEBACiAjaW5jbHVkZSAiU2ltcGxlRm9udERh
dGEuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUluc3RhbmNlSGFu
ZGxlLmgiCi0jaW5jbHVkZSAiV2luZG93c0V4dHJhcy5oIgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dz
RXh0cmFzLmg+CiAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d2luZG93c3guaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMTdkNjg0NWU5ZmZkYzM5MjhjMDY3YzdjMTU4ODNhYWI5MGQyOWE2
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
NzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJS
dW5Mb29wLmgiCi0KLSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgiCi0jaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotc3RhdGljIGNvbnN0IFVJTlQgUGVyZm9ybVdvcmtNZXNzYWdlID0gV01fVVNFUiArIDE7
Ci1zdGF0aWMgY29uc3QgTFBXU1RSIGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSA9IEwi
UnVuTG9vcE1lc3NhZ2VXaW5kb3ciOwotCi1MUkVTVUxUIENBTExCQUNLIFJ1bkxvb3A6OlJ1bkxv
b3BXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0g
bFBhcmFtKQotewotICAgIGlmIChSdW5Mb29wKiBydW5Mb29wID0gc3RhdGljX2Nhc3Q8UnVuTG9v
cCo+KGdldFdpbmRvd1BvaW50ZXIoaFduZCwgMCkpKQotICAgICAgICByZXR1cm4gcnVuTG9vcC0+
d25kUHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci0KLSAgICBpZiAobWVzc2Fn
ZSA9PSBXTV9DUkVBVEUpIHsKLSAgICAgICAgTFBDUkVBVEVTVFJVQ1QgY3JlYXRlU3RydWN0ID0g
cmVpbnRlcnByZXRfY2FzdDxMUENSRUFURVNUUlVDVD4obFBhcmFtKTsKLQotICAgICAgICAvLyBB
c3NvY2lhdGUgdGhlIFJ1bkxvb3Agd2l0aCB0aGUgd2luZG93LgotICAgICAgICBzZXRXaW5kb3dQ
b2ludGVyKGhXbmQsIDAsIGNyZWF0ZVN0cnVjdC0+bHBDcmVhdGVQYXJhbXMpOwotICAgICAgICBy
ZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3Nh
Z2UsIHdQYXJhbSwgbFBhcmFtKTsKLX0KLQotTFJFU1VMVCBSdW5Mb29wOjp3bmRQcm9jKEhXTkQg
aFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQotewotICAg
IHN3aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgUGVyZm9ybVdvcmtNZXNzYWdlOgotICAgICAg
ICBwZXJmb3JtV29yaygpOwotICAgICAgICByZXR1cm4gMDsKLSAgICBjYXNlIFdNX1RJTUVSOgot
ICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQodGhpcywgd1BhcmFtKTsKLSAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25k
LCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsK
LSAgICBNU0cgbWVzc2FnZTsKLSAgICB3aGlsZSAoQk9PTCByZXN1bHQgPSA6OkdldE1lc3NhZ2Uo
Jm1lc3NhZ2UsIDAsIDAsIDApKSB7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gLTEpCi0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgOjpUcmFuc2xhdGVNZXNzYWdlKCZtZXNzYWdlKTsKLSAgICAg
ICAgOjpEaXNwYXRjaE1lc3NhZ2UoJm1lc3NhZ2UpOwotICAgIH0KLX0KLQotdm9pZCBSdW5Mb29w
OjpzdG9wKCkKLXsKLSAgICA6OlBvc3RRdWl0TWVzc2FnZSgwKTsKLX0KLQotYm9vbCBSdW5Mb29w
OjpyZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKQotewotICAgIC8vIEZJWE1FOiBU
aGlzIHJlYWxseSBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlLgotCi0gICAgV05EQ0xBU1Mg
d2luZG93Q2xhc3MgPSB7IDAgfTsKLSAgICB3aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBS
dW5Mb29wOjpSdW5Mb29wV25kUHJvYzsKLSAgICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAg
PSBzaXplb2YoUnVuTG9vcCopOwotICAgIHdpbmRvd0NsYXNzLmxwc3pDbGFzc05hbWUgICA9IGtS
dW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZTsKLQotICAgIHJldHVybiAhITo6UmVnaXN0ZXJD
bGFzcygmd2luZG93Q2xhc3MpOwotfQotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsKLSAgICByZWdp
c3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKLQotICAgIG1fcnVuTG9vcE1lc3NhZ2VX
aW5kb3cgPSA6OkNyZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUsIDAs
IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENXX1VTRURF
RkFVTFQsIDAsIENXX1VTRURFRkFVTFQsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgMCwgdGhpcyk7Ci0gICAgQVNTRVJUKDo6
SXNXaW5kb3cobV9ydW5Mb29wTWVzc2FnZVdpbmRvdykpOwotfQotCi1SdW5Mb29wOjp+UnVuTG9v
cCgpCi17Ci0gICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBpdGVtIHF1ZXVlIGhlcmUu
Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICAvLyBGSVhNRTogTm8gbmVlZCB0
byB3YWtlIHVwIHRoZSBydW4gbG9vcCBpZiB3ZSd2ZSBhbHJlYWR5IGNhbGxlZCBkaXNwYXRjaAot
ICAgIC8vIGJlZm9yZSB0aGUgcnVuIGxvb3AgaGFzIGhhZCB0aGUgdGltZSB0byByZXNwb25kLgot
ICAgIDo6UG9zdE1lc3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgUGVyZm9ybVdvcmtNZXNz
YWdlLCByZWludGVycHJldF9jYXN0PFdQQVJBTT4odGhpcyksIDApOwotfQotCi0vLyBSdW5Mb29w
OjpUaW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBy
dW5Mb29wLCB1aW50NjRfdCBJRCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5M
b29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKLSAgICBpZiAoaXQgPT0gcnVuTG9vcC0+bV9h
Y3RpdmVUaW1lcnMuZW5kKCkpIHsKLSAgICAgICAgLy8gVGhlIHRpbWVyIG11c3QgaGF2ZSBiZWVu
IHN0b3BwZWQgYWZ0ZXIgdGhlIFdNX1RJTUVSIG1lc3NhZ2Ugd2FzIHBvc3RlZCB0byB0aGUgbWVz
c2FnZSBxdWV1ZS4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFRpbWVyQmFzZSogdGlt
ZXIgPSBpdC0+dmFsdWU7Ci0KLSAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7Ci0gICAg
ICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgICAgIDo6S2lsbFRp
bWVyKHJ1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIElEKTsKLSAgICB9Ci0KLSAgICB0
aW1lci0+ZmlyZWQoKTsKLX0KLQotc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlVGltZXJJRCgpCi17
Ci0gICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVRpbWVySUQgPSAxOwotICAgIHJldHVybiB1bmlx
dWVUaW1lcklEKys7Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3Aq
IHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKLSAgICAsIG1fSUQoZ2VuZXJhdGVU
aW1lcklEKCkpCi0gICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQotewotfQotCi1SdW5Mb29wOjpU
aW1lckJhc2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29w
OjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkK
LXsKLSAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OwotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuc2V0KG1fSUQsIHRoaXMpOwotICAgIDo6U2V0VGltZXIobV9ydW5Mb29wLT5tX3J1bkxv
b3BNZXNzYWdlV2luZG93LCBtX0lELCBuZXh0RmlyZUludGVydmFsICogMTAwMCwgMCk7Ci19Ci0K
LXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0
b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7Ci0gICAgaWYgKGl0
ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKLSAgICA6OktpbGxUaW1l
cihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQpOwotfQotCi1ib29sIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLmNvbnRhaW5zKG1fSUQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2hhcmVkVGlt
ZXJXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NoYXJlZFRpbWVyV2luLmNw
cAppbmRleCA3NzA2OWJjOTNhMzI2NGZjZmY5YmM4MTBjZGRhMTJjN2E3OTkwMjk0Li4zOTdkNmRj
MzRiN2JjZDNmZjk5ZGMzZGNmMjM2YTUxMDNjZjZjNTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vU2hhcmVkVGltZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9TaGFyZWRUaW1lcldpbi5jcHAKQEAgLTMyLDggKzMyLDggQEAKICNpbmNs
dWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+CiAKLSNpbmNs
dWRlICJXaW5kb3dzRXh0cmFzLmgiCiAjaW5jbHVkZSA8bW1zeXN0ZW0uaD4KIAogI2lmIFBMQVRG
T1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaW5kb3dN
ZXNzYWdlTGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaW5kb3dNZXNz
YWdlTGlzdGVuZXIuaAppbmRleCAxZDQxMGYyMmMyNTY3NGUzMDExM2EzYzcwYWU2YWU3YjhmZGYx
Yzg1Li5hMzJhZjhlNjQyMGQ5YWU2YTI2NjU3MzhmOGE3MDliNTI3MDMxYmMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2luZG93TWVzc2FnZUxpc3RlbmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dpbmRvd01lc3NhZ2VMaXN0ZW5lci5oCkBA
IC0zMCw3ICszMCw3IEBACiAjZGVmaW5lIFdpbmRvd01lc3NhZ2VMaXN0ZW5lcl9oCiAKICNpZiBP
UyhXSU5ET1dTKQotI2luY2x1ZGUgIldpbmRvd3NFeHRyYXMuaCIKKyNpbmNsdWRlIDx3dGYvV2lu
ZG93c0V4dHJhcy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaW5kb3dzRXh0cmFzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vV2luZG93c0V4dHJhcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyODNkOWQ5NDMyZjlhZDYyMTlkY2FkMjUzM2E5ZjA4MTU3MGQ1MDUzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9XaW5kb3dzRXh0cmFzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFy
b2dhLmNvbT4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAot
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIFdpbmRvd3NFeHRyYXNfaAotI2RlZmluZSBXaW5kb3dzRXh0cmFzX2gKLQot
I2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDxvYmpiYXNlLmg+Ci0jaW5jbHVkZSA8c2hs
d2FwaS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNpZm5kZWYgSFdORF9NRVNTQUdFCi1j
b25zdCBIV05EIEhXTkRfTUVTU0FHRSA9IDA7Ci0jZW5kaWYKLQotaW5saW5lIEhSRVNVTFQgZ2V0
UmVnaXN0cnlWYWx1ZShIS0VZIGhrZXksIExQQ1dTVFIgcHN6U3ViS2V5LCBMUENXU1RSIHBzelZh
bHVlLCBMUERXT1JEIHBkd1R5cGUsIExQVk9JRCBwdkRhdGEsIExQRFdPUkQgcGNiRGF0YSkKLXsK
LSNpZiBPUyhXSU5DRSkKLSAgICBIS0VZIGtleTsKLSAgICBpZiAoOjpSZWdPcGVuS2V5RXhXKGhr
ZXksIHBzelN1YktleSwgMCwgMCwgJmtleSkgIT0gRVJST1JfU1VDQ0VTUykKLSAgICAgICAgcmV0
dXJuIEVSUk9SX0lOVkFMSURfTkFNRTsKLSAgICBIUkVTVUxUIHJlc3VsdCA9IDo6UmVnUXVlcnlW
YWx1ZUV4VyhrZXksIHBzelZhbHVlLCAwLCBwZHdUeXBlLCBzdGF0aWNfY2FzdDxMUEJZVEU+KHB2
RGF0YSksIHBjYkRhdGEpOwotICAgIDo6UmVnQ2xvc2VLZXkoa2V5KTsKLSAgICByZXR1cm4gcmVz
dWx0OwotI2Vsc2UKLSAgICByZXR1cm4gOjpTSEdldFZhbHVlVyhoa2V5LCBwc3pTdWJLZXksIHBz
elZhbHVlLCBwZHdUeXBlLCBwdkRhdGEsIHBjYkRhdGEpOwotI2VuZGlmCi19Ci0KLWlubGluZSB2
b2lkKiBnZXRXaW5kb3dQb2ludGVyKEhXTkQgaFduZCwgaW50IGluZGV4KQotewotI2lmIE9TKFdJ
TkNFKQotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPig6OkdldFdpbmRvd0xvbmco
aFduZCwgaW5kZXgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+
KDo6R2V0V2luZG93TG9uZ1B0cihoV25kLCBpbmRleCkpOwotI2VuZGlmCi19Ci0KLWlubGluZSB2
b2lkKiBzZXRXaW5kb3dQb2ludGVyKEhXTkQgaFduZCwgaW50IGluZGV4LCB2b2lkKiB2YWx1ZSkK
LXsKLSNpZiBPUyhXSU5DRSkKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oOjpT
ZXRXaW5kb3dMb25nKGhXbmQsIGluZGV4LCByZWludGVycHJldF9jYXN0PExPTkc+KHZhbHVlKSkp
OwotI2Vsc2UKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oOjpTZXRXaW5kb3dM
b25nUHRyKGhXbmQsIGluZGV4LCByZWludGVycHJldF9jYXN0PExPTkdfUFRSPih2YWx1ZSkpKTsK
LSNlbmRpZgotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBXaW5kb3dz
RXh0cmFzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRh
dGFiYXNlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNl
V2luLmNwcAppbmRleCBlYjMwZmY4ODUyOTcyYjEyNjNiNzBmYjc0MjIyZWQ2NWIxMTA4YjI0Li5l
ZjkyYzFhZDcyYTVmZjk3MmY0NTNiNzFjM2RkOTBkNmJjOWNlZTc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5EYXRhYmFzZVdpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwCkBAIC0zMSw3ICszMSw3
IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUGFja2FnZS5oIgotI2luY2x1ZGUgIldpbmRvd3NFeHRyYXMuaCIKKyNpbmNsdWRlIDx3dGYv
V2luZG93c0V4dHJhcy5oPgogCiAjaWYgT1MoV0lOQ0UpCiAvLyBXSU5DRSBkb2Vzbid0IHN1cHBv
cnQgUmVnaXN0cnkgS2V5IEFjY2VzcyBSaWdodHMuIFRoZSBwYXJhbWV0ZXIgc2hvdWxkIGFsd2F5
cyBiZSAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93
QWRhcHRlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVy
Lm1tCmluZGV4IDM4ZjEzNDdhMzRiYTRjMjA0MTQ2MWZlYzRmZTQ0YThlZGYwYTI2MjIuLmUxMTI4
NzVjMWQ3YTIyOWQwN2EwNGFmYzBjYzkwNmJlYWFhNjcxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCkBAIC03Myw5ICs3Myw5IEBACiAj
aW1wb3J0IDxhc3NlcnQuaD4KIAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5o
PgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxp
emVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYv
UnVuTG9vcC5oPgogCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJOU09i
amVjdEV4dHJhcy5oIgpAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJv
bldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxs
CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXpl
TWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpp
bml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCmluZGV4
IDY4M2I5YTg1ZDBjYzNlNjU5OWUwZTZkN2MxMzZlYTkwN2MyZTlkNTcuLmUxZTgwYTc3MjY5YWEy
NzAzY2RjNDk4MTAwMzE5MjA2NWU1MzEzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hp
c3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCkBAIC00Miw3ICs0Miw2IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGFnZUNhY2hlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBv
cnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4K
ICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KQEAgLTUwLDYgKzQ5LDcgQEAK
ICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgog
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBv
cnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0x
MDUsNyArMTA1LDcgQEAgV2ViQmFja0ZvcndhcmRMaXN0ICpraXQoQmFja0ZvcndhcmRMaXN0SW1w
bCogYmFja0ZvcndhcmRMaXN0KQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwog
ICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAg
V2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6
aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRo
cmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9X
ZWJIaXN0b3J5SXRlbS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0
ZW0ubW0KaW5kZXggMjgyNzhmOGI3NWEwOWUxMDU3Y2Y3ZTQxZjkxNDkxMWU1N2NlMTQ3OS4uNjBl
OTlmYTI2MGQ3NTM1ODJmMjFiZWFiYmE3NzI0MDBjYWY2NDg5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCkBAIC00NywxMiArNDcsMTIgQEAKICNpbXBv
cnQgPFdlYkNvcmUvSW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvS1VSTC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QYWdlQ2FjaGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4
dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQg
PHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIFdLTm90aWZ5SGlz
dG9yeUl0ZW1DaGFuZ2VkKEhpc3RvcnlJdGVtKikKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJl
YWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVh
ZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAg
IFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxp
emVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViQ2FjaGUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCmlu
ZGV4IDUyNjBlN2ZhMDJjNDA3ODA3ZDRkYWRjZjA5MzY3ZDEyMTg5Y2Y2MDQuLmViZGM4MTAyZTRj
N2ExNDQ4MGMxMTJjZTI1MjVkM2M3OTRiZWQ4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNo
ZS5tbQpAQCAtMzMsOSArMzMsOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENh
Y2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+Ci0jaW1wb3J0IDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJDYWNoZQogCkBAIC00Myw3ICs0Myw3IEBACiB7CiAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vz
c01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBJbml0V2Vi
Q29yZVN5c3RlbUludGVyZmFjZSgpOyAgIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYkVsZW1lbnREaWN0aW9uYXJ5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlz
Yy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbQppbmRleCAxN2YyMjAxOTA3MGM0MDExNjU1N2JlMGNh
NjNmN2M0ZDhkMmRlZmY2Li45MDk0YTM4YjI2ZDlhODJmNjU3NjU2MTgxNWY4MTQ0MTJmOTdlMGVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkVsZW1lbnREaWN0aW9uYXJ5
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0K
QEAgLTM5LDEyICszOSwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ltYWdlLmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRy
YXMuaD4KICNpbXBvcnQgPFdlYktpdC9ET01Db3JlLmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NRXh0
ZW5zaW9ucy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1w
b3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgY2FjaGVW
YWx1ZUZvcktleShjb25zdCB2b2lkICprZXksIGNvbnN0IHZvaWQgKnZhbHVlLCB2b2lkICpzZWxm
KQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6
ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6
aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5M
b29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQppbmRleCBiYmY2ZWMzZDBh
MjJiNjIyMzJjNjhmYWM5NTFiNTAwNGQ3OGYzNWM4Li5kNGQ4OTg3NGY4NzgwMWRlM2E0ZmU5MDI3
M2MyOGNlNDlmN2I5N2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYklj
b25EYXRhYmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkljb25EYXRhYmFz
ZS5tbQpAQCAtNDAsMTEgKzQwLDExIEBACiAjaW1wb3J0IDxXZWJDb3JlL0ljb25EYXRhYmFzZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9JbWFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnRTaXplLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVm
ZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1w
b3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtOTQs
NyArOTQsNyBAQCBzdGF0aWMgV2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBkZWZhdWx0Q2xpZW50KCkK
IHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVN
YWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9v
cCgpOwogfQogCiArIChXZWJJY29uRGF0YWJhc2UgKilzaGFyZWRJY29uRGF0YWJhc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3Rl
ZE5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCAxYzIyNjMxOWYzM2U5YzJlYzY4ODYxNjBmZDRh
NmQ3MjBkOGI4N2QxLi41NTRhYTc1YmM4ZmZhYzk0ZDI0M2YzNDIzZGE4ODllY2UzMDg0MjA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRz
Y2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
V2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC00NiwxMSArNDYsMTEgQEAKICNpbXBv
cnQgPFdlYkNvcmUvUmVuZGVyRW1iZWRkZWRPYmplY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVz
b3VyY2VFcnJvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgotI2lt
cG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL3J1bnRpbWVfcm9vdC5o
PgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYv
QXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKQEAgLTY2LDcgKzY2LDcgQEAgZXh0ZXJuICJDIiB7CiB7CiAgICAgSlNDOjppbml0aWFs
aXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01h
aW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2Jq
Q0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIFdLU2VuZFVzZXJDaGFuZ2VOb3RpZmlj
YXRpb25zKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJh
c2VOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJh
c2VOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggYjIzYmQ5YjU4N2YyMmZjMzYyZTZjNGMyNThi
OWRiMjYxNGQyMDJkOC4uZjM1ZTdhMzlhZmZkZDRmZWFhMDZhNzY4OTQ5OTE3YjI3MmU3ZjViMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBl
UGx1Z2luVmlldy5tbQpAQCAtNTUsMTMgKzU1LDEzIEBACiAjaW1wb3J0IDxXZWJDb3JlL1Byb3Rl
Y3Rpb25TcGFjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1JlbmRlcldpZGdldC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVP
YmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NUHJpdmF0ZS5oPgogI2ltcG9ydCA8cnVu
dGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgog
I2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1w
b3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNkZWZpbmUgTG9naW5XaW5kb3dEaWRTd2l0Y2hG
cm9tVXNlck5vdGlmaWNhdGlvbiAgICBAIldlYkxvZ2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJO
b3RpZmljYXRpb24iCkBAIC03Nyw3ICs3Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
ewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1h
aW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5p
dGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICBXS1Nl
bmRVc2VyQ2hhbmdlTm90aWZpY2F0aW9ucygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0KaW5kZXggMTk4NGEwYjUxNWNkNmEwNDIw
OTI3YzZhNmJmYjMyZjc5ZDZjNTM3MS4uYzQyMTBmNTMzMzlmYzBhZTUwOTU2MTkwODYxMWI4MDI1
Y2ZkNzQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1
Z2luUGFja2FnZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVn
aW5QYWNrYWdlLm1tCkBAIC0yOSw3ICsyOSw2IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViQmFzZVBs
dWdpblBhY2thZ2UuaD4KIAogI2ltcG9ydCA8YWxnb3JpdGhtPgotI2ltcG9ydCA8V2ViQ29yZS9S
dW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV2ViS2l0TlNTdHJpbmdFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJOU09i
amVjdEV4dHJhcy5oPgpAQCAtMzgsNiArMzcsNyBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFs
aXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvVmVj
dG9yLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTY5LDcgKzY5LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5n
KCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsK
LSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5M
b29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25N
YWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IGZkN2M0YmJlYzFjNmM5YTQ4YzNjOWI3YjU4
ODM2ZGQ2OTM5MzlmMzIuLjU1NjQ0M2FlMjlmMTc3ZjM1ZDExNWQyOTk2Y2VkNjYyMTU5MmMxZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5W
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5W
aWV3Lm1tCkBAIC02Nyw3ICs2Nyw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4gCiAjaW1w
b3J0IDxXZWJDb3JlL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUHJveHlTZXJ2ZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+IApAQCAtODIsNiArODEsNyBA
QAogI2ltcG9ydCA8cnVudGltZS9KU0xvY2suaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+
CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNp
bXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2RlZmluZSBMb2dpbldpbmRvd0RpZFN3aXRj
aEZyb21Vc2VyTm90aWZpY2F0aW9uICAgIEAiV2ViTG9naW5XaW5kb3dEaWRTd2l0Y2hGcm9tVXNl
ck5vdGlmaWNhdGlvbiIKQEAgLTE5NSw3ICsxOTUsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiB7CiAg
ICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRo
cmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsK
ICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIFdLU2VuZFVz
ZXJDaGFuZ2VOb3RpZmljYXRpb25zKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMjA0NWQ4ZWFmNzMyZmQyYzA2
NGZkYjFjNjUzYjQwNDk1OTFjZDAxNy4uZDI4Zjc5MWY0MzQxOTUwMDBlZWU5ZmIzODkwMDNiNDdj
OWRiNzgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtNjEsNyArNjEsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9MZWdh
Y3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3BlbGxDaGVj
a2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydHlTZXQuaD4KQEAgLTcxLDYgKzcw
LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8
d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwpAQCAtMTEyLDcgKzExMiw3IEBAIHN0YXRpYyBjb25zdCBpbnQgSW52
YWxpZENvcnJlY3Rpb25QYW5lbFRhZyA9IDA7CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFk
aW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQo
KTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBS
dW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXpl
T25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDg4ZGU2MGUxZjBk
ZmI0YWI3ZjIyMWI5YTE2NTFhMmY5MTYxOWY4OTAuLjE0YzhjNzYxMjhiZWQyM2EyYTNhZmM0ZjIw
YzQ4ZDM4NGMxMTYyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xMTUsNyArMTE1LDYgQEAKICNp
bXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3Vy
Y2VMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZU9iakNFeHRyYXMuaD4KQEAgLTEyNyw2ICsxMjYsNyBAQAogI2ltcG9ydCA8cnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9y
dCA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVP
KQpAQCAtMjAwMiw3ICsyMDAyLDcgQEAgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0
PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQKIHsKICAgICBK
U0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFk
VG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVN
YWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAg
IFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQppbmRleCBhZWViZDk3MmNjNTg3ZTUxZTM2NDgxZDYx
MmUyY2Q1YjI2MTNjMzk1Li5jZDlmNmI2YTNjNTNiNjk5YTYyOWQ2MDJkNzE3NTkwNjQzZGI4Y2Yy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCkBAIC0zNiwxMCArMzYs
MTAgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNp
bXBvcnQgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2Fj
eVdlYkFyY2hpdmUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9UaHJlYWRDaGVjay5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5o
PgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBOU1N0
cmluZyAqIGNvbnN0IFdlYlN1YmZyYW1lQXJjaGl2ZXNLZXkgPSBAIldlYlN1YmZyYW1lQXJjaGl2
ZXMiOwogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlh
bGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5S
dW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCmluZGV4IGVjMDVk
ZDJlNjM4OGRhNGNkYmM3NjYyZDI3MzgwMmVkNjk5YzgyNzYuLjMwYmM0NmE3ZDFmNjI2ZTg5NWVk
NDYxM2QxNmNhNmVjN2JiZWFkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRh
dGFTb3VyY2UubW0KQEAgLTU0LDcgKzU0LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVS
ZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29y
ZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVVSTFJlc3BvbnNlLmg+CkBA
IC02NSw2ICs2NCw3IEBACiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3Rm
L1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxv
b3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEzNCw3ICsxMzQsNyBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAq
YWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgIGlmIChzZWxmID09IFtXZWJEYXRhU291cmNlIGNs
YXNzXSkgewogICAgICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICAgICAgV1RG
Ojppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICAgICAgV2Vi
Q29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgICAgIFJ1bkxvb3A6
OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25N
YWluVGhyZWFkKHNlbGYpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCmluZGV4IGI2NTY2YzlmZDE4ZTc1YzBiYmI1ODBkMjU1NjZjYWE0ZmNmOGYyNTYu
LjFjZWRiMTU2NDczNWU0NTllNzU4ZjExOTE0NzBmZjI3MGRhOGVhOTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTEwLDcgKzExMCw2IEBACiAjaW1wb3J0
IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaW1wbGVG
b250RGF0YS5oPgpAQCAtMTMwLDYgKzEyOSw3IEBACiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxp
emVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUu
aD4KQEAgLTU2Myw3ICs1NjMsNyBAQCBzdGF0aWMgTlNDZWxsU3RhdGVWYWx1ZSBraXQoVHJpU3Rh
dGUgc3RhdGUpCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjpp
bml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpS
dW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXpl
TWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYp
OwogICAgIAogICAgIGlmICghb2xkU2V0Q3Vyc29yRm9yTW91c2VMb2NhdGlvbklNUCkgewpAQCAt
MjI2MCw3ICsyMjYwLDcgQEAgc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRy
YWcoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblR5
cGVzOltbc2VsZiBjbGFzc10gX2luc2VydGFibGVQYXN0ZWJvYXJkVHlwZXNdXTsKICAgICBKU0M6
OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Q
cm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWlu
UnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdl
YkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDFmMzMzMGZlNTI4MWU1N2Q4OGVl
MjM2Yjg4NWI4OTc1YmIyY2VlNTkuLmEwZWFlNzE3MDM2ODRlYTI5NDUxNDE1ODIyYjMxODhjNTVj
MGQ4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpA
QCAtNDMsMTAgKzQzLDEwIEBACiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+
CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVu
TG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMzA5LDcgKzMwOSw3IEBA
IHB1YmxpYzoKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6Omlu
aXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1
bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVN
YWluUnVuTG9vcCgpOwogCiAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0ID0gW05TRGljdGlvbmFyeSBk
aWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgogICAgICAgICBAIlRpbWVzIiwgICAgICAgICAg
ICAgICAgICAgICAgIFdlYktpdFN0YW5kYXJkRm9udFByZWZlcmVuY2VLZXksCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQppbmRleCAzOTY0ZjZmNzljYzIzZWUxMmVhMGIy
ZTA3OTM5MDY5M2ZkOGQxOTBiLi44YzY0MDMwNzg1M2MzMjk0Y2I4YTU0NjNlZTQ1NDcyZmI3MmE4
ZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KQEAgLTM4LDEz
ICszOCwxMyBAQAogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
QXJjaGl2ZVJlc291cmNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEVuY29kaW5nLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpD
RXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVVUkxSZXNwb25zZS5oPgogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNv
bnN0IFdlYlJlc291cmNlUmVzcG9uc2VLZXkgPSAgICAgICAgICBAIldlYlJlc291cmNlUmVzcG9u
c2UiCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFs
aXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29w
Ojppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1
bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1tCmluZGV4IDli
MWJkOGZlYjU1M2ZkOGQxMTBhZGUyY2Y2MzY1ZGE0MjQxMDU3NmMuLjJhMGI4MjVmMWY5NzIyOGRi
Y2I3YTY5ZmRjZDE2NzE4YTAxNGM0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVGV4dEl0ZXJhdG9yLm1tCkBAIC0yOSwxMSArMjksMTEgQEAKICNpbXBvcnQgIkRPTVJhbmdl
SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9W
ZWN0b3IuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9U
ZXh0SXRlcmF0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNp
bXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTUwLDcgKzUwLDcgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RG
Ojppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNl
bGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNmQ2M2M4YzNk
NjEzNjc4YjEyMWE3NjFkYWUyNDM5ZWNkMWQzYTUwNy4uNzIwNDQ3OTZmMzA2ODI0YjczNjM3NzQx
NzFlZjIzMmQ2NjI5ZGJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAt
MTYyLDcgKzE2Miw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5o
PgpAQCAtMTk2LDYgKzE5NSw3IEBACiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9y
dCA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgor
I2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAog
I2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKQEAgLTMxMzYsNyArMzEzNiw3IEBAIHN0YXRp
YyBWZWN0b3I8U3RyaW5nPiB0b1N0cmluZ1ZlY3RvcihOU0FycmF5KiBwYXR0ZXJucykKICAgICBJ
bml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSgpOwogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGlu
ZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7
Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVu
TG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAKICAgICBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9h
cHBsaWNhdGlvbldpbGxUZXJtaW5hdGUpIG5hbWU6TlNBcHBsaWNhdGlvbldpbGxUZXJtaW5hdGVO
b3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwXTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9jYWNoZU1v
ZGVsQ2hhbmdlZE5vdGlmaWNhdGlvbjopIG5hbWU6V2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hh
bmdlZEludGVybmFsTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld0RhdGEubW0KaW5kZXggNGQxMDhmMGFjNmQ1MTIzMGJiZTlmMTU0ZWRmMTM5
MDI4NjYwMmRiZS4uMGUwNjlhNDhmOGI0MTdhNTdlNWFmNjcxN2I2Yjg4NTFiNWU0M2JkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCkBAIC0zNCwxMCArMzQsMTAg
QEAKICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3Rv
cnlJdGVtLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPG9iamMvb2Jq
Yy1hdXRvLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBv
cnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiBCT09MIGFw
cGxpY2F0aW9uSXNUZXJtaW5hdGluZyA9IE5POwogaW50IHBsdWdpbkRhdGFiYXNlQ2xpZW50Q291
bnQgPSAwOwpAQCAtNjcsNyArNjcsNyBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5ZXJGbHVz
aENvbnRyb2xsZXIoV2ViVmlldyogd2ViVmlldykKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJl
YWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVh
ZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAg
IFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxp
emVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApp
bmRleCBiZTA5MjdkYmUwYTkyMDQ1ZTk4MDU5NDU5MzU0N2UwMmQwZjBjYjhkLi44MTMzMjE1ZjVj
OGI5ODhhY2RmMGEyYTM4YTE5YjhjMGU0MDI3OGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCkBAIC00MCw3ICs0MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tp
ZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCmluZGV4IDkxN2RkYzVjMTU3ZDQ2ZmE5OTBjNmE5MGJjNDY4ZmM3MmRiMzViZWQuLjk1
YmZhY2FlODQ5M2UzZDc3YTcxMDgzNDdlOTg0NGMyYjhlNzNiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ0LDcgKzQ0LDcg
QEAKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Jbml0
aWFsaXplTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JL
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5k
ZXggMDBmNDA2OGNmODAxMjgzYTJiODZmMDVkZmJiNWE1NDc5NWIzMWFkYS4uZGY1ZWJmNzAwNzA3
YjUzN2FmNmRkMTEzZmYxOWUzMWRlYmVjOTU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAi
TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXVEYgewogICAgIGNsYXNzIFJ1bkxv
b3A7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmgKaW5kZXggNDE0MDJiNTRhY2ZkMGM2NTRmODU0Y2FiMDYyYzM5YTE0
N2JjYjI4OS4uOGY4YTdmNTE0ZjQ3MTA0ZmU0NWRmMmI0ZTExZWU0ZGY0ZWUzODg1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmgKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJTY2hlZHVsYWJsZUxvYWRlci5oIgog
I2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUhhbmRsZUNsaWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRkNhY2hlZFVSTFJlc3Bv
bnNlKiBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaAppbmRleCBkN2EwMzc1Yzc4NTE1
YTI4ODQyMWFmYjZlZWE0MmU1NTA0ZmQ3YjY1Li44ZmJlZWZjMDYxMDA5MzcxZWYxNjU4MzJkZjEy
NWEzODQ3YWRkYmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9t
YWMvRGlza0NhY2hlTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIk1l
c3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IF9DRkNhY2hlZFVSTFJlc3BvbnNlKiBDRkNhY2hlZFVSTFJlc3Bv
bnNlUmVmOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nl
c3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9y
YWdlUHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MuY3BwCmluZGV4IDU1ZGY2YzVmZTZmNGYz
NjdkN2E3NDdhNmUwOTYzODRlZjIzODQwYmEuLmM4ODE4NWMxNDQ2YmM2ZTBlMGM4ZDc4MzEyMWY4
MWIzZDE0ZTFhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJv
Y2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL09mZmxp
bmVTdG9yYWdlUHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MuY3BwCkBAIC0yNyw5ICsyNyw3
IEBACiAjaW5jbHVkZSAiT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmgiCiAKICNpbmNsdWRlICJPZmZs
aW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDc2NzkyNjA5YzA1MWQyOTM1Y2ZlY2Zm
NzJjZDEyYTU3NzkyN2E5OWQuLjU1YTBiNDdiZGEzYjI3YzFhM2Y4YWRjNWE5OTI3MGJmZDYwNjlj
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNw
cApAQCAtMjYsMTQgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgogCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQogbmFtZXNwYWNlIENvcmVJUEMgewogCiBjbGFzcyBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0
YXRlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvbm5lY3Rpb246OlN5bmNNZXNzYWdl
U3RhdGU+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgK
aW5kZXggYzU4ZDRhMTI2OTM5YmFjZWZmYzY3YjRiNjAwMjk0YjA0N2IxYWNhOS4uYTkwMzZjNTgx
MWU3YzY5ZTlmMjI4NTIzMDE0NDM4OTY0N2ZmMjA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTU1LDcgKzU1LDcgQEAgUVRfRU5EX05BTUVT
UEFDRQogI2luY2x1ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIKICNlbmRpZgogCi1u
YW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFJ1bkxvb3A7CiB9CiAK
QEAgLTEzNSw4ICsxMzUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaWRlbnRpZmllcklz
TnVsbChJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuICFpZGVudGlmaWVyOyB9CiAjZW5k
aWYKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZVNlcnZlckNvbm5l
Y3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xpZW50UnVuTG9v
cCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlQ2xpZW50Q29ubmVj
dGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBXZWJDb3JlOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29w
KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVTZXJ2ZXJDb25uZWN0
aW9uKElkZW50aWZpZXIsIENsaWVudCosIFdURjo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlQ2xpZW50Q29ubmVjdGlvbihJ
ZGVudGlmaWVyLCBDbGllbnQqLCBXVEY6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwogICAgIH5D
b25uZWN0aW9uKCk7CiAKICAgICBDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xp
ZW50OyB9CkBAIC0xODUsNyArMTg1LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVjcmVtZW50RGlz
cGF0Y2hNZXNzYWdlTWFya2VkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50KCkg
eyAtLW1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5Q291bnQ7IH0KIAogcHJpdmF0ZToKLSAgICBDb25uZWN0aW9uKElkZW50aWZpZXIsIGJvb2wg
aXNTZXJ2ZXIsIENsaWVudCosIFdlYkNvcmU6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOworICAg
IENvbm5lY3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50KiwgV1RGOjpSdW5M
b29wKiBjbGllbnRSdW5Mb29wKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShJZGVudGlm
aWVyKTsKICAgICB2b2lkIHBsYXRmb3JtSW52YWxpZGF0ZSgpOwogICAgIApAQCAtMjMxLDcgKzIz
MSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faXNDb25uZWN0ZWQ7CiAgICAgUmVmUHRyPFdv
cmtRdWV1ZT4gbV9jb25uZWN0aW9uUXVldWU7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcCogbV9jbGll
bnRSdW5Mb29wOworICAgIFdURjo6UnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOwogCiAgICAgSGFz
aE1hcDxTdHJpbmdSZWZlcmVuY2UsIHN0ZDo6cGFpcjxSZWZQdHI8V29ya1F1ZXVlPiwgUmVmUHRy
PFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcj4+PiBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5l
Y3Rpb25NYWMuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVj
dGlvbk1hYy5jcHAKaW5kZXggYmE1NjZmNjQwYTA1NzU3M2M1MzRhN2Q3MzYwOGNhNzJlZDEwZjY4
NS4uNWYzYjVkOWQwMzQwNzJkZTk5MzBiYzdmYWZlN2QxYTNmYzRkYTA0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAK
QEAgLTI5LDE2ICsyOSwxNCBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRl
ICJNYWNoUG9ydC5oIgogI2luY2x1ZGUgIk1hY2hVdGlsaXRpZXMuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxtYWNoL21hY2hfZXJyb3IuaD4KICNpbmNsdWRlIDxt
YWNoL3ZtX21hcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBIQVZFKFhQQykK
ICNpbmNsdWRlIDx4cGMveHBjLmg+CiAjZW5kaWYKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAogc3RhdGljIGNvbnN0IHNpemVfdCBpbmxpbmVNZXNz
YWdlTWF4U2l6ZSA9IDQwOTY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW0gYi9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3Mv
UGx1Z2luUHJvY2Vzc01haW4ubW0KaW5kZXggNzMwNDVkMzkxY2NiODQ3OWZiMWIyZDU2ZGE2NWQ2
NjU1NWY1MTg0Zi4uNTQ3YmFhMGZjMzM0ZWQzNmEzY2NlODliZjJhOWZhMzRhMmE2OWUzMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdh
Y3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5t
bQpAQCAtMzIsNyArMzIsNyBAQAogI2ltcG9ydCAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNp
bXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKICNpbXBvcnQgIldLQmFzZS5oIgotI2ltcG9ydCA8V2Vi
Q29yZS9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgVVNFKEFQUEtJ
VCkKIEBpbnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAoV2ViTlNBcHBsaWNhdGlvbkRldGFpbHMpCkBA
IC00MCw4ICs0MCw2IEBACiBAZW5kCiAjZW5kaWYKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBQbHVnaW5Qcm9jZXNzTWFpbkRlbGVnYXRl
IDogcHVibGljIENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2Vy
dmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggODdmY2M0
ZmQzZmY0ZTA1MDJlMjkzZDgwZTg1MjM5NDNhNDkxMjA5Yi4uMTI0MTgyZGVkOThiYTRiOWI1NDVl
MDQwOGEzZTg5OGMyMzZhMTQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vy
dmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9y
dCAiUGx1Z2luUHJvY2Vzcy5oIgogI2ltcG9ydCAiV0tCYXNlLmgiCiAjaW1wb3J0ICJYUENTZXJ2
aWNlRW50cnlQb2ludC5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNjEsNyArNjEsNiBAQCBw
dWJsaWM6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIGV4dGVybiAiQyIgV0tfRVhQT1JUIHZvaWQg
UGx1Z2luU2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBj
X29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAppbmRleCAwNTBjNTdjYTUyNmE1
ZTVmMzIyOTZiNTU2YmRiZDNmYmVhZjk0NGJhLi5lMmExNWI3ZTVhZGRjYzUxYzYwYThiMjA1NDg5
OGFlMWNiOWIyNzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1Bs
dWdpbkNvbnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luQ29udHJvbGxlclByb3h5LmgKQEAgLTM0LDkgKzM0LDkgQEAKICNpbmNsdWRlICJQbHVn
aW5Db250cm9sbGVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAog
bmFtZXNwYWNlIENvcmVJUEMgewogICAgIGNsYXNzIERhdGFSZWZlcmVuY2U7CkBAIC0xODQsMTQg
KzE4NCwxNCBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkludFJlY3QgbV9kaXJ0eVJlY3Q7CiAK
ICAgICAvLyBUaGUgcGFpbnQgdGltZXIsIHVzZWQgZm9yIGNvYWxlc2NpbmcgcGFpbnRpbmcuCi0g
ICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BhaW50
VGltZXI7Ci0gICAgCisgICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBt
X3BhaW50VGltZXI7CisKICAgICAvLyBBIGNvdW50ZXIgdXNlZCB0byBwcmV2ZW50IHRoZSBwbHVn
LWluIGZyb20gYmVpbmcgZGVzdHJveWVkLgogICAgIHVuc2lnbmVkIG1fcGx1Z2luRGVzdHJ1Y3Rp
b25Qcm90ZWN0Q291bnQ7CiAKICAgICAvLyBBIHRpbWVyIHRoYXQgd2UgdXNlIHRvIHByZXZlbnQg
ZGVzdHJ1Y3Rpb24gb2YgdGhlIHBsdWctaW4gd2hpbGUgcGx1Zy1pbgogICAgIC8vIGNvZGUgaXMg
b24gdGhlIHN0YWNrLgotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRyb2xs
ZXJQcm94eT4gbV9wbHVnaW5EZXN0cm95VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8UGx1Z2lu
Q29udHJvbGxlclByb3h5PiBtX3BsdWdpbkRlc3Ryb3lUaW1lcjsKIAogICAgIC8vIFdoZXRoZXIg
d2UncmUgd2FpdGluZyBmb3IgdGhlIHBsdWctaW4gcHJveHkgaW4gdGhlIHdlYiBwcm9jZXNzIHRv
IGRyYXcgdGhlIGNvbnRlbnRzIG9mIGl0cwogICAgIC8vIGJhY2tpbmcgc3RvcmUgaW50byB0aGUg
d2ViIHByb2Nlc3MgYmFja2luZyBzdG9yZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpblByb2Nlc3MuY3BwCmluZGV4IDFhMWFlZDZlY2M0MDZhODdmYWYxMzgzM2U3YTFm
ZGNmMWQxODkwYTQuLjNiNjAxNjE0Zjg0MjJmYzI0YTc4ODhjYTg4MmQ0Yjk0NzJlMzg1NzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcApAQCAt
MzgsNyArMzgsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDxjcnRfZXh0ZXJu
cy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAppbmRl
eCAwYTg3YjJkOWZhYTgwZjdlZTYxNzY0NzBmNmI1NTQ3OTQyMGM4ZDhlLi43ZDYwN2U0ODY2NWQ1
OTE2ZjFmYWIxZDQ4YWRiYTc3YWUzMjFmZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpblByb2Nlc3MuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAg
CiAgICAgYm9vbCBtX3N1cHBvcnRzQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb247CiAK
LSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5Qcm9jZXNzPiBtX21pbmltdW1MaWZl
dGltZVRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpblByb2Nlc3M+IG1fbWluaW11bUxp
ZmV0aW1lVGltZXI7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFBMQVRG
T1JNKE1BQykKICAgICAvLyBUaGUgTWFjaCBwb3J0IHVzZWQgZm9yIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCAwNDJlNTNiMjEyMGMyNjg4YTkxNTk4ZDEzMWNlMDk3ZTU5
YjNkYzJmLi4yMGM4ZjA4Yjk1MGQ0MTUwMDQ2MDQ5OTdhMDcwOWI2ZTBmMTg1YzIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMzgsOCArMzgsOCBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ2hpbGRQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3Mu
Y3BwCmluZGV4IGU3MmEzNzM5ZTVkMDQ5NjIyNGZlMDQ0NDNhYzYwOGM3ZDg2NWU2NzUuLjQ3YTRi
NzYyMThhZjkyYmFmMzFhZDIyMjQwZjU3MDVlOWMzMzI3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuY3BwCkBAIC0zMiw4ICszMiw2IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+
CiAjZW5kaWYKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBDaGlsZFByb2Nlc3M6OkNoaWxkUHJvY2VzcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQ
cm9jZXNzLmgKaW5kZXggODc4ZDViZDM2YzMxZjY1YmMzNWM1NmZlNWJhY2QxYWVlYTIxMDY4OC4u
NTQ0MjMwZmI4ZjczYWQxNGY4ZDA2NmFjYzc4NDczODE2YzgwYjI0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9DaGlsZFByb2Nlc3MuaApAQCAtMjksOSArMjksOSBAQAogI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKICNpbmNsdWRlICJNZXNzYWdl
U2VuZGVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKQEAgLTEwMyw3ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIC8vIGFm
dGVyIGEgZ2l2ZW4gcGVyaW9kIG9mIHRpbWUuCiAgICAgdW5zaWduZWQgbV90ZXJtaW5hdGlvbkNv
dW50ZXI7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxDaGlsZFByb2Nlc3M+IG1fdGVy
bWluYXRpb25UaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxDaGlsZFByb2Nlc3M+IG1fdGVybWlu
YXRpb25UaW1lcjsKIAogICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247CiAgICAgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKaW5kZXggMDU0
NjBmYTJkZWRkYWY1OTNlZDczYWQ3ODBkM2YyZmZiZjJmNDM0Ni4uYWVmMWE0NzVhOWExYjEyMDY5
NTZkYzFjYTkwYWY5OTdjZTRjYWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQ
cm9jZXNzUHJveHkuY3BwCkBAIC0yNiw5ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiQ2hpbGRQcm9jZXNzUHJveHkuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cC5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50
cnlQb2ludC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFj
L0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oCmluZGV4IGEzZDJmOTYwZjgx
NjE2ZWE3NjBkNzc3NDcwYzFkNzkxMzg1ZmI4MmEuLmYzMjVjY2QwOWYxODM3OGZmMTAxNjM4ZWMz
MGQ3ZTE4ZDhmZDhiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5
UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50LmgKQEAgLTI5LDkgKzI5LDkgQEAKICNpbXBv
cnQgIkNoaWxkUHJvY2Vzcy5oIgogI2ltcG9ydCAiQ29tbWFuZExpbmUuaCIKICNpbXBvcnQgIldl
YktpdDJJbml0aWFsaXplLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQg
PFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KKyNpbXBvcnQg
PHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC05NSw3ICs5NSw3IEBA
IGludCBDaGlsZFByb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgQ2hp
bGRQcm9jZXNzVHlwZTo6c2hhcmVkKCkuaW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKICAgICB9CiAK
LSAgICBXZWJDb3JlOjpSdW5Mb29wOjpydW4oKTsKKyAgICBSdW5Mb29wOjpydW4oKTsKIAogICAg
IEBhdXRvcmVsZWFzZXBvb2wgewogICAgICAgICBkZWxlZ2F0ZS5kb1Bvc3RSdW5Xb3JrKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAppbmRleCA4NGY3MzZm
MmZhNmI1OTRiMjVmYjZiOWI1YzM3ZGVhZDc1NTYxM2JkLi5iYzIwMjFmYTQ4ZDMwMzA2YjhjNjli
NWQ3ZWMxZjVlNTE3MjdhMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
S2l0MkluaXRpYWxpemUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5p
dGlhbGl6ZS5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0luaXRpYWxpemVMb2dnaW5nLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9S
dW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYg
UExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIldlYlN5c3RlbUludGVyZmFjZS5oIgpAQCAtNDYsNyAr
NDYsNyBAQCB2b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKIAogICAgIEpTQzo6aW5pdGlhbGl6ZVRo
cmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKIAogI2lmICFMT0dfRElTQUJMRUQKICAgICBXZWJDb3JlOjppbml0
aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwCmlu
ZGV4IGQ0MmFiNGU3ZTFhNjJiZTBhZmEzOGNlYzBjMTBmMTQ0NTg0ZjZmNWQuLjg2NDY0ZjA0ZDY4
ZTM0NmM1YTYyZjBiM2Q5YzNhNGRlMzZlNzZiOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmNwcApAQCAt
MzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIlNoYXJlZFdvcmtlclByb2Nlc3NQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDxjcnRfZXh0
ZXJucy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9T
aGFyZWRXb3JrZXJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNz
L1NoYXJlZFdvcmtlclByb2Nlc3MuaAppbmRleCA4MmM1OWMwNjE1MGJhOWNiODJkMmViMGU2YzU4
MmI4NTRkODY5ODQ5Li4wNTBmNWRlN2NhMzRhZDVkNTJkMDZhMjdhMTgwNDcxNTQyMDg0YmQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtl
clByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJl
ZFdvcmtlclByb2Nlc3MuaApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIC8vIE91ciB3
ZWIgcHJvY2VzcyBjb25uZWN0aW9ucy4KICAgICBWZWN0b3I8UmVmUHRyPFdlYlByb2Nlc3NDb25u
ZWN0aW9uPj4gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnM7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29w
OjpUaW1lcjxTaGFyZWRXb3JrZXJQcm9jZXNzPiBtX21pbmltdW1MaWZldGltZVRpbWVyOworICAg
IFJ1bkxvb3A6OlRpbWVyPFNoYXJlZFdvcmtlclByb2Nlc3M+IG1fbWluaW11bUxpZmV0aW1lVGlt
ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCBjYmUzNGEx
YTkwZmI5YmE5YTViZjc5MzY1YmIxN2QyMzRhOWQ4YTQzLi5iYjdlMjA4NTJhZGY5NGFkMDYwYzU3
YTljZjhjOTE0NjA2YzVjNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCkBAIC0yNywxMSArMjcsMTEgQEAKICNk
ZWZpbmUgRmluZEluZGljYXRvcldpbmRvd19oCiAKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVy
ZmFjZS5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvTm9uY29w
eWFibGUuaD4KICNpbXBvcnQgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgog
CiBAY2xhc3MgV0tGaW5kSW5kaWNhdG9yV2luZG93QW5pbWF0aW9uOwogQGNsYXNzIFdLVmlldzsK
QEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBXS1dpbmRvd0JvdW5jZUFuaW1hdGlvbkNv
bnRleHRSZWYgbV9ib3VuY2VBbmltYXRpb25Db250ZXh0OwogICAgIFJldGFpblB0cjxXS0ZpbmRJ
bmRpY2F0b3JXaW5kb3dBbmltYXRpb24+IG1fYm91bmNlQW5pbWF0aW9uOwogCi0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6VGltZXI8RmluZEluZGljYXRvcldpbmRvdz4gbV9zdGFydEZhZGVPdXRUaW1l
cjsKKyAgICBSdW5Mb29wOjpUaW1lcjxGaW5kSW5kaWNhdG9yV2luZG93PiBtX3N0YXJ0RmFkZU91
dFRpbWVyOwogICAgIFJldGFpblB0cjxXS0ZpbmRJbmRpY2F0b3JXaW5kb3dBbmltYXRpb24+IG1f
ZmFkZU91dEFuaW1hdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQppbmRleCBjNzZlNjU5MzVhZjVhZmVkN2M2Yjk0YThmMjFhMDc4NjkyOTY3N2Mw
Li4yOGQ5NTg3ZWEzODk2NjNlZGZiYzlkNGZhYzY0MTAyYmM2Y2ZlNTdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC03OCw3ICs3OCw2IEBACiAjaW1w
b3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BsYXRmb3JtU2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlZ2lvbi5oPgotI2ltcG9ydCA8
V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvV2ViQ29yZU5TU3RyaW5nRXh0cmFzLmg+CkBAIC04OSw2ICs4OCw3IEBACiAjaW1wb3J0IDxz
eXMvc3RhdC5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0
ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogLyogQVBJIGludGVybmFscy4gKi8KICNp
bXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCmluZGV4IGU1ZDE2NjM5
N2IxZGFlZTg4Yzk2ZDA5YmFkMTg2ZDliZTcyNzI5NGEuLjFjYTgwZDhiN2QxN2Y2NmE5YjRlZTdh
ZmE3M2VkYmE5OGFmYjE3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5SW1wbC5oCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5jbHVkZSAiQmFja2luZ1N0
b3JlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIkxheWVyVHJl
ZUNvbnRleHQuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZWdpb247CkBAIC0xMTgsNyAr
MTE4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNCYWNraW5nU3RvcmVEaXNjYXJkYWJsZTsK
ICAgICBPd25QdHI8QmFja2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsKIAotICAgIFdlYkNvcmU6
OlJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhUHJveHlJbXBsPiBtX2Rpc2NhcmRCYWNraW5nU3Rv
cmVUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5SW1wbD4gbV9kaXNj
YXJkQmFja2luZ1N0b3JlVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5j
aGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNz
TGF1bmNoZXJNYWMubW0KaW5kZXggN2M5NTE2NjhjZGNlZDlhM2E2ZWQwNDczMGE0ZTRmZWE4NDhj
NzEzMC4uZGFmYWVjNDUwNjI5MDUyNzlkOGNjMzFiMjIyYWEzYzBjNDU2YzNkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNz
TGF1bmNoZXJNYWMubW0KQEAgLTI5LDcgKzI5LDYgQEAKICNpbXBvcnQgIkR5bmFtaWNMaW5rZXJF
bnZpcm9ubWVudEV4dHJhY3Rvci5oIgogI2ltcG9ydCAiRW52aXJvbm1lbnRWYXJpYWJsZXMuaCIK
ICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW1wb3J0IDxjcnRfZXh0ZXJucy5oPgogI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4K
ICNpbXBvcnQgPG1hY2gvbWFjaGluZS5oPgpAQCAtNDAsNiArMzksNyBAQAogI2ltcG9ydCA8c3lz
L3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1RocmVhZGluZy5o
PgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CkBAIC00OCw4ICs0OCw2IEBACiAjaW1wb3J0IDx4cGMveHBjLmg+CiAjZW5kaWYKIAot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgZG9pbmcg
dGhpcyBhbm90aGVyIHdheS4KIGV4dGVybiAiQyIga2Vybl9yZXR1cm5fdCBib290c3RyYXBfcmVn
aXN0ZXIyKG1hY2hfcG9ydF90LCBuYW1lX3QsIG1hY2hfcG9ydF90LCB1aW50NjRfdCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKaW5kZXggZjE1YmRiNDQyZjBkMDg1MDUzODE1NDYyODMyMWU3ZGI0Yjc1NTM1
Ni4uY2RlYTNjNjE1NTc0OThjNTc3YmQ4N2U4Y2I3ODhhZDVkOTY3MDBkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdl
cy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAKICNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKQogI2luY2x1ZGUgIlNlY0l0ZW1TaGlt
UHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzUHJveHkuY3BwCmluZGV4IGNhOGFjODc5NTc4MGVhMTcxOGNhZmNkNWFjNTc0
MWYzZDFmNjFlMjEuLjk4ZDlmOTIwY2Y4ODUyZDRlZjNiYWI3Y2UzNWNjZGZlMDQ0MWZlNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtMzcsNyArMzcsNyBAQAogI2luY2x1ZGUgIldlYlBsdWdpblNpdGVE
YXRhTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1h
Y2hQb3J0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2
ZW5lc3NUaW1lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NU
aW1lci5jcHAKaW5kZXggNzY2YWUwZTIwYzI3ZWRiNDkxN2U3NmZiMTU2MjFkNjcxNGY1YmFiYi4u
OTczOWZhM2ExMWY1NDA4YTYxMDBiMDYzOGViYjEwM2E1OTg0NmZiYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcApAQCAtMjYsOCArMjYs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIu
aCIKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBz
dGF0aWMgY29uc3QgZG91YmxlIHJlc3BvbnNpdmVuZXNzVGltZW91dCA9IDM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaAppbmRleCA4ZGIyODcyZmRl
YWZlNzk3YzlhZjRlN2VjNzEyOTE2ZTI2YjdlZWVjLi5mNzVjMGE5OThmZjQ2N2RhYzkzYmE3M2Fi
YzBlMmE1NmI2YzgxNTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVz
cG9uc2l2ZW5lc3NUaW1lci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25z
aXZlbmVzc1RpbWVyLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUmVzcG9uc2l2ZW5lc3NU
aW1lcl9oCiAjZGVmaW5lIFJlc3BvbnNpdmVuZXNzVGltZXJfaAogCi0jaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKICAgICBSZXNwb25zaXZlbmVzc1RpbWVy
OjpDbGllbnQqIG1fY2xpZW50OwogICAgIGJvb2wgbV9pc1Jlc3BvbnNpdmU7CiAKLSAgICBXZWJD
b3JlOjpSdW5Mb29wOjpUaW1lcjxSZXNwb25zaXZlbmVzc1RpbWVyPiBtX3RpbWVyOworICAgIFJ1
bkxvb3A6OlRpbWVyPFJlc3BvbnNpdmVuZXNzVGltZXI+IG1fdGltZXI7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFy
ZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDYzNjA4NWIxN2M2M2FiMDNmMDdmNzlhOWVjMmFkNzQ0YWJkNTY1NmUuLjg5MGE5YTI0ZTUzN2Mw
OWNjNjQ0MGZlM2M3OWQyMjRiODczYzg4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90
SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0Lmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRl
ci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAppbmRl
eCBlMGU1MzEwMjViMWRhNzAyM2E1OGQyMzMxOWRlYWMxYjg0MmRjNmE5Li5jMGQ0ZWM5NjM3MTAy
NGZlZmNlMThmMjQ5Mzc2NmIwYzg2YmI4Zjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmgKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUg
IlZpc2l0ZWRMaW5rVGFibGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgVmlzaXRlZExpbmtU
YWJsZSBtX3RhYmxlOwogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpMaW5rSGFzaCwgV2ViQ29yZTo6
TGlua0hhc2hIYXNoPiBtX3BlbmRpbmdWaXNpdGVkTGlua3M7Ci0gICAgV2ViQ29yZTo6UnVuTG9v
cDo6VGltZXI8VmlzaXRlZExpbmtQcm92aWRlcj4gbV9wZW5kaW5nVmlzaXRlZExpbmtzVGltZXI7
CisgICAgUnVuTG9vcDo6VGltZXI8VmlzaXRlZExpbmtQcm92aWRlcj4gbV9wZW5kaW5nVmlzaXRl
ZExpbmtzVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAzMzVmMTUxNWVhYTk1YjE1MTNkZmUzZmM4ZWQ2
ZTRiYzI2ZmZlM2I0Li40OTk4NjUwYTkzOTIwNmIyNDY0MjQ2ZGUwZmQzMDY2YjdmN2U2MzMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC01OSwxMSArNTksMTEg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5r
SGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQogI2luY2x1ZGUgIldlYkJhdHRl
cnlNYW5hZ2VyUHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2Vi
Q29udGVudFByb2Nlc3NNYWluLm1tCmluZGV4IGZlNzg0MGQ5ZTBhODE5NGI2MTViOWZjMjFiMTc1
MzBlZDAyM2QxY2YuLjM0MzBhMzgzNzc5NWQ2MGJmZDkxYWUxYmQzNzg2Yjk0N2I0NDE1NjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5
UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFp
bi5tbQpAQCAtMzEsMTIgKzMxLDEyIEBACiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNp
bXBvcnQgIldLQmFzZS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgotI2ltcG9ydCA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxtYWNoL21hY2hfZXJyb3IuaD4KICNpbXBvcnQgPHNlcnZl
cnMvYm9vdHN0cmFwLmg+CiAjaW1wb3J0IDxzcGF3bi5oPgogI2ltcG9ydCA8c3RkaW8uaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApA
QCAtNDgsOCArNDgsNiBAQAogCiBleHRlcm4gIkMiIGtlcm5fcmV0dXJuX3QgYm9vdHN0cmFwX3Jl
Z2lzdGVyMihtYWNoX3BvcnRfdCwgbmFtZV90LCBtYWNoX3BvcnRfdCwgdWludDY0X3QpOwogCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdl
YkNvbnRlbnRQcm9jZXNzTWFpbkRlbGVnYXRlIDogcHVibGljIENoaWxkUHJvY2Vzc01haW5EZWxl
Z2F0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2
aWNlRW50cnlQb2ludC5tbQppbmRleCA5OTU5MDdlYmZlMjg1MGMzYzNhYzFmZjVkNjU3NTQ0YmRm
YWY4NDExLi5jODViODRiNWExMTNhMDM4ZTU5NDIyYjFkY2ZkNDZjNzUzMzQxYzc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2Uv
V2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9p
bnQubW0KQEAgLTMxLDkgKzMxLDggQEAKICNpbXBvcnQgIldLQmFzZS5oIgogI2ltcG9ydCAiV2Vi
UHJvY2Vzcy5oIgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBleHRlcm4gIkMiIFdLX0VY
UE9SVCB2b2lkIFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBj
b25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuaAppbmRleCA1NWY2ZTMxN2QzYWQ0OTIxNjBmYjMwOGFlMWE5MzhlNDkzZWJjMThk
Li4wNjgwMWM5MDQxYTllNWU5NjE2MDM4NmNhYjYyZjViMzVlYzg5ZmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUxvYWRQcmlvcml0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU2NoZWR1bGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnRl
cm5hbGx5RmFpbGVkTG9hZFRpbWVyRmlyZWQoKTsKICAgICAKICAgICBIYXNoU2V0PFJlZlB0cjxX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4+IG1faW50ZXJuYWxseUZhaWxlZFJlc291cmNlTG9hZGVy
czsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI+
IG1faW50ZXJuYWxseUZhaWxlZExvYWRUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxXZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXI+IG1faW50ZXJuYWxseUZhaWxlZExvYWRUaW1lcjsKICAgICAKICAg
ICBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFJlZlB0cjxXZWJSZXNvdXJjZUxvYWRlcj4+IG1fd2Vi
UmVzb3VyY2VMb2FkZXJzOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oCmluZGV4
IDg3NDQyODlmY2JhYzljZmM3NWQ1YWQ0MWE1MWRhNzcyMDhmOWVlZmYuLjk2ZWE2NTQwNmIzYWYy
MTk5ZjFhMjk5YjlmOTRjODU1MDczYmM2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFw
LmgKQEAgLTI4LDExICsyOCwxMSBAQAogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CiAKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxoZWFwL1dlYWsuaD4K
ICNpbmNsdWRlIDxoZWFwL1dlYWtJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHN0
cnVjdCBOUE9iamVjdDsKIHR5cGVkZWYgc3RydWN0IF9OUFZhcmlhbnQgTlBWYXJpYW50OwpAQCAt
OTksNyArOTksNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8SlNDOjpKU09iamVjdCosIE5QSlNP
YmplY3QqPiBtX25wSlNPYmplY3RzOwogICAgIEhhc2hNYXA8TlBPYmplY3QqLCBKU0M6OldlYWs8
SlNOUE9iamVjdD4+IG1fanNOUE9iamVjdHM7CiAgICAgVmVjdG9yPE5QT2JqZWN0Kj4gbV9ucE9i
amVjdHNUb0ZpbmFsaXplOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5QUnVudGltZU9i
amVjdE1hcD4gbV9maW5hbGl6YXRpb25UaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxOUFJ1bnRp
bWVPYmplY3RNYXA+IG1fZmluYWxpemF0aW9uVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKaW5kZXggMGVlNGYzNDhjNjM0NDFmYmM1NGEwMTMy
ZjAxMWMyMWJlYmY2MmRhMy4uZTZjMmI3Y2Q5MzUxOTMxZTA0ZDcwYjRmYjRjMzk0Zjg1Y2RlZTU0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0FmZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXll
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVu
TG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSGFzaC5oPgogCkBAIC0zMzIsNyArMzMyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBt
X3JlcGVhdDsKICAgICAgICAgVGltZXJGdW5jIG1fdGltZXJGdW5jOwogCi0gICAgICAgIFdlYkNv
cmU6OlJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBtX3RpbWVyOworICAgICAgICBSdW5Mb29wOjpUaW1l
cjxUaW1lcj4gbV90aW1lcjsKICAgICB9OwogICAgIHR5cGVkZWYgSGFzaE1hcDx1bnNpZ25lZCwg
T3duUHRyPFRpbWVyPj4gVGltZXJNYXA7CiAgICAgVGltZXJNYXAgbV90aW1lcnM7CkBAIC0zNzks
NyArMzc5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEZJWE1FOiBJdCdzIGEgYml0IHdhc3RlZnVs
IHRvIGhhdmUgb25lIG51bGwgZXZlbnQgdGltZXIgcGVyIHBsdWctaW4uCiAgICAgLy8gV2Ugc2hv
dWxkIGludmVzdGlnYXRlIGhhdmluZyBvbmUgcGVyIHdpbmRvdy4KLSAgICBXZWJDb3JlOjpSdW5M
b29wOjpUaW1lcjxOZXRzY2FwZVBsdWdpbj4gbV9udWxsRXZlbnRUaW1lcjsKKyAgICBSdW5Mb29w
OjpUaW1lcjxOZXRzY2FwZVBsdWdpbj4gbV9udWxsRXZlbnRUaW1lcjsKICAgICBOUF9DR0NvbnRl
eHQgbV9ucENHQ29udGV4dDsKICNlbmRpZgogI2VsaWYgUExVR0lOX0FSQ0hJVEVDVFVSRShXSU4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVQbHVnaW5TdHJlYW0uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCmluZGV4IGZmYTU1Y2IyNWQ4Y2Q4NzQ0
NmJhODM3ZmQzOTBlODNiOGM0YTdiNzIuLmRkNTliMDU1YjlmZWM5YTgzOGUyOTliM2ZhZGIwNTgy
ZDBkM2Q5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCkBAIC0yOSwxMiAr
MjksMTIgQEAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAogI2luY2x1ZGUgPFdl
YkNvcmUvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvbnBydW50aW1lX2ludGVybmFsLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0x
MDUsNyArMTA1LDcgQEAgcHJpdmF0ZToKICAgICBDU3RyaW5nIG1fbWltZVR5cGU7CiAgICAgQ1N0
cmluZyBtX2hlYWRlcnM7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxOZXRzY2FwZVBs
dWdpblN0cmVhbT4gbV9kZWxpdmVyeURhdGFUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxOZXRz
Y2FwZVBsdWdpblN0cmVhbT4gbV9kZWxpdmVyeURhdGFUaW1lcjsKICAgICBPd25QdHI8IFZlY3Rv
cjx1aW50OF90Pj4gbV9kZWxpdmVyeURhdGE7CiAgICAgYm9vbCBtX3N0b3BTdHJlYW1XaGVuRG9u
ZURlbGl2ZXJpbmc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmgKaW5kZXggYzZjZDU4ODlhYmFlNjM0MWU5M2YyYmJmY2E3NDNlMWIxM2IwNmNh
Mi4uNmEwNzM3OWI3ZDk2MjBjNjlmNjc4NmVlZGEwZjcyMGU1ZDA2OWMzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0zNiw5ICszNiw5
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5WaWV3QmFzZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIu
aD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAv
LyBGSVhNRTogRXZlbnR1YWxseSB0aGlzIHNob3VsZCBtb3ZlIHRvIFdlYkNvcmUuCiAKQEAgLTIz
MSw3ICsyMzEsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUGVuZGluZyBVUkxSZXF1ZXN0cyB0aGF0
IHRoZSBwbHVnLWluIGhhcyBtYWRlLgogICAgIERlcXVlPFJlZlB0cjxVUkxSZXF1ZXN0Pj4gbV9w
ZW5kaW5nVVJMUmVxdWVzdHM7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luVmll
dz4gbV9wZW5kaW5nVVJMUmVxdWVzdHNUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxQbHVnaW5W
aWV3PiBtX3BlbmRpbmdVUkxSZXF1ZXN0c1RpbWVyOwogCiAgICAgLy8gUGVuZGluZyBmcmFtZSBs
b2FkcyB0aGF0IHRoZSBwbHVnLWluIGhhcyBtYWRlLgogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQ
dHI8V2ViRnJhbWU+LCBSZWZQdHI8VVJMUmVxdWVzdD4+IEZyYW1lTG9hZE1hcDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAppbmRl
eCA3ODkzMDA5Zjc0YTIwOGZmZjhjNTZkOWFlOTk4N2QxMDhhNjdlNGVlLi40MWEwYmU1MjQ4ODc2
YmM3NDg1ZjNhN2EzYWU2ZDY1NzdkNjY2OWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCkBAIC0yOSw3ICsyOSw3IEBACiAj
aW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWdpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OwpAQCAtMTQwLDggKzE0MCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2lzUGFpbnRpbmdTdXNwZW5kZWQ7CiAgICAgYm9vbCBtX2Fsd2F5c1VzZUNvbXBvc2l0aW5nOwog
Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBtX2Rpc3BsYXlU
aW1lcjsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZXhp
dENvbXBvc2l0aW5nVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBt
X2Rpc3BsYXlUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZXhp
dENvbXBvc2l0aW5nVGltZXI7CiAKICAgICAvLyBUaGUgbGF5ZXIgdHJlZSBob3N0IHRoYXQgaGFu
ZGxlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZy4KICAgICBSZWZQdHI8TGF5ZXJUcmVlSG9zdD4g
bV9sYXllclRyZWVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCBkNzljMjk3MGYyNmJkOGZmNTE4MmVmOWE4
NjI5MjU4ZjdkYWU0MDZjLi5hZDQwNDAwODg1ZTNhMGUwOWVlNDc4MWViODQxOWMzYWJhMTc2MWUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmNwcApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJMRShUSFJFQURFRF9T
Q1JPTExJTkcpCiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRvci5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaAppbmRleCAw
ZmEwNThhYTQ2ZjM3NDVkNzEzOWUxZGQ1ZDYwODA2MTJlMzFiMTliLi5iYzE4MmRhMDY1MjhlZjc3
YTFkMGE4NjVkYjVjMGJhZmQ2YWUwODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaApAQCAtMjcsOCArMjcsOCBAQAogI2RlZmluZSBQYWdl
T3ZlcmxheV9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7
CkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgQ2xpZW50KiBtX2NsaWVudDsKICAgICBX
ZWJQYWdlKiBtX3dlYlBhZ2U7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQYWdlT3Zl
cmxheT4gbV9mYWRlQW5pbWF0aW9uVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8UGFnZU92ZXJs
YXk+IG1fZmFkZUFuaW1hdGlvblRpbWVyOwogICAgIGRvdWJsZSBtX2ZhZGVBbmltYXRpb25TdGFy
dFRpbWU7CiAgICAgZG91YmxlIG1fZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggN2FkZDk2YjM4YzNk
Zjc2NTc3MzQ5ZWQxMzIwZjk3NTIxMDZmYTUwNi4uZGMzNWJiNDZkOTM2YjY0NjcwZjgyY2E0NWRh
Y2YxMmJhNmRhOGNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtMTIwLDcgKzEyMCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29u
dHJvbGxlci5oPgpAQCAtMTM1LDYgKzEzNCw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1Zh
bHVlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDxydW50aW1lL09w
ZXJhdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKE1IVE1M
KQogI2luY2x1ZGUgPFdlYkNvcmUvTUhUTUxBcmNoaXZlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhYzk1M2I5NzMwYjQ4ZWJmMTM1ZWY0Zjg3
NGU1ZDNiNTQ1Yzg2NDQ4Li4wODY2ZTJhNTc0OTliZmJhNmJmMzg4NjI4YmRkMzRjYjFkYzJiMmRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTg4
Myw3ICs4ODMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3ByaW1hcnlQbHVnSW5QYWdlT3Jp
Z2luOwogICAgIFN0cmluZyBtX3ByaW1hcnlQbHVnSW5PcmlnaW47CiAgICAgU3RyaW5nIG1fcHJp
bWFyeVBsdWdJbk1pbWVUeXBlOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+
IG1fZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luVGltZXI7CisgICAgUnVuTG9vcDo6
VGltZXI8V2ViUGFnZT4gbV9kZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5UaW1lcjsK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtOTI1LDggKzkyNSw4IEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPFBhZ2VCYW5uZXI+IG1faGVhZGVyQmFubmVyOwogICAgIFJlZlB0cjxQYWdl
QmFubmVyPiBtX2Zvb3RlckJhbm5lcjsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFdl
YlBhZ2U+IG1fc2V0Q2FuU3RhcnRNZWRpYVRpbWVyOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRp
bWVyPFdlYlBhZ2U+IG1fc2VuZERpZFVwZGF0ZUluV2luZG93U3RhdGVUaW1lcjsKKyAgICBSdW5M
b29wOjpUaW1lcjxXZWJQYWdlPiBtX3NldENhblN0YXJ0TWVkaWFUaW1lcjsKKyAgICBSdW5Mb29w
OjpUaW1lcjxXZWJQYWdlPiBtX3NlbmREaWRVcGRhdGVJbldpbmRvd1N0YXRlVGltZXI7CiAgICAg
Ym9vbCBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90
LCBSZWZQdHI8V2ViVW5kb1N0ZXA+PiBtX3VuZG9TdGVwTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOTlkZWJhNWUxZTRlNTEyYjM4ZGViNDlmNDFhMGZm
OTM0ZjhkNzMwMC4uOWY2NTI4ZWVlNWQ4OWY3NTEwNmIzOWUwNGQxODNkNDU1ZmUyYjM4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC03NCw3ICs3NCw2IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VH
cm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0
dGluZ3MuaD4KQEAgLTgyLDYgKzgxLDcgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfSU5GTykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202611</attachid>
            <date>2013-05-22 12:19:06 -0700</date>
            <delta_ts>2013-05-23 07:05:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116606-20130522211750.patch</filename>
            <type>text/plain</type>
            <size>202295</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MjMxODRlZTQ5Y2VmYmVlNzUxN2E4MjIzZDc4NzBhZDM5NGMxNTljLi5lYWNmYzMxNjExZjIxNTUy
MmYwMGE1OGZiMWZjZWJjYzAwYzUyZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMy0wNS0yMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0
Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEzLTA1LTIxICBCcmVudCBGdWxnaGFt
ICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5kb3dzXSBVbnJldmlld2VkIHNw
ZWN1bGF0aXZlIGZpeCBmb3IgdGVzdC1ib3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjNTk2YTg5MTg0YjgzNmFjM2NkN2Iz
YWRhZmIyYzlhOWIwNzQ0M2U0Li5hYzg0OTg2NTAzOTA0NzhlMDkyZTU4NDI3YTBiNWU1YWY3Yjk5
ZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAxMy0wNS0yMiAgUGF0cmljayBHYW5zdGVyZXIg
IDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3Jl
IHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE2NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2l0aCB0aGlzIGNoYW5nZSBSdW5Mb29wIGNhbiBiZSB1c2VkIGluIEphdmFTY3JpcHRDb3JlIHRv
by4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLnBybzoK
KyAgICAgICAgKiBXVEYudmNwcm9qL1dURi52Y3Byb2o6CisgICAgICAgICogV1RGLnZjeHByb2ov
V1RGLnZjeHByb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUJsYWNr
QmVycnkuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAq
IHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XaW5DRS5jbWFr
ZToKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3ApOgorICAgICAgICAo
UnVuTG9vcDo6SG9sZGVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6SG9sZGVyOjpIb2xkZXIp
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpIb2xkZXI6OnJ1bkxvb3ApOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpjdXJyZW50KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6bWFpbik6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2gp
OgorICAgICAgICAqIHd0Zi9SdW5Mb29wLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9SdW5Mb29wLmguCisgICAgICAgIChXVEYpOgorICAgICAgICAoUnVuTG9vcCk6Cisg
ICAgICAgIChUaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0
YXJ0UmVwZWF0aW5nKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydE9u
ZVNob3QpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzUmVwZWF0aW5nKToK
KyAgICAgICAgKFRpbWVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXI6OlRpbWVyKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXI6OmZpcmVkKToKKyAgICAgICAgKiB3dGYvV2lu
ZG93c0V4dHJhcy5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dp
bmRvd3NFeHRyYXMuaC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OmdldFJlZ2lzdHJ5
VmFsdWUpOgorICAgICAgICAoV1RGOjpnZXRXaW5kb3dQb2ludGVyKToKKyAgICAgICAgKFdURjo6
c2V0V2luZG93UG9pbnRlcik6CisgICAgICAgICogd3RmL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNr
QmVycnkuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJy
eS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAqIHd0Zi9lZmwvUnVuTG9vcEVm
bC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUnVuTG9vcEVm
bC5jcHAuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpydW4pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6d2FrZVVwRXZlbnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6
OlRpbWVyQmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFz
ZTo6c3RhcnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYv
Z3RrL1J1bkxvb3BHdGsuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1J1bkxvb3BHdGsuY3BwLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6aW5uZXJtb3N0TG9v
cCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnB1c2hOZXN0ZWRNYWluTG9vcCk6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnF1ZXVlV29yayk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNl
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spOgor
ICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJC
YXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogd3RmL21hYy9SdW5Mb29wTWFjLm1tOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9vcENGLmNwcC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9u
TWFpblJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpwZXJmb3JtV29yayk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp+UnVu
TG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6VGlt
ZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6aXNBY3RpdmUpOgorICAgICAgICAqIHd0Zi9xdC9SdW5Mb29wUXQuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChSdW5Mb29wOjpUaW1lck9iamVjdCk6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OlRpbWVyT2JqZWN0OjpUaW1lck9iamVjdCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6
OlRpbWVyT2JqZWN0OjpwZXJmb3JtV29yayk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
T2JqZWN0Ojp3YWtlVXApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lck9iamVjdDo6dGlt
ZXJFdmVudCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJ1bik6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OnN0b3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXAp
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQpOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRp
bWVyQmFzZTo6c3RhcnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3Ap
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAg
KiB3dGYvd2luL1J1bkxvb3BXaW4uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6UnVuTG9vcFduZFByb2MpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3bmRQcm9j
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5k
b3dDbGFzcyk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjp+UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChX
VEY6OmdlbmVyYXRlVGltZXJJRCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNl
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRp
bWVyQmFzZTo6aXNBY3RpdmUpOgorCiAyMDEzLTA1LTIxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdhM2Ux
MDQyOTg2ZmYwOGM0MzhmYzg5OGZlYjE1OTI2MzEwMTI3OGEuLjExNDQxYzAyYWYwMDYwYmVlNWM1
MWYzMDZkYjljNmE1MjczMDNlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMy0w
NS0yMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBN
b3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFBsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbkNFLmNtYWtlOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmg6CisgICAgICAgIChTY3JvbGxpbmdUaHJlYWQp
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAq
IHBsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1J1bkxvb3AuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL1J1bkxvb3AuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jZi9SdW5Mb29wQ0YuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9SdW5Mb29wRWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVGdWxsc2NyZWVuV2luZG93Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1J1bkxvb3BH
dGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SdW5Mb29wTWFjLm1tOiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vd2luL01JTUVUeXBlUmVnaXN0cnlXaW4uY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
UG9wdXBNZW51V2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1NoYXJlZFRpbWVyV2luLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vV2luZG93TWVzc2FnZUxpc3RlbmVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vd2luL1dpbmRvd3NFeHRyYXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbHVnaW5z
L3dpbi9QbHVnaW5EYXRhYmFzZVdpbi5jcHA6CisKIDIwMTMtMDUtMjEgIE1paGFpIFRpY2EgIDxt
aXRpY2FAYWRvYmUuY29tPgogICAgICAgICAKICAgICAgICAgVXBkYXRlIHRoZSBiYWNrZ3JvdW5k
IGJsZW5kaW5nIGltcGxlbWVudGF0aW9uIHRvIG1hdGNoIHRoZSBjaGFuZ2VzIGRvbmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwppbmRleCBjNGFhZTA4ODY2MTYyMjQ4NWRmYWJlYTI5ZjFmZmVmNDk5Y2ZkYjhiLi5i
NDg3YTllMTdlYmMxNmFmNzhkNDUyOTA4NzMzMGRjMjhiZDk2MDAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTEgQEAKKzIwMTMtMDUtMjIgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29yZSB0byBXVEYK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjYwNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2FyYm9u
L0NhcmJvbldpbmRvd0FkYXB0ZXIubW06CisgICAgICAgICgrW0NhcmJvbldpbmRvd0FkYXB0ZXIg
aW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tOgor
ICAgICAgICAoK1tXZWJCYWNrRm9yd2FyZExpc3QgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhp
c3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CisgICAgICAgICgrW1dlYkhpc3RvcnlJdGVtIGluaXRp
YWxpemVdKToKKyAgICAgICAgKiBNaXNjL1dlYkNhY2hlLm1tOgorICAgICAgICAoK1tXZWJDYWNo
ZSBpbml0aWFsaXplXSk6CisgICAgICAgICogTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbToK
KyAgICAgICAgKCtbV2ViRWxlbWVudERpY3Rpb25hcnkgaW5pdGlhbGl6ZV0pOgorICAgICAgICAq
IE1pc2MvV2ViSWNvbkRhdGFiYXNlLm1tOgorICAgICAgICAoK1tXZWJJY29uRGF0YWJhc2UgaW5p
dGlhbGl6ZV0pOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldy5tbToKKyAgICAgICAgKCtbV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGluaXRp
YWxpemVdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNr
YWdlLm1tOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2Fw
ZVBsdWdpblZpZXcubW06CisgICAgICAgICgrW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBpbml0aWFs
aXplXSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoK1tXZWJVbmRvU3RlcCBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgICogV2ViVmlldy9XZWJBcmNoaXZl
Lm1tOgorICAgICAgICAoK1tXZWJBcmNoaXZlUHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJEYXRhU291cmNlLm1tOgorICAgICAgICAoK1tXZWJEYXRhU291cmNlIGlu
aXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAo
K1tXZWJIVE1MVmlld1ByaXZhdGUgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoK1tXZWJIVE1MVmll
dyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAg
ICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcv
V2ViUmVzb3VyY2UubW06CisgICAgICAgICgrW1dlYlJlc291cmNlUHJpdmF0ZSBpbml0aWFsaXpl
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJUZXh0SXRlcmF0b3IubW06CisgICAgICAgICgrW1dl
YlRleHRJdGVyYXRvclByaXZhdGUgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAgICAgKCtbV2ViVmlld1ByaXZhdGUgaW5pdGlhbGl6
ZV0pOgorCiAyMDEzLTA1LTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAK
ICAgICAgICAgU3luY2hyb25pemUgRmVhdHVyZURlZmluZXMueGNjb25maWcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA2ZGZiOWQ1NjY5MDMzMDlkYmIwYmUxNjk0MmUzNDFiZDIyYmZlYzJmLi5lOWZlYTk2MTUyM2Ux
MDdmMDExNGUyMjMwZDcxOGFlMzA0MDBkYjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODYgQEAK
KzIwMTMtMDUtMjIgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29yZSB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjYwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmg6CisgICAgICAgICog
T2ZmbGluZVN0b3JhZ2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5jcHA6CisgICAgICAg
ICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9D
b3JlSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKENvbm5lY3Rpb24pOgorICAgICAgICAqIFBs
YXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwOgorICAgICAgICAqIFBsdWdpblBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbToK
KyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2lu
U2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKFBsdWdpbkNvbnRyb2xsZXJQcm94eSk6CisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAgICAgKiBQbHVnaW5Qcm9j
ZXNzL1BsdWdpblByb2Nlc3MuaDoKKyAgICAgICAgKFBsdWdpblByb2Nlc3MpOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFBsdWdp
blByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHA6CisgICAgICAgICogUGx1Z2luUHJv
Y2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHA6CisgICAgICAgICogU2hhcmVkL0No
aWxkUHJvY2Vzcy5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAg
ICAoQ2hpbGRQcm9jZXNzKToKKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNz
L0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNz
TWFpbik6CisgICAgICAgICogU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIpOgorICAgICAgICAqIFNoYXJlZFdvcmtlclByb2Nl
c3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHA6CisgICAgICAgICogU2hhcmVkV29ya2VyUHJvY2Vz
cy9TaGFyZWRXb3JrZXJQcm9jZXNzLmg6CisgICAgICAgIChTaGFyZWRXb3JrZXJQcm9jZXNzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93Lmg6CisgICAg
ICAgIChGaW5kSW5kaWNhdG9yV2luZG93KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW06CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0Fy
ZWFQcm94eUltcGwuaDoKKyAgICAgICAgKERyYXdpbmdBcmVhUHJveHlJbXBsKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHA6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICog
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1Jlc3Bv
bnNpdmVuZXNzVGltZXIuaDoKKyAgICAgICAgKFJlc3BvbnNpdmVuZXNzVGltZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5jcHA6
CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaDoKKyAgICAgICAgKFZp
c2l0ZWRMaW5rUHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29u
dGVudFByb2Nlc3NNYWluLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorICAgICAgICAoV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmg6CisgICAgICAgIChOUFJ1bnRpbWVPYmplY3RNYXAp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5o
OgorICAgICAgICAoVGltZXIpOgorICAgICAgICAoTmV0c2NhcGVQbHVnaW4pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oOgorICAg
ICAgICAoTmV0c2NhcGVQbHVnaW5TdHJlYW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChQbHVnaW5WaWV3KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmg6CisgICAgICAgIChEcmF3aW5nQXJlYUltcGwp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oOgorICAgICAgICAoUGFnZU92
ZXJsYXkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViUGFnZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9ndGsvV2Vi
UHJvY2Vzc01haW5HdGsuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc01h
aW5RdC5jcHA6CisKIDIwMTMtMDUtMjIgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBh
a3VsYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIENoYW5nZSBFd2tfQ29udGV4
dF9NZW51X0l0ZW0ncyBwYXJlbnQgbWVudSB0byByYXcgcG9pbnRlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA1ODBhYTFlNWQyZTQ4NjI2ZGJmOGI3Y2JiMjg1NGNmMTViMGU3NzRl
Li5mNjAyMDgyMmRlMTc4MDlmNzY3ZmNjMTVhYmUyZmUyZjY4MjNiOWNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNTA5LDYgKzUwOSw3IEBACiAJCTFBQ0Y3Mzc3MTcxQ0E2RkIw
MEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCAqLzsgfTsKIAkJ
MjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkx
RUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkx
RUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVy
LmggKi87IH07CisJCTJDQjNFNzE2MTczQUNBNzMwMEFBN0JGRCAvKiBBcHBLaXQuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNCM0U3
MTUxNzNBQ0E3MzAwQUE3QkZEIC8qIEFwcEtpdC5mcmFtZXdvcmsgKi87IH07CiAJCTQxMzU5Q0Yz
MEZERDg5QUQwMDIwNjE4MCAvKiBEYXRlQ29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIxMjAyMjkwQUQ0MzEwQzAwRUQ3OUI2IC8qIERh
dGVDb252ZXJzaW9uLmggKi87IH07CiAJCTQ0NDNBRTMzMTZFMTg4RDkwMDc2RjExMCAvKiBGb3Vu
ZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRjBFQjYxMDVDODZDNkIwMEU2REYxQiAvKiBGb3VuZGF0aW9uLmZyYW1ld29y
ayAqLzsgfTsKIAkJNDUxNTM5QjkxMkRDOTk0NTAwRUY3QUM0IC8qIFlhcnIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MTUzOUI4MTJEQzk5NDUwMEVG
N0FDNCAvKiBZYXJyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTEzODgsNiArMTM4OSw3IEBACiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAv
KiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZh
U2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNDE1MkJB
QUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCM0U3MTUxNzNBQ0E3MzAwQUE3QkZEIC8qIEFwcEtpdC5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcEtpdC5mcmFtZXdvcms7IHBhdGggPSAvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxh
YnNvbHV0ZT4iOyB9OwogCQk0NDkwOTdFRTBGOEY4MUI1MDA3NkEzMjcgLyogRmVhdHVyZURlZmlu
ZXMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRmVhdHVyZURlZmlu
ZXMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MTUzOUI4MTJEQzk5
NDUwMEVGN0FDNCAvKiBZYXJyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFlh
cnIuaDsgcGF0aCA9IHlhcnIvWWFyci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NUUxMkQ4ODA2QTQ5QjBGMDBFOURGODQgLyoganNjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGpzYy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gNDsgfTsKQEAgLTE4NjQsNiArMTg2Niw3IEBACiAJCQlpc2Eg
PSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkyQ0IzRTcxNjE3M0FDQTczMDBBQTdCRkQgLyogQXBwS2l0
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTkzMkY1QkQzMDgyMkExQzcwMDczNjk3
NSAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlBNzMx
QjI1QTEzMDA5Mzg4MDA0MEE3RkEgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCQk5MzJGNUJENzA4MjJBMUM3MDA3MzY5NzUgLyogbGliaWN1Y29yZS5keWxpYiBp
biBGcmFtZXdvcmtzICovLApAQCAtMTk0MCw2ICsxOTQzLDcgQEAKIAkJMDg2N0Q2OUFGRTg0MDI4
RkMwMkFBQzA3IC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTJDQjNFNzE1MTczQUNBNzMwMEFBN0JGRCAvKiBBcHBLaXQuZnJhbWV3
b3JrICovLAogCQkJCTY1NjBBNENGMDRCM0IzRTcwMDhBRTk1MiAvKiBDb3JlRm91bmRhdGlvbi5m
cmFtZXdvcmsgKi8sCiAJCQkJNTFGMEVCNjEwNUM4NkM2QjAwRTZERjFCIC8qIEZvdW5kYXRpb24u
ZnJhbWV3b3JrICovLAogCQkJCTVENUQ4QUQwMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5
bGliICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDFkN2YwYjM2MmEyZmY1YWFmMzRlZGM3
ODY2NWRjMWE0ZWYzNTg1NDguLmE4ZDA2YTIzNTI4OTMzYTVkOGVmNTA2NWUwNWVmZTkyNmVhODFj
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE0MCw2ICsxNDAsOCBAQCB3dGZfc291cmNl
cyArPSBcCiAgICAgU291cmNlL1dURi93dGYvUmVmUHRyLmggXAogICAgIFNvdXJjZS9XVEYvd3Rm
L1JlZlB0ckhhc2hNYXAuaCBcCiAgICAgU291cmNlL1dURi93dGYvUmV0YWluUHRyLmggXAorICAg
IFNvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29w
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1NIQTEuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9T
SEExLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1NhdHVyYXRlZEFyaXRobWV0aWMuaCBcCkBAIC0y
MjAsNiArMjIyLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL2dvYmpl
Y3QvR2xpYlV0aWxpdGllcy5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL2dvYmplY3QvR2xpYlV0
aWxpdGllcy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9ndGsvTWFpblRocmVhZEd0ay5jcHAgXAor
ICAgIFNvdXJjZS9XVEYvd3RmL2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAgICAgU291cmNlL1dURi93
dGYvdGV4dC9BU0NJSUZhc3RQYXRoLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWlj
U3RyaW5nLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXgg
ZTNmOTBiODc4ODFiMTljODMyZDZhNDJiZmRmZGZmYzc4MTU3ZTdhOS4uYTZmNWM1YjVmMzE0MjVh
MGU5ZmU0ODkzMzNmNjE3MDViNTA5Y2YzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJv
CisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMTI4LDYgKzEyOCw3IEBAIEhFQURFUlMgKz0g
XAogICAgIFJlZlB0ci5oIFwKICAgICBSZWZQdHJIYXNoTWFwLmggXAogICAgIFJldGFpblB0ci5o
IFwKKyAgICBSdW5Mb29wLmggXAogICAgIFNIQTEuaCBcCiAgICAgU2F0dXJhdGVkQXJpdGhtZXRp
Yy5oIFwKICAgICBTcGVjdHJ1bS5oIFwKQEAgLTIxNiw4ICsyMTcsMTAgQEAgU09VUkNFUyArPSBc
CiAgICAgTnVsbFB0ci5jcHAgXAogICAgIE51bWJlck9mQ29yZXMuY3BwIFwKICAgICBSQU1TaXpl
LmNwcCBcCisgICAgUnVuTG9vcC5jcHAgXAogICAgIE9TUmFuZG9tU291cmNlLmNwcCBcCiAgICAg
cXQvTWFpblRocmVhZFF0LmNwcCBcCisgICAgcXQvUnVuTG9vcFF0LmNwcCBcCiAgICAgcXQvU3Ry
aW5nUXQuY3BwIFwKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwIFwKICAgICBQYWdlQmxv
Y2suY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qIGIv
U291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggMzAxYThiZmRiY2MzZTVlNTVi
MTRlYWQ4OTRhN2IyYjE1MGM3NzFlMS4uMTBmOTY3NzdmOWJmNWI1NjU3ODcyZWFlMjNjYmQ4NjVk
ZTY2OWJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKKysr
IGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTM0NSw2ICszNDUsMTAgQEAK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0Zlx3aW5cT3duUHRyV2luLmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXHdpblxSdW5Mb29wV2lu
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCiAJCQlOYW1l
PSJ1bmljb2RlIgpAQCAtMTEyNyw2ICsxMTMxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZp
bGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXFJ1bkxvb3AuY3BwIgorCQkJPgorCQk8L0ZpbGU+
CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxSdW5Mb29wLmgiCisJCQk+CisJCTwv
RmlsZT4KKwkJPEZpbGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXFNhdHVyYXRlZEFyaXRobWV0
aWMuaCIKIAkJCT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmN4cHJv
ai9XVEYudmN4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oKaW5kZXgg
NmU3ZjRiMzgwNzAzYzRkYmRjZTAzNTM4NTNlYmI0YTJiMjA5NzM3MS4uNGQxYzdhZWE3NGEyOWEw
ZDc5ZWU0OWI2MzViNjA0OGJmZWUxZjczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmN4
cHJvai9XVEYudmN4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9q
CkBAIC02Niw2ICs2Niw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcUkFNU2l6
ZS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFJhbmRvbU51bWJlci5j
cHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFJlZkNvdW50ZWRMZWFrQ291
bnRlci5jcHAiIC8+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFJ1bkxvb3AuY3Bw
IiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxTSEExLmNwcCIgLz4NCiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcU2l6ZUxpbWl0cy5jcHAiIC8+DQogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cd3RmXFN0YWNrQm91bmRzLmNwcCIgLz4NCkBAIC04OCw2ICs4OSw3
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcdW5pY29kZVxVVEY4LmNwcCIgLz4N
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcd2luXE1haW5UaHJlYWRXaW4uY3BwIiAv
Pg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0Zlx3aW5cT3duUHRyV2luLmNwcCIgLz4N
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcd2luXFJ1bkxvb3BXaW4uY3BwIiAvPg0K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxXVEZUaHJlYWREYXRhLmNwcCIgLz4NCiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcU2NoZWR1bGVQYWlyQ0YuY3BwIiAvPg0KICAg
PC9JdGVtR3JvdXA+DQpAQCAtMjAwLDYgKzIwMiw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlx3dGZcUmVmUHRyLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJl
ZlB0ckhhc2hNYXAuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUmV0YWlu
UHRyLmgiIC8+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJ1bkxvb3AuaCIgLz4N
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU2F0dXJhdGVkQXJpdGhtZXRpYy5oIiAv
Pg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTY2hlZHVsZVBhaXIuaCIgLz4NCiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU2VnbWVudGVkVmVjdG9yLmgiIC8+DQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWMyYmExZmQ3NzE5Njc1
ZmQxYmQ3MWU3YjVmZWI5YWMxNzA1MGY5OS4uY2JlOTM4NjIyNWVlZTRmY2NhYTA3OTU0NmRhY2Ew
MDQxNDE1MjBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC00Nyw2ICs0Nyw5IEBACiAJCTFBNkJCNzY5MTYyRjMwMDUwMEREMTZEQiAvKiBTdHJlYW1CdWZm
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkJC
NzY4MTYyRjMwMDUwMEREMTZEQiAvKiBTdHJlYW1CdWZmZXIuaCAqLzsgfTsKIAkJMjYxNDdCMEEx
NUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MTQ3QjA4MTVERENDREMwMERE
QjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggKi87IH07CiAJCTJDMDUzODU0MTVC
QzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRlVGltZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwNTM4NTMxNUJDODE5MDAwRjIxQjk2IC8qIEdy
ZWdvcmlhbkRhdGVUaW1lLmggKi87IH07CisJCTJDQjNFNzExMTczQUI4QkYwMEFBN0JGRCAvKiBS
dW5Mb29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJDQjNFNzBGMTczQUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29wLmNwcCAqLzsgfTsKKwkJMkNCM0U3
MTIxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQjNFNzEwMTczQUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29w
LmggKi87IH07CisJCTJDQjNFNzE0MTczQUI4RUIwMEFBN0JGRCAvKiBSdW5Mb29wTWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNCM0U3MTMxNzNB
QjhFQjAwQUE3QkZEIC8qIFJ1bkxvb3BNYWMubW0gKi87IH07CiAJCTJDQ0Q4OTJBMTVDMDM5MDIw
MDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0NEODkyOTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29y
aWFuRGF0ZVRpbWUuY3BwICovOyB9OwogCQk0NEY2NjAwODE3MUFGQUU2MDBFNEFEMTkgLyogRW51
bUNsYXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NEY2NjAwNzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi87IH07CiAJCTRGMDMyMUJD
MTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5
LmggKi87IH07CkBAIC0zMTAsNiArMzEzLDkgQEAKIAkJMUE2QkI3NjgxNjJGMzAwNTAwREQxNkRC
IC8qIFN0cmVhbUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJl
YW1CdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NE
QzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyQzA1Mzg1MzE1QkM4MTkwMDBGMjFCOTYgLyogR3JlZ29yaWFu
RGF0ZVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JlZ29yaWFuRGF0
ZVRpbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCM0U3MEYxNzNBQjhCRjAw
QUE3QkZEIC8qIFJ1bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUnVuTG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDQjNFNzEwMTcz
QUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJ1bkxvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCM0U3MTMxNzNB
QjhFQjAwQUE3QkZEIC8qIFJ1bkxvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBSdW5Mb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyQ0NEODkyOTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JlZ29yaWFuRGF0ZVRpbWUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NERFRTc0QTE1MjI3NEJCMDBDNkVDMzcgLyog
aU9TLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IGlPUy54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRGNjYwMDcxNzFBRkFBOTAwRTRBRDE5
IC8qIEVudW1DbGFzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbnVtQ2xhc3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTc0MCw2ICs3NDYsOCBAQAogCQkJCUE4QTQ3MzAzMTUxQTgyNUIw
MDQxMjNGRiAvKiBSZWZQdHIuaCAqLywKIAkJCQlBOEE0NzMwNDE1MUE4MjVCMDA0MTIzRkYgLyog
UmVmUHRySGFzaE1hcC5oICovLAogCQkJCUE4QTQ3MzA1MTUxQTgyNUIwMDQxMjNGRiAvKiBSZXRh
aW5QdHIuaCAqLywKKwkJCQkyQ0IzRTcwRjE3M0FCOEJGMDBBQTdCRkQgLyogUnVuTG9vcC5jcHAg
Ki8sCisJCQkJMkNCM0U3MTAxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkx
NDY5NDE5MDE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi8sCiAJCQkJMTQ2OTQx
OTExNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAqLywKIAkJCQkxNEYzQjBG
NjE1RTQ1RTQ2MDAyMTAwNjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpYy5oICovLApAQCAtODMzLDYg
Kzg0MSw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUE4QTQ3
MkM1MTUxQTgyNUEwMDQxMjNGRiAvKiBNYWluVGhyZWFkTWFjLm1tICovLAorCQkJCTJDQjNFNzEz
MTczQUI4RUIwMEFBN0JGRCAvKiBSdW5Mb29wTWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBt
YWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTAzNCw2ICsxMDQzLDggQEAKIAkJ
CQlBOEE0NzQxQzE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEE0NzQxRDE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDc0MUUxNTFBODI1QjAwNDEyM0ZGIC8qIFJldGFpblB0ci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMkNCM0U3MTIxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxvb3AuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTE0RjNCMEY3MTVFNDVFNDYwMDIxMDA2OSAvKiBTYXR1cmF0ZWRB
cml0aG1ldGljLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ2NjE1MUE4MjVCMDA0MTIzRkYg
LyogU2NyaXB0Q29kZXNGcm9tSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQxRjE1MUE4
MjVCMDA0MTIzRkYgLyogU2VnbWVudGVkVmVjdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTEyMTAs
NiArMTIyMSw4IEBACiAJCQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51
bWJlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQxQTE1MUE4MjVCMDA0MTIzRkYgLyog
UmVmQ291bnRlZExlYWtDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDQjNFNzExMTcz
QUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDQjNFNzE0
MTczQUI4RUIwMEFBN0JGRCAvKiBSdW5Mb29wTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0MjExNTFBODI1QjAwNDEyM0ZGIC8qIFNIQTEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0MjUxNTFBODI1QjAwNDEyM0ZGIC8qIFNpemVMaW1pdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDc0MjcxNTFBODI1QjAwNDEyM0ZGIC8qIFN0YWNrQm91bmRzLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA1YmNkMzM2Y2VkMjM3MDg5MWU1Mzc2MGU4NDNj
NmU2MjA4NjU3NWFhLi4yMGE2N2IwNmJlZGNiZmI0MmVmM2U3ZWI5NGJmMzI2NDc2YjcyMmI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNTYsNiArNTYsNyBAQCBzZXQoV1RGX0hFQURFUlMKICAg
ICBOdWxsUHRyLmgKICAgICBOdW1iZXJPZkNvcmVzLmgKICAgICBSQU1TaXplLmgKKyAgICBSdW5M
b29wLmgKICAgICBPU0FsbG9jYXRvci5oCiAgICAgT1NSYW5kb21Tb3VyY2UuaAogICAgIE93bkFy
cmF5UHRyLmgKQEAgLTE2Nyw2ICsxNjgsNyBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBPU1JhbmRv
bVNvdXJjZS5jcHAKICAgICBOdW1iZXJPZkNvcmVzLmNwcAogICAgIFJBTVNpemUuY3BwCisgICAg
UnVuTG9vcC5jcHAKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwCiAgICAgUGFnZUJsb2Nr
LmNwcAogICAgIFBhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUJs
YWNrQmVycnkuY21ha2UKaW5kZXggZmI5Y2M1MTJkNWUyNDdmMzU5ZjI2M2UyY2VjOGYwMzA3Yjcy
NGZlZS4uN2QxNGU3YWQ5NDc2MjY4ZDkyOGE3ZGY5NTRlOTVmNDFhNmY1OGUzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtMSw1ICsxLDYgQEAKIGxpc3QoQVBQ
RU5EIFdURl9TT1VSQ0VTCiAgICAgYmxhY2tiZXJyeS9NYWluVGhyZWFkQmxhY2tCZXJyeS5jcHAK
KyAgICBibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcAogKQogCiBsaXN0KElOU0VSVCBX
VEZfSU5DTFVERV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGM1
OWY0OTcyZjc2YWM0YTZkY2ZjNjA3OGIwZjhiNzBjOWY2MzY5MzkuLjk4M2VlOWU3NzI2YWM3MmNi
OGQxYWZlOTNlMmFmNGYxMGYwYmUzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0y
LDYgKzIsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGVmbC9NYWluVGhyZWFkRWZs
LmNwcAogICAgIGVmbC9Pd25QdHJFZmwuY3BwCiAgICAgZWZsL1JlZlB0ckVmbC5jcHAKKyAgICBl
ZmwvUnVuTG9vcEVmbC5jcHAKIAogICAgIGdvYmplY3QvR093blB0ci5jcHAKICAgICBnb2JqZWN0
L0dSZWZQdHIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFr
ZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDUwMDIxNmU3NTJhYWE0
NDIwNDEyNDQ1NTk2ODY0ZWJlMDdmNjg1ODkuLmQ1YjZkMDMxNjFhY2RmOGJmOGE0NDA0ZDNiNTM1
Mzg2ODRiNWNiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtl
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC00LDYgKzQsNyBAQCBs
aXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGdvYmplY3QvR1JlZlB0ci5jcHAKIAogICAgIGd0
ay9NYWluVGhyZWFkR3RrLmNwcAorICAgIGd0ay9SdW5Mb29wR3RrLmNwcAogKQogCiBsaXN0KEFQ
UEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdp
bkNFLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1XaW5DRS5jbWFrZQppbmRleCA2YTkx
YzUwYzFiN2NmNDJkZWMzOWE3MTg4NjQ4ZTgwNmQ3ZDExZDg2Li5iZmVlMjZjMDFhM2E1NTQyZDJi
NDJmMWFiMDkxNzNiZGVmYmI3OWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVdpbkNFLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luQ0UuY21ha2UKQEAg
LTIsNiArMiw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdGhyZWFkcy93aW4vQmlu
YXJ5U2VtYXBob3JlV2luLmNwcAogCiAgICAgd2luL01haW5UaHJlYWRXaW4uY3BwCisgICAgd2lu
L1J1bkxvb3BXaW4uY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzhmYjljODBlZDc3YmI5YjRlODBlYzc1ZDEwNDQ2Njc3N2UyNDM4Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCkBAIC0wLDAgKzEs
MTMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxv
b3AuaCIKKworI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvVGhy
ZWFkU3BlY2lmaWMuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiAhUExBVEZPUk0oTUFDKQor
dm9pZCBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wKCkKK3sK
K30KKyNlbmRpZgorCitzdGF0aWMgUnVuTG9vcCogc19tYWluUnVuTG9vcDsKKworLy8gSGVscGVy
IGNsYXNzIGZvciBUaHJlYWRTcGVjaWZpY0RhdGEuCitjbGFzcyBSdW5Mb29wOjpIb2xkZXIgewor
cHVibGljOgorICAgIEhvbGRlcigpCisgICAgICAgIDogbV9ydW5Mb29wKGFkb3B0UmVmKG5ldyBS
dW5Mb29wKSkKKyAgICB7CisgICAgfQorCisgICAgUnVuTG9vcCogcnVuTG9vcCgpIGNvbnN0IHsg
cmV0dXJuIG1fcnVuTG9vcC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxSdW5Mb29w
PiBtX3J1bkxvb3A7Cit9OworCit2b2lkIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
Cit7CisgICAgaWYgKHNfbWFpblJ1bkxvb3ApCisgICAgICAgIHJldHVybjsKKyAgICBzX21haW5S
dW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworfQorCitSdW5Mb29wKiBSdW5Mb29wOjpjdXJy
ZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVu
TG9vcDo6SG9sZGVyPiwgcnVuTG9vcEhvbGRlciwgKCkpOworICAgIHJldHVybiBydW5Mb29wSG9s
ZGVyLT5ydW5Mb29wKCk7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6Om1haW4oKQoreworICAgIEFT
U0VSVChzX21haW5SdW5Mb29wKTsKKyAgICByZXR1cm4gc19tYWluUnVuTG9vcDsKK30KKwordm9p
ZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCit7CisgICAgLy8gSXQgaXMgaW1wb3J0YW50IHRvIGhh
bmRsZSB0aGUgZnVuY3Rpb25zIGluIHRoZSBxdWV1ZSBvbmUgYXQgYSB0aW1lIGJlY2F1c2Ugd2hp
bGUgaW5zaWRlIG9uZSBvZiB0aGVzZQorICAgIC8vIGZ1bmN0aW9ucyB3ZSBtaWdodCByZS1lbnRl
ciBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGFuZCB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gcGljayB1
cCB3aGVyZSB3ZSBsZWZ0IG9mZi4KKyAgICAvLyBTZWUgaHR0cDovL3dlYmtpdC5vcmcvYi84OTU5
MCBmb3IgbW9yZSBkaXNjdXNzaW9uLgorCisgICAgLy8gT25lIHBvc3NpYmxlIHNjZW5hcmlvIHdo
ZW4gaGFuZGxpbmcgdGhlIGZ1bmN0aW9uIHF1ZXVlIGlzIGFzIGZvbGxvd3M6CisgICAgLy8gLSBS
dW5Mb29wOjpwZXJmb3JtV29yaygpIGlzIGludm9rZWQgd2l0aCAxIGZ1bmN0aW9uIG9uIHRoZSBx
dWV1ZQorICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBmdW5jdGlvbiByZXN1bHRzIGluIDEgbW9yZSBm
dW5jdGlvbiBiZWluZyBlbnF1ZXVlZAorICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBvbmUgcmVzdWx0
cyBpbiB5ZXQgYW5vdGhlciBiZWluZyBlbnF1ZXVlZAorICAgIC8vIC0gQW5kIHNvIG9uCisgICAg
Ly8KKyAgICAvLyBJbiB0aGlzIHNpdHVhdGlvbiBvbmUgaW52b2NhdGlvbiBvZiBwZXJmb3JtV29y
aygpIG5ldmVyIHJldHVybnMgc28gYWxsIG90aGVyIGV2ZW50IHNvdXJjZXMgYXJlIGJsb2NrZWQu
CisgICAgLy8gQnkgb25seSBoYW5kbGluZyB1cCB0byB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucyB0
aGF0IHdlcmUgaW4gdGhlIHF1ZXVlIHdoZW4gcGVyZm9ybVdvcmsoKSBpcyBjYWxsZWQKKyAgICAv
LyB3ZSBndWFyYW50ZWUgdG8gb2NjYXNpb25hbGx5IHJldHVybiBmcm9tIHRoZSBydW4gbG9vcCBz
byBvdGhlciBldmVudCBzb3VyY2VzIHdpbGwgYmUgYWxsb3dlZCB0byBzcGluLgorCisgICAgRnVu
Y3Rpb248dm9pZCgpPiBmdW5jdGlvbjsKKyAgICBzaXplX3QgZnVuY3Rpb25zVG9IYW5kbGUgPSAw
OworCisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9j
ayk7CisgICAgICAgIGZ1bmN0aW9uc1RvSGFuZGxlID0gbV9mdW5jdGlvblF1ZXVlLnNpemUoKTsK
KworICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBmdW5jdGlvbiA9IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbigpOworCisgICAgZm9yIChzaXplX3QgZnVuY3Rpb25zSGFu
ZGxlZCA9IDE7IGZ1bmN0aW9uc0hhbmRsZWQgPCBmdW5jdGlvbnNUb0hhbmRsZTsgKytmdW5jdGlv
bnNIYW5kbGVkKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2Z1bmN0aW9uUXVldWVMb2NrKTsKKworICAgICAgICAgICAgLy8gRXZlbiBpZiB3ZSBzdGFydCBv
ZmYgd2l0aCBOIGZ1bmN0aW9ucyB0byBoYW5kbGUgYW5kIHdlJ3ZlIG9ubHkgaGFuZGxlZCBsZXNz
IHRoYW4gTiBmdW5jdGlvbnMsIHRoZSBxdWV1ZQorICAgICAgICAgICAgLy8gc3RpbGwgbWlnaHQg
YmUgZW1wdHkgYmVjYXVzZSB0aG9zZSBmdW5jdGlvbnMgbWlnaHQgaGF2ZSBiZWVuIGhhbmRsZWQg
aW4gYW4gaW5uZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKS4KKyAgICAgICAgICAgIC8vIEluIHRo
YXQgY2FzZSB3ZSBzaG91bGQgYmFpbCBoZXJlLgorICAgICAgICAgICAgaWYgKG1fZnVuY3Rpb25R
dWV1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGZ1
bmN0aW9uID0gbV9mdW5jdGlvblF1ZXVlLnRha2VGaXJzdCgpOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBmdW5jdGlvbigpOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpkaXNwYXRj
aChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAgICBNdXRleExvY2tlciBs
b2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7CisgICAgbV9mdW5jdGlvblF1ZXVlLmFwcGVuZChm
dW5jdGlvbik7CisKKyAgICB3YWtlVXAoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29w
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGI0ZjFhMzhmOWY2NDI4NGYyZjExN2VmNGVlNWM0YjQxZDU2MzhjZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAtMCwwICsxLDE4
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3Jv
bGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgUnVuTG9vcF9oCisjZGVmaW5lIFJ1bkxvb3BfaAorCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb25EaXNwYXRj
aGVyLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5n
Lmg+CisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5o
PgorI2VuZGlmCisKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8RWNvcmUuaD4KKyNlbmRp
ZgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlvbkRp
c3BhdGNoZXIgeworcHVibGljOgorICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4g
dGhyZWFkIChleGNlcHQgZm9yIHRoZSBNYWMgcGxhdGZvcm0sIHdoZXJlIGl0CisgICAgLy8gY2Fu
IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQpLgorICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0
aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAgIC8vIE11c3QgYmUgY2FsbGVk
IGJlZm9yZSBlbnRlcmluZyBtYWluIHJ1biBsb29wLiBJZiBjYWxsZWQsIGFwcGxpY2F0aW9uIHN0
eWxlIHJ1biBsb29wIHdpbGwgYmUgdXNlZCwgaGFuZGxpbmcgZXZlbnRzLgorICAgIFdURl9FWFBP
UlRfUFJJVkFURSBzdGF0aWMgdm9pZCBzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5M
b29wKCk7CisKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJ1bkxvb3AqIGN1cnJlbnQo
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJ1bkxvb3AqIG1haW4oKTsKKyAgICB+
UnVuTG9vcCgpOworCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JikgT1ZFUlJJREU7CisKKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIHZvaWQgcnVuKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3Rv
cCgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdha2VVcCgpOworCisjaWYgUExBVEZP
Uk0oTUFDKQorICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJ1bkZvckR1cmF0aW9uKGRvdWJs
ZSBkdXJhdGlvbik7CisjZW5kaWYKKworICAgIGNsYXNzIFRpbWVyQmFzZSB7CisgICAgICAgIGZy
aWVuZCBjbGFzcyBSdW5Mb29wOworICAgIHB1YmxpYzoKKyAgICAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFRpbWVyQmFzZShSdW5Mb29wKik7CisgICAgICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2aXJ0dWFsIH5UaW1lckJhc2UoKTsKKworICAgICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5n
KGRvdWJsZSByZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1ZSk7IH0K
KyAgICAgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0KGludGVy
dmFsLCBmYWxzZSk7IH0KKworICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdG9wKCk7
CisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzQWN0aXZlKCkgY29uc3Q7CisKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOworCisgICAgcHJpdmF0ZToKKyAgICAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJv
b2wgcmVwZWF0KTsKKworICAgICAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisKKyNpZiBQTEFURk9S
TShXSU4pCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90
IElEKTsKKyAgICAgICAgdWludDY0X3QgbV9JRDsKKyAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5n
OworI2VsaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENG
UnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CisgICAgICAgIFJldGFpblB0cjxDRlJ1bkxvb3BUaW1l
clJlZj4gbV90aW1lcjsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgICAgICBzdGF0aWMgdm9pZCB0
aW1lckZpcmVkKFJ1bkxvb3AqLCBpbnQgSUQpOworICAgICAgICBpbnQgbV9JRDsKKyAgICAgICAg
Ym9vbCBtX2lzUmVwZWF0aW5nOworI2VsaWYgUExBVEZPUk0oR1RLKQorICAgICAgICBzdGF0aWMg
Z2Jvb2xlYW4gdGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOworICAgICAg
ICBnYm9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRpbmc7IH0K
KyAgICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7CisgICAgICAgIEdSZWZQdHI8R1NvdXJj
ZT4gbV90aW1lclNvdXJjZTsKKyAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsKKyNlbGlm
IFBMQVRGT1JNKEVGTCkKKyAgICAgICAgc3RhdGljIGJvb2wgdGltZXJGaXJlZCh2b2lkKiBkYXRh
KTsKKyAgICAgICAgRWNvcmVfVGltZXIqIG1fdGltZXI7CisgICAgICAgIGJvb2wgbV9pc1JlcGVh
dGluZzsKKyNlbmRpZgorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJl
ZENsYXNzPgorICAgIGNsYXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7CisgICAgcHVibGlj
OgorICAgICAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5j
dGlvbikoKTsKKworICAgICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xh
c3MqIG8sIFRpbWVyRmlyZWRGdW5jdGlvbiBmKQorICAgICAgICAgICAgOiBUaW1lckJhc2UocnVu
TG9vcCkKKyAgICAgICAgICAgICwgbV9vYmplY3QobykKKyAgICAgICAgICAgICwgbV9mdW5jdGlv
bihmKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1
YWwgdm9pZCBmaXJlZCgpIHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQorCisgICAgICAg
IFRpbWVyRmlyZWRDbGFzcyogbV9vYmplY3Q7CisgICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBt
X2Z1bmN0aW9uOworICAgIH07CisKKyAgICBjbGFzcyBIb2xkZXI7CisKK3ByaXZhdGU6CisgICAg
UnVuTG9vcCgpOworCisgICAgdm9pZCBwZXJmb3JtV29yaygpOworCisgICAgTXV0ZXggbV9mdW5j
dGlvblF1ZXVlTG9jazsKKyAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+ID4gbV9mdW5jdGlvblF1
ZXVlOworCisjaWYgUExBVEZPUk0oV0lOKQorICAgIHN0YXRpYyBib29sIHJlZ2lzdGVyUnVuTG9v
cE1lc3NhZ2VXaW5kb3dDbGFzcygpOworICAgIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFJ1bkxv
b3BXbmRQcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKKyAgICBMUkVTVUxUIHduZFBy
b2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0p
OworICAgIEhXTkQgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdzsKKworICAgIHR5cGVkZWYgSGFzaE1h
cDx1aW50NjRfdCwgVGltZXJCYXNlKj4gVGltZXJNYXA7CisgICAgVGltZXJNYXAgbV9hY3RpdmVU
aW1lcnM7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIHZvaWQgcGVyZm9ybVdvcmso
dm9pZCopOworICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fcnVuTG9vcDsKKyAgICBSZXRh
aW5QdHI8Q0ZSdW5Mb29wU291cmNlUmVmPiBtX3J1bkxvb3BTb3VyY2U7CisgICAgaW50IG1fbmVz
dGluZ0xldmVsOworI2VsaWYgUExBVEZPUk0oUVQpCisgICAgdHlwZWRlZiBIYXNoTWFwPGludCwg
VGltZXJCYXNlKj4gVGltZXJNYXA7CisgICAgVGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7CisgICAg
Y2xhc3MgVGltZXJPYmplY3Q7CisgICAgVGltZXJPYmplY3QqIG1fdGltZXJPYmplY3Q7CisjZWxp
ZiBQTEFURk9STShHVEspCitwdWJsaWM6CisgICAgc3RhdGljIGdib29sZWFuIHF1ZXVlV29yayhS
dW5Mb29wKik7CisgICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wKCk7CisgICAgdm9pZCBwdXNo
TmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKik7CisgICAgdm9pZCBwb3BOZXN0ZWRNYWluTG9vcCgp
OworcHJpdmF0ZToKKyAgICBHUmVmUHRyPEdNYWluQ29udGV4dD4gbV9ydW5Mb29wQ29udGV4dDsK
KyAgICBWZWN0b3I8R1JlZlB0cjxHTWFpbkxvb3A+ID4gbV9ydW5Mb29wTWFpbkxvb3BzOworI2Vs
aWYgUExBVEZPUk0oRUZMKQorICAgIGJvb2wgbV9pbml0RWZsOworCisgICAgTXV0ZXggbV9waXBl
TG9jazsKKyAgICBPd25QdHI8RWNvcmVfUGlwZT4gbV9waXBlOworCisgICAgTXV0ZXggbV93YWtl
VXBFdmVudFJlcXVlc3RlZExvY2s7CisgICAgYm9vbCBtX3dha2VVcEV2ZW50UmVxdWVzdGVkOwor
CisgICAgc3RhdGljIHZvaWQgd2FrZVVwRXZlbnQodm9pZCogZGF0YSwgdm9pZCosIHVuc2lnbmVk
IGludCk7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlJ1
bkxvb3A7CisKKyNlbmRpZiAvLyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1dpbmRvd3NFeHRyYXMuaCBiL1NvdXJjZS9XVEYvd3RmL1dpbmRvd3NFeHRyYXMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZmM2YjIwMWMzMzU5M2NmOGVjNmQ0MzAzNzg3NTdlYTIzZWM0OWEwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvV2luZG93c0V4dHJhcy5oCkBAIC0wLDAgKzEsNzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJv
Z2EuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2luZG93c0V4dHJhc19oCisjZGVmaW5lIFdpbmRvd3NFeHRyYXNfaAorCisj
aW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPG9iamJhc2UuaD4KKyNpbmNsdWRlIDxzaGx3
YXBpLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisjaWZuZGVmIEhXTkRfTUVTU0FHRQorY29uc3Qg
SFdORCBIV05EX01FU1NBR0UgPSAwOworI2VuZGlmCisKK2lubGluZSBIUkVTVUxUIGdldFJlZ2lz
dHJ5VmFsdWUoSEtFWSBoa2V5LCBMUENXU1RSIHBzelN1YktleSwgTFBDV1NUUiBwc3pWYWx1ZSwg
TFBEV09SRCBwZHdUeXBlLCBMUFZPSUQgcHZEYXRhLCBMUERXT1JEIHBjYkRhdGEpCit7CisjaWYg
T1MoV0lOQ0UpCisgICAgSEtFWSBrZXk7CisgICAgaWYgKDo6UmVnT3BlbktleUV4Vyhoa2V5LCBw
c3pTdWJLZXksIDAsIDAsICZrZXkpICE9IEVSUk9SX1NVQ0NFU1MpCisgICAgICAgIHJldHVybiBF
UlJPUl9JTlZBTElEX05BTUU7CisgICAgSFJFU1VMVCByZXN1bHQgPSA6OlJlZ1F1ZXJ5VmFsdWVF
eFcoa2V5LCBwc3pWYWx1ZSwgMCwgcGR3VHlwZSwgc3RhdGljX2Nhc3Q8TFBCWVRFPihwdkRhdGEp
LCBwY2JEYXRhKTsKKyAgICA6OlJlZ0Nsb3NlS2V5KGtleSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
KyNlbHNlCisgICAgcmV0dXJuIDo6U0hHZXRWYWx1ZVcoaGtleSwgcHN6U3ViS2V5LCBwc3pWYWx1
ZSwgcGR3VHlwZSwgcHZEYXRhLCBwY2JEYXRhKTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCog
Z2V0V2luZG93UG9pbnRlcihIV05EIGhXbmQsIGludCBpbmRleCkKK3sKKyNpZiBPUyhXSU5DRSkK
KyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oOjpHZXRXaW5kb3dMb25nKGhXbmQs
IGluZGV4KSk7CisjZWxzZQorICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPig6Okdl
dFdpbmRvd0xvbmdQdHIoaFduZCwgaW5kZXgpKTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCog
c2V0V2luZG93UG9pbnRlcihIV05EIGhXbmQsIGludCBpbmRleCwgdm9pZCogdmFsdWUpCit7Cisj
aWYgT1MoV0lOQ0UpCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDo6U2V0V2lu
ZG93TG9uZyhoV25kLCBpbmRleCwgcmVpbnRlcnByZXRfY2FzdDxMT05HPih2YWx1ZSkpKTsKKyNl
bHNlCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDo6U2V0V2luZG93TG9uZ1B0
cihoV25kLCBpbmRleCwgcmVpbnRlcnByZXRfY2FzdDxMT05HX1BUUj4odmFsdWUpKSk7CisjZW5k
aWYKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6Z2V0UmVnaXN0cnlWYWx1
ZTsKK3VzaW5nIFdURjo6Z2V0V2luZG93UG9pbnRlcjsKK3VzaW5nIFdURjo6c2V0V2luZG93UG9p
bnRlcjsKKworI2VuZGlmIC8vIFdpbmRvd3NFeHRyYXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9i
bGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmI4NmI1YjUxMTg1
MTc3MDQyNWY0ZDkyOGYzZGY4NWRmMWRlNDZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKQEAgLTAsMCArMSw0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgor
CituYW1lc3BhY2UgV1RGIHsKKworUnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Vm
bC9SdW5Mb29wRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9SdW5Mb29wRWZsLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYzA5N2Y4NmFmNzI4ZjVmOGJlMWQzYmJhZDE0M2QyYzA1MWNlNjUyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3BwCkBAIC0wLDAgKzEs
MTM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0
ZW1zLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCitzdGF0aWMgY29uc3QgaW50
IGVjb3JlUGlwZU1lc3NhZ2VTaXplID0gMTsKK3N0YXRpYyBjb25zdCBjaGFyIHdha3VwRWNvcmVQ
aXBlTWVzc2FnZVtdID0gIlciOworCituYW1lc3BhY2UgV1RGIHsKKworUnVuTG9vcDo6UnVuTG9v
cCgpCisgICAgOiBtX2luaXRFZmwoZmFsc2UpCisgICAgLCBtX3dha2VVcEV2ZW50UmVxdWVzdGVk
KGZhbHNlKQoreworICAgIG1fcGlwZSA9IGFkb3B0UHRyKGVjb3JlX3BpcGVfYWRkKHdha2VVcEV2
ZW50LCB0aGlzKSk7CisgICAgbV9pbml0RWZsID0gdHJ1ZTsKK30KKworUnVuTG9vcDo6flJ1bkxv
b3AoKQoreworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7CisgICAgZWNvcmVfbWFpbl9sb29w
X2JlZ2luKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgZWNvcmVfbWFpbl9s
b29wX3F1aXQoKTsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXBFdmVudCh2b2lkKiBkYXRhLCB2
b2lkKiwgdW5zaWduZWQgaW50KQoreworICAgIFJ1bkxvb3AqIGxvb3AgPSBzdGF0aWNfY2FzdDxS
dW5Mb29wKj4oZGF0YSk7CisKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihsb29w
LT5tX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jayk7CisgICAgICAgIGxvb3AtPm1fd2FrZVVwRXZl
bnRSZXF1ZXN0ZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBsb29wLT5wZXJmb3JtV29yaygpOwor
fQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgeworICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2spOworICAgICAgICBpZiAobV93YWtl
VXBFdmVudFJlcXVlc3RlZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV93YWtlVXBF
dmVudFJlcXVlc3RlZCA9IHRydWU7CisgICAgfQorCisgICAgeworICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9waXBlTG9jayk7CisgICAgICAgIGVjb3JlX3BpcGVfd3JpdGUobV9waXBlLmdl
dCgpLCB3YWt1cEVjb3JlUGlwZU1lc3NhZ2UsIGVjb3JlUGlwZU1lc3NhZ2VTaXplKTsKKyAgICB9
Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqKQorICAgIDogbV90
aW1lcigwKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKK3sKK30KKworUnVuTG9vcDo6VGlt
ZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK2Jvb2wgUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKHZvaWQqIGRhdGEpCit7CisgICAgUnVuTG9vcDo6VGltZXJC
YXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFJ1bkxvb3A6OlRpbWVyQmFzZSo+KGRhdGEpOworCisg
ICAgdGltZXItPmZpcmVkKCk7CisKKyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7Cisg
ICAgICAgIHRpbWVyLT5tX3RpbWVyID0gMDsKKyAgICAgICAgcmV0dXJuIEVDT1JFX0NBTExCQUNL
X0NBTkNFTDsKKyAgICB9CisKKyAgICByZXR1cm4gRUNPUkVfQ0FMTEJBQ0tfUkVORVc7Cit9CisK
K3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwg
Ym9vbCByZXBlYXQpCit7CisgICAgaWYgKGlzQWN0aXZlKCkpCisgICAgICAgIHN0b3AoKTsKKwor
ICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgQVNTRVJUKCFtX3RpbWVyKTsKKyAgICBt
X3RpbWVyID0gZWNvcmVfdGltZXJfYWRkKG5leHRGaXJlSW50ZXJ2YWwsIHJlaW50ZXJwcmV0X2Nh
c3Q8RWNvcmVfVGFza19DYj4odGltZXJGaXJlZCksIHRoaXMpOworfQorCit2b2lkIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKG1fdGltZXIpIHsKKyAgICAgICAgZWNvcmVf
dGltZXJfZGVsKG1fdGltZXIpOworICAgICAgICBtX3RpbWVyID0gMDsKKyAgICB9Cit9CisKK2Jv
b2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICht
X3RpbWVyKSA/IHRydWUgOiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9ndGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9n
dGsvUnVuTG9vcEd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M0MzUyNzhiMjc3NTQyYWFiYTk0M2IxNmY5
NGVjMzA1ZDk0NDNmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2d0ay9SdW5M
b29wR3RrLmNwcApAQCAtMCwwICsxLDE3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNs
dWRlIDxnZGsvZ2RrLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorCisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQoreworICAg
IC8vIGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKSBkb2Vzbid0IGFkZCBhbiBleHRyYSByZWZlcmVu
Y2UuCisgICAgbV9ydW5Mb29wQ29udGV4dCA9IGlzTWFpblRocmVhZCgpID8gZ19tYWluX2NvbnRl
eHRfZGVmYXVsdCgpIDogYWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0X25ldygpKTsKKyAgICBBU1NF
UlQobV9ydW5Mb29wQ29udGV4dCk7CisgICAgR1JlZlB0cjxHTWFpbkxvb3A+IGlubmVybW9zdExv
b3AgPSBhZG9wdEdSZWYoZ19tYWluX2xvb3BfbmV3KG1fcnVuTG9vcENvbnRleHQuZ2V0KCksIEZB
TFNFKSk7CisgICAgQVNTRVJUKGlubmVybW9zdExvb3ApOworICAgIG1fcnVuTG9vcE1haW5Mb29w
cy5hcHBlbmQoaW5uZXJtb3N0TG9vcCk7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAg
ICBmb3IgKGludCBpID0gbV9ydW5Mb29wTWFpbkxvb3BzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1p
KSB7CisgICAgICAgIGlmICghZ19tYWluX2xvb3BfaXNfcnVubmluZyhtX3J1bkxvb3BNYWluTG9v
cHNbaV0uZ2V0KCkpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGdfbWFpbl9sb29w
X3F1aXQobV9ydW5Mb29wTWFpbkxvb3BzW2ldLmdldCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUnVu
TG9vcDo6cnVuKCkKK3sKKyAgICBSdW5Mb29wKiBtYWluUnVuTG9vcCA9IFJ1bkxvb3A6OmN1cnJl
bnQoKTsKKyAgICBHTWFpbkxvb3AqIGlubmVybW9zdExvb3AgPSBtYWluUnVuTG9vcC0+aW5uZXJt
b3N0TG9vcCgpOworICAgIGlmICghZ19tYWluX2xvb3BfaXNfcnVubmluZyhpbm5lcm1vc3RMb29w
KSkgeworICAgICAgICBnX21haW5fbG9vcF9ydW4oaW5uZXJtb3N0TG9vcCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICAvLyBDcmVhdGUgYW5kIHJ1biBhIG5lc3RlZCBsb29wIGlmIHRo
ZSBpbm5lcm1vc3Qgb25lIHdhcyBhbHJlYWR5IHJ1bm5pbmcuCisgICAgR01haW5Mb29wKiBuZXN0
ZWRNYWluTG9vcCA9IGdfbWFpbl9sb29wX25ldygwLCBGQUxTRSk7CisgICAgbWFpblJ1bkxvb3At
PnB1c2hOZXN0ZWRNYWluTG9vcChuZXN0ZWRNYWluTG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVu
KG5lc3RlZE1haW5Mb29wKTsKKyAgICBtYWluUnVuTG9vcC0+cG9wTmVzdGVkTWFpbkxvb3AoKTsK
K30KKworR01haW5Mb29wKiBSdW5Mb29wOjppbm5lcm1vc3RMb29wKCkKK3sKKyAgICAvLyBUaGUg
aW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCgh
bV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgcmV0dXJuIG1fcnVuTG9vcE1haW5M
b29wc1swXS5nZXQoKTsKK30KKwordm9pZCBSdW5Mb29wOjpwdXNoTmVzdGVkTWFpbkxvb3AoR01h
aW5Mb29wKiBuZXN0ZWRMb29wKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNo
b3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNF
bXB0eSgpKTsKKyAgICBtX3J1bkxvb3BNYWluTG9vcHMuYXBwZW5kKGFkb3B0R1JlZihuZXN0ZWRM
b29wKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cG9wTmVzdGVkTWFpbkxvb3AoKQoreworICAgIC8v
IFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNT
RVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBtX3J1bkxvb3BNYWluTG9v
cHMucmVtb3ZlTGFzdCgpOworfQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIC8vIFRo
ZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJU
KCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBHUmVmUHRyPEdNYWluTG9vcD4g
bGFzdE1haW5Mb29wID0gbV9ydW5Mb29wTWFpbkxvb3BzLmxhc3QoKTsKKyAgICBpZiAoZ19tYWlu
X2xvb3BfaXNfcnVubmluZyhsYXN0TWFpbkxvb3AuZ2V0KCkpKQorICAgICAgICBnX21haW5fbG9v
cF9xdWl0KGxhc3RNYWluTG9vcC5nZXQoKSk7Cit9CisKK2dib29sZWFuIFJ1bkxvb3A6OnF1ZXVl
V29yayhSdW5Mb29wKiBydW5Mb29wKQoreworICAgIHJ1bkxvb3AtPnBlcmZvcm1Xb3JrKCk7Cisg
ICAgcmV0dXJuIEZBTFNFOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgR1Jl
ZlB0cjxHU291cmNlPiBzb3VyY2UgPSBhZG9wdEdSZWYoZ19pZGxlX3NvdXJjZV9uZXcoKSk7Cisg
ICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNvdXJjZS5nZXQoKSwgR19QUklPUklUWV9ERUZBVUxU
KTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2soc291cmNlLmdldCgpLCByZWludGVycHJldF9j
YXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6cXVldWVXb3JrKSwgdGhpcywgMCk7CisgICAgZ19z
b3VyY2VfYXR0YWNoKHNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7CisKKyAg
ICBnX21haW5fY29udGV4dF93YWtldXAobV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7Cit9CisKK1J1
bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1
bkxvb3AocnVuTG9vcCkKKyAgICAsIG1fdGltZXJTb3VyY2UoMCkKK3sKK30KKworUnVuTG9vcDo6
VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9v
cDo6VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKCkKK3sKKyAgICBtX3RpbWVyU291cmNlID0g
MDsKK30KKworZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2so
UnVuTG9vcDo6VGltZXJCYXNlKiB0aW1lcikKK3sKKyAgICBHU291cmNlKiBjdXJyZW50VGltZXJT
b3VyY2UgPSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKTsKKyAgICBib29sIGlzUmVwZWF0aW5n
ID0gdGltZXItPmlzUmVwZWF0aW5nKCk7CisgICAgLy8gVGhpcyBjYW4gY2hhbmdlIHRoZSB0aW1l
clNvdXJjZSBieSBzdGFydGluZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhlIGNhbGxiYWNrLgorICAg
IHRpbWVyLT5maXJlZCgpOworICAgIGlmICghaXNSZXBlYXRpbmcgJiYgY3VycmVudFRpbWVyU291
cmNlID09IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpKQorICAgICAgICB0aW1lci0+Y2xlYXJU
aW1lclNvdXJjZSgpOworICAgIHJldHVybiBpc1JlcGVhdGluZzsKK30KKwordm9pZCBSdW5Mb29w
OjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQorewor
ICAgIGlmIChtX3RpbWVyU291cmNlKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX3RpbWVyU291
cmNlID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50Pihm
aXJlSW50ZXJ2YWwgKiAxMDAwKSkpOworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAg
Z19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nh
c3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayks
IHRoaXMsIDApOworICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1
bkxvb3AtPm1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX3RpbWVyU291cmNlKQorICAgICAgICByZXR1cm47
CisKKyAgICBnX3NvdXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgIGNsZWFy
VGltZXJTb3VyY2UoKTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV90aW1lclNvdXJjZTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9tYWMvUnVuTG9vcE1hYy5tbSBiL1NvdXJj
ZS9XVEYvd3RmL21hYy9SdW5Mb29wTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1M2IwMmRmZjFiMGQxODdk
ZTliNjVkMzQ0MjM0NGQ0OTNiMTgzYjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9tYWMvUnVuTG9vcE1hYy5tbQpAQCAtMCwwICsxLDE2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUnVuTG9vcC5oIgorCisjaW1wb3J0ICJBdXRv
ZHJhaW5lZFBvb2wuaCIKKyNpZiAhUExBVEZPUk0oSU9TKQorI2ltcG9ydCA8QXBwS2l0L0FwcEtp
dC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgYm9vbCBzX3VzZUFwcGxp
Y2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3A7CisKK3ZvaWQgUnVuTG9vcDo6c2V0VXNlQXBwbGlj
YXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCgpCit7CisgICAgc191c2VBcHBsaWNhdGlvblJ1bkxv
b3BPbk1haW5SdW5Mb29wID0gdHJ1ZTsKK30KKwordm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yayh2
b2lkKiBjb250ZXh0KQoreworICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOworICAgIHN0YXRpY19j
YXN0PFJ1bkxvb3AqPihjb250ZXh0KS0+cGVyZm9ybVdvcmsoKTsKK30KKworUnVuTG9vcDo6UnVu
TG9vcCgpCisgICAgOiBtX3J1bkxvb3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKQorICAgICwgbV9u
ZXN0aW5nTGV2ZWwoMCkKK3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VDb250ZXh0IGNvbnRleHQgPSB7
IDAsIHRoaXMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIHBlcmZvcm1Xb3JrIH07CisgICAgbV9ydW5M
b29wU291cmNlID0gYWRvcHRDRihDRlJ1bkxvb3BTb3VyY2VDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgMCwgJmNvbnRleHQpKTsKKyAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLmdl
dCgpLCBtX3J1bkxvb3BTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Cit9CisK
K1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VJbnZhbGlkYXRlKG1f
cnVuTG9vcFNvdXJjZS5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuRm9yRHVyYXRpb24o
ZG91YmxlIGR1cmF0aW9uKQoreworICAgIENGUnVuTG9vcFJ1bkluTW9kZShrQ0ZSdW5Mb29wRGVm
YXVsdE1vZGUsIGR1cmF0aW9uLCB0cnVlKTsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQor
eworICAgIENGUnVuTG9vcFNvdXJjZVNpZ25hbChtX3J1bkxvb3BTb3VyY2UuZ2V0KCkpOworICAg
IENGUnVuTG9vcFdha2VVcChtX3J1bkxvb3AuZ2V0KCkpOworfQorCit2b2lkIFJ1bkxvb3A6OnJ1
bigpCit7CisgICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCsrOworCisjaWYgIVBMQVRGT1JN
KElPUykKKyAgICBpZiAoY3VycmVudCgpID09IG1haW4oKSAmJiBjdXJyZW50KCktPm1fbmVzdGlu
Z0xldmVsID09IDEgJiYgc191c2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wKSB7Cisg
ICAgICAgIC8vIFVzZSAtW05TQXBwbGljYXRpb24gcnVuXSBmb3IgdGhlIG1haW4gcnVuIGxvb3Au
CisgICAgICAgIFtOU0FwcCBydW5dOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgeworICAgICAg
ICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKKyAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7CisgICAgfQor
CisgICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbC0tOworfQorCit2b2lkIFJ1bkxvb3A6OnN0
b3AoKQoreworICAgIEFTU0VSVChtX3J1bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsK
KworI2lmICFQTEFURk9STShJT1MpCisgICAgLy8gTmVzdGluZyBsZXZlbCBjYW4gYmUgMCBpZiB0
aGUgcnVuIGxvb3AgaXMgc3RhcnRlZCBleHRlcm5hbGx5IChzdWNoIGFzIHRoZSBjYXNlIGZvciBY
UEMgc2VydmljZXMpLgorICAgIGlmIChtX3J1bkxvb3AgPT0gbWFpbigpLT5tX3J1bkxvb3AgJiYg
bV9uZXN0aW5nTGV2ZWwgPD0gMSAmJiBzX3VzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxv
b3ApIHsKKyAgICAgICAgQVNTRVJUKFtOU0FwcCBpc1J1bm5pbmddKTsKKyAgICAgICAgW05TQXBw
IHN0b3A6bmlsXTsKKyAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBvdGhlckV2ZW50
V2l0aFR5cGU6TlNBcHBsaWNhdGlvbkRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowLjAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOjAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6bmlsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0eXBlOiAwCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGExOjAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTI6MF07CisgICAgICAgIFtO
U0FwcCBwb3N0RXZlbnQ6ZXZlbnQgYXRTdGFydDp0cnVlXTsKKyAgICB9IGVsc2UKKyNlbmRpZgor
ICAgICAgICBDRlJ1bkxvb3BTdG9wKG1fcnVuTG9vcC5nZXQoKSk7Cit9CisKKy8vIFJ1bkxvb3A6
OlRpbWVyCisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKENGUnVuTG9vcFRp
bWVyUmVmLCB2b2lkKiBjb250ZXh0KQoreworICAgIFRpbWVyQmFzZSogdGltZXIgPSBzdGF0aWNf
Y2FzdDxUaW1lckJhc2UqPihjb250ZXh0KTsKKworICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwor
ICAgIHRpbWVyLT5maXJlZCgpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShS
dW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCit7Cit9CisKK1J1bkxv
b3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KQoreworICAgIGlmIChtX3RpbWVyKQorICAgICAgICBzdG9wKCk7CisKKyAgICBDRlJ1bkxv
b3BUaW1lckNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCB9OworICAgIENGVGlt
ZUludGVydmFsIHJlcGVhdEludGVydmFsID0gcmVwZWF0ID8gbmV4dEZpcmVJbnRlcnZhbCA6IDA7
CisgICAgbV90aW1lciA9IGFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBuZXh0RmlyZUludGVydmFsLCBy
ZXBlYXRJbnRlcnZhbCwgMCwgMCwgdGltZXJGaXJlZCwgJmNvbnRleHQpKTsKKyAgICBDRlJ1bkxv
b3BBZGRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcC5nZXQoKSwgbV90aW1lci5nZXQoKSwga0NG
UnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3Ao
KQoreworICAgIGlmICghbV90aW1lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0ZSdW5Mb29w
VGltZXJJbnZhbGlkYXRlKG1fdGltZXIuZ2V0KCkpOworICAgIG1fdGltZXIgPSBudWxscHRyOwor
fQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVyLmdldCgpKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9xdC9SdW5M
b29wUXQuY3BwIGIvU291cmNlL1dURi93dGYvcXQvUnVuTG9vcFF0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
NWIzNTlhYzI2M2FhZjZhOTY5NzJmMDVhZTA1MGFlMzBhN2RmNDU1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvcXQvUnVuTG9vcFF0LmNwcApAQCAtMCwwICsxLDE2NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5M
b29wLmgiCisKKyNpbmNsdWRlIDxRQWJzdHJhY3RFdmVudERpc3BhdGNoZXI+CisjaW5jbHVkZSA8
UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRTWV0YU1ldGhvZD4KKyNpbmNsdWRlIDxRTWV0
YU9iamVjdD4KKyNpbmNsdWRlIDxRT2JqZWN0PgorI2luY2x1ZGUgPFFUaW1lckV2ZW50PgorCitu
YW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUnVuTG9vcDo6VGltZXJPYmplY3QgOiBwdWJsaWMgUU9i
amVjdCB7CisgICAgUV9PQkpFQ1QKK3B1YmxpYzoKKyAgICBUaW1lck9iamVjdChSdW5Mb29wKiBy
dW5Mb29wKSA6IG1fcnVuTG9vcChydW5Mb29wKQorICAgIHsKKyAgICAgICAgaW50IG1ldGhvZElu
ZGV4ID0gbWV0YU9iamVjdCgpLT5pbmRleE9mTWV0aG9kKCJwZXJmb3JtV29yaygpIik7CisgICAg
ICAgIG1fbWV0aG9kID0gbWV0YU9iamVjdCgpLT5tZXRob2QobWV0aG9kSW5kZXgpOworICAgIH0K
KworICAgIFFfU0xPVCB2b2lkIHBlcmZvcm1Xb3JrKCkgeyBtX3J1bkxvb3AtPnBlcmZvcm1Xb3Jr
KCk7IH0KKyAgICBpbmxpbmUgdm9pZCB3YWtlVXAoKSB7IG1fbWV0aG9kLmludm9rZSh0aGlzLCBR
dDo6UXVldWVkQ29ubmVjdGlvbik7IH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCB0
aW1lckV2ZW50KFFUaW1lckV2ZW50KiBldmVudCkKKyAgICB7CisgICAgICAgIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6dGltZXJGaXJlZChtX3J1bkxvb3AsIGV2ZW50LT50aW1lcklkKCkpOworICAgIH0K
KworcHJpdmF0ZToKKyAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisgICAgUU1ldGFNZXRob2QgbV9t
ZXRob2Q7Cit9OworCitzdGF0aWMgUUV2ZW50TG9vcCogY3VycmVudEV2ZW50TG9vcDsKKwordm9p
ZCBSdW5Mb29wOjpydW4oKQoreworICAgIHN0YXRpYyBib29sIG1haW5FdmVudExvb3BJc1J1bm5p
bmcgPSBmYWxzZTsKKyAgICBpZiAoIW1haW5FdmVudExvb3BJc1J1bm5pbmcpIHsKKyAgICAgICAg
bWFpbkV2ZW50TG9vcElzUnVubmluZyA9IHRydWU7CisgICAgICAgIFFDb3JlQXBwbGljYXRpb246
OmV4ZWMoKTsKKyAgICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZhbHNlOworICAgIH0g
ZWxzZSB7CisgICAgICAgIFFFdmVudExvb3AgZXZlbnRMb29wOworCisgICAgICAgIFFFdmVudExv
b3AqIHByZXZpb3VzRXZlbnRMb29wID0gY3VycmVudEV2ZW50TG9vcDsKKyAgICAgICAgY3VycmVu
dEV2ZW50TG9vcCA9ICZldmVudExvb3A7CisKKyAgICAgICAgZXZlbnRMb29wLmV4ZWMoKTsKKwor
ICAgICAgICBjdXJyZW50RXZlbnRMb29wID0gcHJldmlvdXNFdmVudExvb3A7CisgICAgfQorfQor
Cit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIGlmIChjdXJyZW50RXZlbnRMb29wKQorICAg
ICAgICBjdXJyZW50RXZlbnRMb29wLT5leGl0KCk7CisgICAgZWxzZQorICAgICAgICBRQ29yZUFw
cGxpY2F0aW9uOjpleGl0KCk7Cit9CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQorICAgIDogbV90aW1l
ck9iamVjdChuZXcgVGltZXJPYmplY3QodGhpcykpCit7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29w
KCkKK3sKKyAgICBkZWxldGUgbV90aW1lck9iamVjdDsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtl
VXAoKQoreworICAgIG1fdGltZXJPYmplY3QtPndha2VVcCgpOworfQorCisvLyBSdW5Mb29wOjpU
aW1lcgorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5M
b29wLCBpbnQgSUQpCit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9h
Y3RpdmVUaW1lcnMuZmluZChJRCk7CisgICAgQVNTRVJUKGl0ICE9IHJ1bkxvb3AtPm1fYWN0aXZl
VGltZXJzLmVuZCgpKTsKKyAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnZhbHVlOworCisgICAg
aWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgeworICAgICAgICAvLyBTdG9wIHRoZSB0aW1lciAo
Y2FsbGluZyBzdG9wIHdvdWxkIG5lZWQgYW5vdGhlciBoYXNoIHRhYmxlIGxvb2t1cCkuCisgICAg
ICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAgICAgIHJ1bkxvb3At
Pm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcih0aW1lci0+bV9JRCk7CisgICAgICAgIHRpbWVyLT5t
X0lEID0gMDsKKyAgICB9CisKKyAgICB0aW1lci0+ZmlyZWQoKTsKK30KKworUnVuTG9vcDo6VGlt
ZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5M
b29wKQorICAgICwgbV9JRCgwKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKK3sKK30KKwor
UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3Zv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9v
bCByZXBlYXQpCit7CisgICAgc3RvcCgpOworICAgIGludCBtaWxsaXMgPSBzdGF0aWNfY2FzdDxp
bnQ+KG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwKTsKKyAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0
OworICAgIG1fSUQgPSBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3QtPnN0YXJ0VGltZXIobWlsbGlz
KTsKKyAgICBBU1NFUlQobV9JRCk7CisgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5zZXQo
bV9JRCwgdGhpcyk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAg
ICBpZiAoIW1fSUQpCisgICAgICAgIHJldHVybjsKKyAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQg
PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7CisgICAgaWYgKGl0ID09IG1f
cnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICBtX3J1bkxvb3AtPm1fdGlt
ZXJPYmplY3QtPmtpbGxUaW1lcihtX0lEKTsKKyAgICBtX0lEID0gMDsKK30KKworYm9vbCBSdW5M
b29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9JRDsKK30K
KworI2luY2x1ZGUgIlJ1bkxvb3BRdC5tb2MiCisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dURi93dGYv
d2luL1J1bkxvb3BXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMDZmNTU4Nzk2ZjJjYTE5OTQ3MTliZGMw
N2YxNWI0MTlmNTY3NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVu
TG9vcFdpbi5jcHAKQEAgLTAsMCArMSwxNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CisjaW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KKwordXNpbmcgbmFtZXNwYWNlIHN0
ZDsKKworbmFtZXNwYWNlIFdURiB7CisKK3N0YXRpYyBjb25zdCBVSU5UIFBlcmZvcm1Xb3JrTWVz
c2FnZSA9IFdNX1VTRVIgKyAxOworc3RhdGljIGNvbnN0IExQV1NUUiBrUnVuTG9vcE1lc3NhZ2VX
aW5kb3dDbGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdlV2luZG93IjsKKworTFJFU1VMVCBDQUxM
QkFDSyBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BB
UkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAgICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9
IHN0YXRpY19jYXN0PFJ1bkxvb3AqPihnZXRXaW5kb3dQb2ludGVyKGhXbmQsIDApKSkKKyAgICAg
ICAgcmV0dXJuIHJ1bkxvb3AtPnduZFByb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0p
OworCisgICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JFQVRFKSB7CisgICAgICAgIExQQ1JFQVRFU1RS
VUNUIGNyZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TFBDUkVBVEVTVFJVQ1Q+KGxQYXJh
bSk7CisKKyAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBSdW5Mb29wIHdpdGggdGhlIHdpbmRvdy4K
KyAgICAgICAgc2V0V2luZG93UG9pbnRlcihoV25kLCAwLCBjcmVhdGVTdHJ1Y3QtPmxwQ3JlYXRl
UGFyYW1zKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDo6RGVmV2lu
ZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisKK0xSRVNVTFQgUnVu
TG9vcDo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBB
UkFNIGxQYXJhbSkKK3sKKyAgICBzd2l0Y2ggKG1lc3NhZ2UpIHsKKyAgICBjYXNlIFBlcmZvcm1X
b3JrTWVzc2FnZToKKyAgICAgICAgcGVyZm9ybVdvcmsoKTsKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgY2FzZSBXTV9USU1FUjoKKyAgICAgICAgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVk
KHRoaXMsIHdQYXJhbSk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiA6
OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworfQorCit2b2lk
IFJ1bkxvb3A6OnJ1bigpCit7CisgICAgTVNHIG1lc3NhZ2U7CisgICAgd2hpbGUgKEJPT0wgcmVz
dWx0ID0gOjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAwLCAwLCAwKSkgeworICAgICAgICBpZiAocmVz
dWx0ID09IC0xKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIDo6VHJhbnNsYXRlTWVzc2Fn
ZSgmbWVzc2FnZSk7CisgICAgICAgIDo6RGlzcGF0Y2hNZXNzYWdlKCZtZXNzYWdlKTsKKyAgICB9
Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgOjpQb3N0UXVpdE1lc3NhZ2UoMCk7
Cit9CisKK2Jvb2wgUnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCkK
K3sKKyAgICAvLyBGSVhNRTogVGhpcyByZWFsbHkgb25seSBuZWVkcyB0byBiZSBjYWxsZWQgb25j
ZS4KKworICAgIFdORENMQVNTIHdpbmRvd0NsYXNzID0geyAwIH07CisgICAgd2luZG93Q2xhc3Mu
bHBmblduZFByb2MgICAgID0gUnVuTG9vcDo6UnVuTG9vcFduZFByb2M7CisgICAgd2luZG93Q2xh
c3MuY2JXbmRFeHRyYSAgICAgID0gc2l6ZW9mKFJ1bkxvb3AqKTsKKyAgICB3aW5kb3dDbGFzcy5s
cHN6Q2xhc3NOYW1lICAgPSBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWU7CisKKyAgICBy
ZXR1cm4gISE6OlJlZ2lzdGVyQ2xhc3MoJndpbmRvd0NsYXNzKTsKK30KKworUnVuTG9vcDo6UnVu
TG9vcCgpCit7CisgICAgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7CisKKyAg
ICBtX3J1bkxvb3BNZXNzYWdlV2luZG93ID0gOjpDcmVhdGVXaW5kb3coa1J1bkxvb3BNZXNzYWdl
V2luZG93Q2xhc3NOYW1lLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDV19VU0VERUZBVUxULCAwLCBDV19VU0VERUZBVUxULCAwLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIV05EX01FU1NBR0UsIDAsIDAsIHRo
aXMpOworICAgIEFTU0VSVCg6OklzV2luZG93KG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cpKTsKK30K
KworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdv
cmsgaXRlbSBxdWV1ZSBoZXJlLgorfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAg
Ly8gRklYTUU6IE5vIG5lZWQgdG8gd2FrZSB1cCB0aGUgcnVuIGxvb3AgaWYgd2UndmUgYWxyZWFk
eSBjYWxsZWQgZGlzcGF0Y2gKKyAgICAvLyBiZWZvcmUgdGhlIHJ1biBsb29wIGhhcyBoYWQgdGhl
IHRpbWUgdG8gcmVzcG9uZC4KKyAgICA6OlBvc3RNZXNzYWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5k
b3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRlcnByZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAw
KTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRp
bWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgdWludDY0X3QgSUQpCit7CisgICAgVGltZXJNYXA6
Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChJRCk7CisgICAgaWYg
KGl0ID09IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKSB7CisgICAgICAgIC8vIFRoZSB0
aW1lciBtdXN0IGhhdmUgYmVlbiBzdG9wcGVkIGFmdGVyIHRoZSBXTV9USU1FUiBtZXNzYWdlIHdh
cyBwb3N0ZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUuCisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnZhbHVlOworCisgICAgaWYgKCF0aW1lci0+bV9p
c1JlcGVhdGluZykgeworICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQp
OworICAgICAgICA6OktpbGxUaW1lcihydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBJ
RCk7CisgICAgfQorCisgICAgdGltZXItPmZpcmVkKCk7Cit9CisKK3N0YXRpYyB1aW50NjRfdCBn
ZW5lcmF0ZVRpbWVySUQoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVUaW1lcklEID0g
MTsKKyAgICByZXR1cm4gdW5pcXVlVGltZXJJRCsrOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6
OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisg
ICAgLCBtX0lEKGdlbmVyYXRlVGltZXJJRCgpKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkK
K3sKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7
Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRl
cnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBt
X3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKKyAgICA6OlNldFRpbWVy
KG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCwgbmV4dEZpcmVJbnRlcnZh
bCAqIDEwMDAsIDApOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7Cisg
ICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5k
KG1fSUQpOworICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShp
dCk7CisgICAgOjpLaWxsVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBt
X0lEKTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlucyhtX0lEKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGI0MWUzNThkMDcw
ZTVkNTA0YTc5YzBjM2M1OTMxMmNhNzM0ZmVhNjMuLjBmOWM0MGFlOTY1Yzg5M2UyMzEyYTk1MGRi
N2Q5ZmVmOTdhM2I2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xODMxLDcgKzE4MzEsNiBA
QCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5jcHAKICAg
ICBwbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAKICAgICBwbGF0Zm9ybS9QbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCi0gICAgcGxhdGZvcm0vUnVuTG9vcC5jcHAKICAgICBwbGF0Zm9y
bS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCBiYWU1ZjM5M2ZiOWRlNjhlNjY4OWJhMjczZmVkOTY1NTc2YjM5NmNj
Li5jM2U2MDdmYTQ1ZTA2MmNiODc1NTJjMDVlYTQxMTMyN2ZiNDVlNzY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYxMzEsOCArNjEzMSw2IEBAIHBsYXRmb3JtX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL05vdEltcGxlbWVudGVkLmggXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1J1bkxvb3AuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VVUlELmNwcCBcCkBAIC02MjY1LDcgKzYyNjMsNiBAQCBw
bGF0Zm9ybWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxh
dGZvcm1Nb3VzZUV2ZW50R3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bs
YXRmb3JtU2NyZWVuR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRm
b3JtV2hlZWxFdmVudEd0ay5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5M
b29wR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZEJ1ZmZlckd0
ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRUaW1lckd0ay5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Tb3VuZEd0ay5jcHAgXApAQCAtNjMyNyw3
ICs2MzI0LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU3lzdGVtSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2ViQ29y
ZUluc3RhbmNlSGFuZGxlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dlYkNv
cmVJbnN0YW5jZUhhbmRsZS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2luZG93
c0V4dHJhcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5EYXRhYmFzZVdp
bi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbk1lc3NhZ2VUaHJvdHRs
ZXJXaW4uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5NZXNzYWdlVGhy
b3R0bGVyV2luLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCmluZGV4
IDE3MzZmNWY0MmJkOWQ5NWUyYmYwNjc5Mzk1Y2EwZTczZjFkZDcwYjMuLmU2ZWZlMzE1M2QxMzgy
N2NiNzEzZDA3MjRhYmE0ZDcxNjNjMmMwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNr
QmVycnkuY21ha2UKQEAgLTExNiw3ICsxMTYsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BsYXRmb3JtVG91Y2hQb2ludEJsYWNrQmVycnku
Y3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9Qb3B1cE1lbnVCbGFja0JlcnJ5LmNwcAogICAg
IHBsYXRmb3JtL2JsYWNrYmVycnkvUmVuZGVyVGhlbWVCbGFja0JlcnJ5LmNwcAotICAgIHBsYXRm
b3JtL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2ti
ZXJyeS9TU0xLZXlHZW5lcmF0b3JCbGFja0JlcnJ5LmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVy
cnkvU2Nyb2xsYmFyVGhlbWVCbGFja0JlcnJ5LmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkv
U2VhcmNoUG9wdXBNZW51QmxhY2tCZXJyeS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5k
ZXggZjQ5NjY0NzI1MDk3OWFjNDdhZmU1M2RjMjRiYTQzMmY4ZTE1MDU3YS4uNDE2MjQ4MmYyZGZk
YTU5NTBlOTU0YjZiNmFkYjQ5NGUwMDg0MTc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UK
QEAgLTc2LDcgKzc2LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZv
cm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybVdo
ZWVsRXZlbnRFZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAotICAg
IHBsYXRmb3JtL2VmbC9SdW5Mb29wRWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9TY3JvbGxiYXJF
ZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1Njcm9sbGJhclRoZW1lRWZsLmNwcAogICAgIHBsYXRm
b3JtL2VmbC9TY3JvbGxWaWV3RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAy
YThiODQ1YmRlMDAyOTk5YTlhMjBiMWNjNTJkZTIxMDk3YmNmNTA3Li5mMDE1ZmZhZjc1MzEzMDE2
NGU5YWZmNThjYTdlMzNhOGVmNGM0ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAt
OTYsNyArOTYsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVHdGsyLmNwcAogICAgIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMu
Y3BwCiAgICAgcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAotICAgIHBsYXRmb3JtL2d0
ay9SdW5Mb29wR3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0azIuY3Bw
CiAgICAgcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMy5jcHAKICAgICBwbGF0Zm9ybS9n
dGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybVdpbkNFLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DRS5jbWFrZQppbmRl
eCA5ZDQ3ZDQwZGE0ODcwYTIyM2JjY2JhYmQ0MjNmZWE4MjVmM2ZjZDdlLi5lMTMwMTlkMDZlOTVm
ZWQzMTVhMDY5OWMwZjNkNzgwZGU3ZjFiYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybVdpbkNFLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ0UuY21h
a2UKQEAgLTUxLDcgKzUxLDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxh
dGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3Vz
ZUV2ZW50V2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldpbi5jcHAKLSAg
ICBwbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vU1NMS2V5R2Vu
ZXJhdG9yV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9TY3JvbGxiYXJUaGVtZVdpbi5jcHAKICAg
ICBwbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNGRm
NzhkNDk4Nzk5NWI2ODMyY2FkZTQ0NmY3YTZjNTg0ODJkODVmZi4uOWU1M2Y5ZmU1NDQ5ZTFlZDc1
ZmFjODg1NjEwOTk4NzE1YjQ2MTI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMTA1LDcgKzExMDUsNiBA
QCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNwcCBcCiAgICAgcGxh
dGZvcm0vUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwIFwKICAgICBwbGF0Zm9ybS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuY3BwIFwKLSAgICBwbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCiAgICAg
cGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKICAgICBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJl
YS5jcHAgXAogICAgIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcCBcCkBAIC0yOTE5LDcgKzI5
MTgsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHAgXAog
ICAgIHBsYXRmb3JtL3F0L0V2ZW50TG9vcFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvRmlsZVN5
c3RlbVF0LmNwcCBcCi0gICAgcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcCBcCiAgICAgcGxhdGZv
cm0vcXQvU2hhcmVkQnVmZmVyUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9UaGlyZFBhcnR5Q29v
a2llc1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvVXNlckFnZW50UXQuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KaW5kZXggMzIxNzc2NTJhNmY4NzRlYzY0MjNhZmFiODFmNTg3M2I4YjRjMmU5OS4u
MjBmNjEzZTc4OGQ5NTQ2OWJkZjI5NDk0MGQwZTE1N2JmMGQwNDFmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTEwMjEsMTkgKzEwMjEsNiBAQCBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRlcnNl
Y3RFUktTMF8KIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU18xMExheW91dFJlY3RFCiBfX1pO
N1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfOUZsb2F0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRTaXpl
QzFFUks2Q0dTaXplCi1fX1pON1dlYkNvcmU3UnVuTG9vcDE0cnVuRm9yRHVyYXRpb25FZAotX19a
TjdXZWJDb3JlN1J1bkxvb3AyMWluaXRpYWxpemVNYWluUnVuTG9vcEV2Ci1fX1pON1dlYkNvcmU3
UnVuTG9vcDM3c2V0VXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcEV2Ci1fX1pON1dl
YkNvcmU3UnVuTG9vcDNydW5FdgotX19aTjdXZWJDb3JlN1J1bkxvb3A0bWFpbkV2Ci1fX1pON1dl
YkNvcmU3UnVuTG9vcDRzdG9wRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wNndha2VVcEV2Ci1fX1pO
N1dlYkNvcmU3UnVuTG9vcDdjdXJyZW50RXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wOGRpc3BhdGNo
RVJLTjNXVEY4RnVuY3Rpb25JRnZ2RUVFCi1fX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2U0
c3RvcEV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2U1c3RhcnRFZGIKLV9fWk43V2Vi
Q29yZTdSdW5Mb29wOVRpbWVyQmFzZUMyRVBTMF8KLV9fWk43V2ViQ29yZTdSdW5Mb29wOVRpbWVy
QmFzZUQyRXYKIF9fWk43V2ViQ29yZTdUZXh0UnVuMTlhbGxvd3NSb3VuZGluZ0hhY2tzRXYKIF9f
Wk43V2ViQ29yZTdUZXh0UnVuMjFzX2FsbG93c1JvdW5kaW5nSGFja3NFCiBfX1pON1dlYkNvcmU3
VGV4dFJ1bjIyc2V0QWxsb3dzUm91bmRpbmdIYWNrc0ViCkBAIC0xNjE4LDcgKzE2MDUsNiBAQCBf
X1pOSzdXZWJDb3JlN0VsZW1lbnQ2c2hhZG93RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdDEwaW50
ZXJzZWN0c0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCiBfX1pO
SzdXZWJDb3JlN0ludFJlY3RjdjZDR1JlY3RFdgotX19aTks3V2ViQ29yZTdSdW5Mb29wOVRpbWVy
QmFzZThpc0FjdGl2ZUV2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTFjb21wbGV0ZVVSTEVSS04z
V1RGNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxM2F4T2JqZWN0Q2FjaGVFdgogX19a
Tks3V2ViQ29yZThEb2N1bWVudDE0Z2V0RWxlbWVudEJ5SWRFUktOM1dURjEyQXRvbWljU3RyaW5n
RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA3
MTg5NWFmOGJiM2M0ZDEwMjQ1ZTIwZTU0MDE3N2UzNjYzYzZhYjI3Li43YzM2ODk4YTY2NTE3YjU2
NjU0NzgxYzYxOGM4NzM0M2I4NzQ4ODY3IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjkwNzksMTQgKzI5MDc5LDYgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUnVuTG9vcC5j
cHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXFJ1bkxvb3AuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CkBAIC0yOTQ5OCwxMCArMjk0OTAsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxl
PgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cd2luXFJ1bkxvb3BX
aW4uY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGxhdGZvcm1cd2luXFNjcm9sbGJhclRoZW1lU2FmYXJpLmNwcCIKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCmluZGV4IDViNjMyYTNjMjVhYTc2NjFlOGM3NTY1NTIxYzJkNGFiMjY3Y2E3OTIuLjg1ZWM0
Yzk3Y2ViMGIyNzg4YzJlZjNkOGQxNzE3NDJkNmZmYjIzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNDEwOSw3ICs0MTA5LDYgQEAK
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFBsYXRmb3JtRXZlbnQuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUGxhdGZvcm1JbnN0cnVtZW50
YXRpb24uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3Jt
XFJ1bkxvb3AuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXFNjaGVtZVJlZ2lzdHJ5LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHBsYXRmb3JtXFNjcm9sbGFibGVBcmVhLmNwcCIgLz4KQEAgLTQxNjQsNyArNDE2Myw2IEBA
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cUGxhdGZvcm1Nb3VzZUV2
ZW50V2luLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxQ
bGF0Zm9ybVNjcmVlbldpbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVx3aW5cUG9wdXBNZW51V2luLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXHdpblxSdW5Mb29wV2luLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHBsYXRmb3JtXHdpblxTY3JvbGxiYXJUaGVtZVNhZmFyaS5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cU2Nyb2xsYmFyVGhlbWVXaW4uY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFNlYXJjaFBvcHVwTWVudVdp
bi5jcHAiIC8+CkBAIC0xMTU2MSw3ICsxMTU1OSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxwbGF0Zm9ybVxQb3B1cE1lbnVTdHlsZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cUHVyZ2VhYmxlQnVmZmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxSZWZlcnJlclBvbGljeS5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cUnVuTG9vcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxTY2hlbWVSZWdpc3RyeS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cU2Nyb2xsYWJsZUFyZWEuaCIgLz4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNjY0ZDUy
MDFiMGQ2MWQ2YTY2NDUxYzJiOGQ1MTVjODcxZTIyNzk1Li5kNzM2NjU3YjQ1YzkyNzRiNTE2M2Rh
ODdmZjNlODI1NTAyNjU1MWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NDEsNyArNzQxLDYgQEAKIAkJMjk3QkUzRDcxNkMw
M0MwRTAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5RTREOERGMTZCMDk0MEYwMEM4NDcw
NCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmggKi87IH07CiAJCTI5N0JFM0Q4MTZDMDND
Q0UwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlFNEQ4RTAxNkIwOTU5ODAwQzg0
NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gKi87IH07CiAJCTI5N0JFM0RB
MTZDMDQzRDgwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5N0JFM0Q5MTZDMDQzRDgw
MDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcCAqLzsgfTsKLQkJMjlBMzA5
QUMxNTYxQzk5QjAwQkJEOEU1IC8qIFJ1bkxvb3BDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUEzMDlBQjE1NjFDOTlCMDBCQkQ4RTUgLyogUnVu
TG9vcENGLmNwcCAqLzsgfTsKIAkJMjlBODEyMkIwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2li
aWxpdHlUYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjlBODEyMEQwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5oICovOyB9
OwogCQkyOUE4MTIyQzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUxpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjBFMEZCQjlD
MUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5TGlzdC5oICovOyB9OwogCQkyOUE4MTIyRTBGQkI5
QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMTAwRkJCOUMxRDAwNTEwMjkz
IC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaCAqLzsgfTsKQEAgLTQ2MTYsOSArNDYxNSw2
IEBACiAJCUJDMDZFRTA0MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkVFMDIw
QkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5jcHAgKi87IH07CiAJCUJDMDZF
RTA1MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZFRTAzMEJGRDcxQUEwMDg1NkU5
RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkMwNzNCQUEwQzM5OUIxRjAwMEY1
OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMwNzNCQTkwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lv
bi5oICovOyB9OwotCQlCQzBCMzU4MzE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTgyMTRD
NEY5NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFjLm1tICovOyB9OwotCQlCQzBCMzU4NzE0QzRGOTgz
MDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi87
IH07Ci0JCUJDMEIzNTg4MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzU4NjE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDMEIzNkE0MENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNkExMENEM0M2N0Mw
MEFDN0VCNSAvKiBDb25zb2xlLmNwcCAqLzsgfTsKIAkJQkMwQjM2QTUwQ0QzQzY3QzAwQUM3RUI1
IC8qIENvbnNvbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMEIzNkEyMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxMjRFRTcwQzI2NDFDRDAwOUUy
MzQ5IC8qIEJhclByb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhclByb3AuY3BwICovOyB9OwpA
QCAtNzA0OCw3ICs3MDQ0LDYgQEAKIAkJMjk4MUNBQUYxMzE4MjJFQzAwRDEyRjJBIC8qIEFYT2Jq
ZWN0Q2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVhPYmplY3RDYWNoZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5ODU3MDkyMTVDQzUzMkQwMDYzNTVDRCAvKiBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5ODU3MDkzMTVD
QzUzMkQwMDYzNTVDRCAvKiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyOUEzMDlBQjE1NjFDOTlCMDBCQkQ4RTUgLyogUnVuTG9vcENGLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3BDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTI5QTgxMjBEMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFi
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRhYmxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjBFMEZCQjlDMUQwMDUxMDI5
MyAvKiBBY2Nlc3NpYmlsaXR5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4
MTIxMDBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTMxMiw5ICsxMTMwNyw2IEBACiAJCUJD
MDZGMjRDMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRQcm9jZXNzb3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJD
MDZGMjREMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYU0xUUHJv
Y2Vzc29yTGlieHNsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQlCQzA3M0JBOTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252
ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdENvbnZlcnNp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMwQjM1ODIxNEM0Rjk1NDAwNTVF
MjJBIC8qIFJ1bkxvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBSdW5Mb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzBCMzU4
NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSdW5Mb29wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUnVuTG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
QzBCMzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMEIzNkEyMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMEIzNkEzMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gQ29uc29sZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMzQxNiw3ICsxMzQwOCw2IEBACiAJCQkJOTM4MTkyMDQwRjg3RTFFQzAwRDUzNTJBIC8qIEJp
bmFyeVByb3BlcnR5TGlzdC5oICovLAogCQkJCTUxNjAzMDZCMENDNDM2MjMwMEM4QUMyNSAvKiBG
aWxlU3lzdGVtQ0YuY3BwICovLAogCQkJCTFBOTg5NTZBMEFBNzhGODAwMDVFRjVFRiAvKiBLVVJM
Q0ZOZXQuY3BwICovLAotCQkJCTI5QTMwOUFCMTU2MUM5OUIwMEJCRDhFNSAvKiBSdW5Mb29wQ0Yu
Y3BwICovLAogCQkJCTUxMkREOEUyMEQ5MUUyQjQwMDBGODlFRSAvKiBTaGFyZWRCdWZmZXJDRi5j
cHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNmOwpAQCAtMTQ2MzQsNyArMTQ2MjUsNiBAQAogCQkJ
CTI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFj
Lm1tICovLAogCQkJCTAwODFGRUZFMTZCMEEyQjYwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXhNYWMu
bW0gKi8sCiAJCQkJRTRENjg3NzYwRUQ3QUUzRDAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlck1h
Yy5jcHAgKi8sCi0JCQkJQkMwQjM1ODIxNEM0Rjk1NDAwNTVFMjJBIC8qIFJ1bkxvb3BNYWMubW0g
Ki8sCiAJCQkJQkNBRTFGQTUxMjkzOURCNzAwNENCMDI2IC8qIFNjcm9sbEFuaW1hdG9yTWFjLmgg
Ki8sCiAJCQkJQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1t
ICovLAogCQkJCUJDOEI4NTNDMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3JvbGxiYXJUaGVtZU1hYy5o
ICovLApAQCAtMTkzODIsOCArMTkzNzIsNiBAQAogCQkJCTdFMzNDRDAwMTI3RjM0MEQwMEJFOEYx
NyAvKiBQdXJnZVByaW9yaXR5LmggKi8sCiAJCQkJQTcyRUEzQkExNTg1Q0Y1NTAwNEZBQTI2IC8q
IFJlZkNvdW50ZWRTdXBwbGVtZW50LmggKi8sCiAJCQkJOTgzMUFFNDkxNTQyMjVBMjAwRkUyNjQ0
IC8qIFJlZmVycmVyUG9saWN5LmggKi8sCi0JCQkJQkMwQjM1ODUxNEM0Rjk4MzAwNTVFMjJBIC8q
IFJ1bkxvb3AuY3BwICovLAotCQkJCUJDMEIzNTg2MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29w
LmggKi8sCiAJCQkJMjkzRUFFMjAxMzU2QjMyRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5jcHAgKi8sCiAJCQkJMjkzRUFFMUUxMzU2QjJGRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5oICovLAogCQkJCTUxNjJDN0YyMTFGNzdFRkEwMDYxMkVGRSAvKiBT
Y2hlbWVSZWdpc3RyeS5jcHAgKi8sCkBAIC0yMzI4Niw3ICsyMzI3NCw2IEBACiAJCQkJQTczRjk1
RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NzlCQURBMjE2MUU3RjNGMDBDMkU2NTIgLyogUnVsZUZlYXR1cmUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3OUJBREE0MTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlU2V0LmggaW4gSGVhZGVycyAqLywK
LQkJCQlCQzBCMzU4ODE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE1NjlEMUYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNTY5RDIxMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX21ldGhvZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMjMwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVf
b2JqZWN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2Mzg3LDkgKzI2Mzc0LDYgQEAKIAkJCQlBNzNG
OTVGRTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTc5QkFEQTExNjFFN0YzRjAwQzJFNjUyIC8qIFJ1bGVGZWF0dXJlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3OUJBREEzMTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlU2V0LmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUJDMEIzNTg3MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTI5QTMwOUFDMTU2MUM5OUIwMEJCRDhFNSAvKiBSdW5Mb29wQ0YuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJQkMwQjM1ODMxNEM0Rjk1NDAwNTVFMjJBIC8qIFJ1bkxvb3BN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQxRTBEN0UyQjgyMDA3QzM5ODMgLyogcnVu
dGltZV9hcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQyMDBEN0UyQjgyMDA3QzM5
ODMgLyogcnVudGltZV9tZXRob2QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMjIwRDdF
MkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfb2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuaAppbmRleCA3NTgx
ODJlYjk3MGUzZTdhYWExZDcyMzY1NWExN2Y3NzU4YWQwYWEwLi5hYzRkZDdlNGU4NGYxNDkwNTcy
Njk2OTg5YmZkZmVhYmY3ZTAyM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUaHJlYWQuaApAQCAtNzcsNyArNzcsNyBAQCBwcml2YXRlOgogICAgIFZl
Y3RvcjxGdW5jdGlvbjx2b2lkKCk+ID4gbV9mdW5jdGlvbnM7CiAKICNpZiBQTEFURk9STShNQUMp
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCB1c2UgV2ViQ29yZTo6UnVuTG9vcCBoZXJlLgorICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgdXNlIFdURjo6UnVuTG9vcCBoZXJlLgogICAgIFJldGFpblB0
cjxDRlJ1bkxvb3BSZWY+IG1fdGhyZWFkUnVuTG9vcDsKICAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29w
U291cmNlUmVmPiBtX3RocmVhZFJ1bkxvb3BTb3VyY2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKaW5kZXggYWMzMmFlNDAxODQ3
ZGJlYWNkMTY5Yjg2NzY2MDM4MDljYzA4Y2ExZC4uYzg5NmQ4NzMwMTdiNDA5YzhhZDIzZmI3ZGE4
NDI3ZjhlNjg5ZWUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtRXZl
bnQuaCIKICNpZiBPUyhXSU5ET1dTKQotI2luY2x1ZGUgIldpbmRvd3NFeHRyYXMuaCIKKyNpbmNs
dWRlIDx3dGYvV2luZG93c0V4dHJhcy5oPgogI2VuZGlmCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
TW91c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50
LmgKaW5kZXggMDM3YjViMTU4ODA1YjJlYzY3Yzc3NmVjOTNiOWE1MTFmOWM4ZDE2Mi4uOGJkMzEy
MWYyMGU1ZjMzYTVmN2M0ZmIyNDAwNmM5MWJmYTExMDFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRl
ICJJbnRQb2ludC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtRXZlbnQuaCIKICNpZiBPUyhXSU5ET1dT
KQotI2luY2x1ZGUgIldpbmRvd3NFeHRyYXMuaCIKKyNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJh
cy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCmluZGV4IDUzZjIxY2QwYzk3YTYwNTI3YjEyMDRmYmY5
OThlZWIwMWU2YThiNmQuLjJkMTAyODhiNTAwYWM5YjVlYmU0MzcwM2UwMWUyODQ5OWRiNjEyNWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC0y
OSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV2
ZW50LmgiCiAjaWYgT1MoV0lORE9XUykKLSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgiCisjaW5j
bHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNGQxZDI1NDM2ZjVjNTZiYWEwZWJmMjQ5MTVkODFkM2QwZDkwOGIxYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SdW5Mb29wLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi0jaWYgIVBMQVRGT1JNKE1BQykKLXZvaWQgUnVuTG9vcDo6
c2V0VXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCgpCi17Ci19Ci0jZW5kaWYKLQot
c3RhdGljIFJ1bkxvb3AqIHNfbWFpblJ1bkxvb3A7Ci0KLS8vIEhlbHBlciBjbGFzcyBmb3IgVGhy
ZWFkU3BlY2lmaWNEYXRhLgotY2xhc3MgUnVuTG9vcDo6SG9sZGVyIHsKLXB1YmxpYzoKLSAgICBI
b2xkZXIoKQotICAgICAgICA6IG1fcnVuTG9vcChhZG9wdFJlZihuZXcgUnVuTG9vcCkpCi0gICAg
ewotICAgIH0KLQotICAgIFJ1bkxvb3AqIHJ1bkxvb3AoKSBjb25zdCB7IHJldHVybiBtX3J1bkxv
b3AuZ2V0KCk7IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8UnVuTG9vcD4gbV9ydW5Mb29wOwot
fTsKLQotdm9pZCBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKQotewotICAgIGlmIChz
X21haW5SdW5Mb29wKQotICAgICAgICByZXR1cm47Ci0gICAgc19tYWluUnVuTG9vcCA9IFJ1bkxv
b3A6OmN1cnJlbnQoKTsKLX0KLQotUnVuTG9vcCogUnVuTG9vcDo6Y3VycmVudCgpCi17Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChXVEY6OlRocmVhZFNwZWNpZmljPFJ1bkxvb3A6OkhvbGRlcj4s
IHJ1bkxvb3BIb2xkZXIsICgpKTsKLSAgICByZXR1cm4gcnVuTG9vcEhvbGRlci0+cnVuTG9vcCgp
OwotfQotCi1SdW5Mb29wKiBSdW5Mb29wOjptYWluKCkKLXsKLSAgICBBU1NFUlQoc19tYWluUnVu
TG9vcCk7Ci0gICAgcmV0dXJuIHNfbWFpblJ1bkxvb3A7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cGVy
Zm9ybVdvcmsoKQotewotICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byBoYW5kbGUgdGhlIGZ1bmN0
aW9ucyBpbiB0aGUgcXVldWUgb25lIGF0IGEgdGltZSBiZWNhdXNlIHdoaWxlIGluc2lkZSBvbmUg
b2YgdGhlc2UKLSAgICAvLyBmdW5jdGlvbnMgd2UgbWlnaHQgcmUtZW50ZXIgUnVuTG9vcDo6cGVy
Zm9ybVdvcmsoKSBhbmQgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHBpY2sgdXAgd2hlcmUgd2UgbGVm
dCBvZmYuCi0gICAgLy8gU2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvODk1OTAgZm9yIG1vcmUgZGlz
Y3Vzc2lvbi4KLQotICAgIC8vIE9uZSBwb3NzaWJsZSBzY2VuYXJpbyB3aGVuIGhhbmRsaW5nIHRo
ZSBmdW5jdGlvbiBxdWV1ZSBpcyBhcyBmb2xsb3dzOgotICAgIC8vIC0gUnVuTG9vcDo6cGVyZm9y
bVdvcmsoKSBpcyBpbnZva2VkIHdpdGggMSBmdW5jdGlvbiBvbiB0aGUgcXVldWUKLSAgICAvLyAt
IEhhbmRsaW5nIHRoYXQgZnVuY3Rpb24gcmVzdWx0cyBpbiAxIG1vcmUgZnVuY3Rpb24gYmVpbmcg
ZW5xdWV1ZWQKLSAgICAvLyAtIEhhbmRsaW5nIHRoYXQgb25lIHJlc3VsdHMgaW4geWV0IGFub3Ro
ZXIgYmVpbmcgZW5xdWV1ZWQKLSAgICAvLyAtIEFuZCBzbyBvbgotICAgIC8vCi0gICAgLy8gSW4g
dGhpcyBzaXR1YXRpb24gb25lIGludm9jYXRpb24gb2YgcGVyZm9ybVdvcmsoKSBuZXZlciByZXR1
cm5zIHNvIGFsbCBvdGhlciBldmVudCBzb3VyY2VzIGFyZSBibG9ja2VkLgotICAgIC8vIEJ5IG9u
bHkgaGFuZGxpbmcgdXAgdG8gdGhlIG51bWJlciBvZiBmdW5jdGlvbnMgdGhhdCB3ZXJlIGluIHRo
ZSBxdWV1ZSB3aGVuIHBlcmZvcm1Xb3JrKCkgaXMgY2FsbGVkCi0gICAgLy8gd2UgZ3VhcmFudGVl
IHRvIG9jY2FzaW9uYWxseSByZXR1cm4gZnJvbSB0aGUgcnVuIGxvb3Agc28gb3RoZXIgZXZlbnQg
c291cmNlcyB3aWxsIGJlIGFsbG93ZWQgdG8gc3Bpbi4KLQotICAgIEZ1bmN0aW9uPHZvaWQoKT4g
ZnVuY3Rpb247Ci0gICAgc2l6ZV90IGZ1bmN0aW9uc1RvSGFuZGxlID0gMDsKLQotICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgICAgICBm
dW5jdGlvbnNUb0hhbmRsZSA9IG1fZnVuY3Rpb25RdWV1ZS5zaXplKCk7Ci0KLSAgICAgICAgaWYg
KG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgZnVuY3Rpb24gPSBtX2Z1bmN0aW9uUXVldWUudGFrZUZpcnN0KCk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24oKTsKLQotICAgIGZvciAoc2l6ZV90IGZ1bmN0aW9uc0hhbmRsZWQgPSAxOyBmdW5j
dGlvbnNIYW5kbGVkIDwgZnVuY3Rpb25zVG9IYW5kbGU7ICsrZnVuY3Rpb25zSGFuZGxlZCkgewot
ICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVl
TG9jayk7Ci0KLSAgICAgICAgICAgIC8vIEV2ZW4gaWYgd2Ugc3RhcnQgb2ZmIHdpdGggTiBmdW5j
dGlvbnMgdG8gaGFuZGxlIGFuZCB3ZSd2ZSBvbmx5IGhhbmRsZWQgbGVzcyB0aGFuIE4gZnVuY3Rp
b25zLCB0aGUgcXVldWUKLSAgICAgICAgICAgIC8vIHN0aWxsIG1pZ2h0IGJlIGVtcHR5IGJlY2F1
c2UgdGhvc2UgZnVuY3Rpb25zIG1pZ2h0IGhhdmUgYmVlbiBoYW5kbGVkIGluIGFuIGlubmVyIFJ1
bkxvb3A6OnBlcmZvcm1Xb3JrKCkuCi0gICAgICAgICAgICAvLyBJbiB0aGF0IGNhc2Ugd2Ugc2hv
dWxkIGJhaWwgaGVyZS4KLSAgICAgICAgICAgIGlmIChtX2Z1bmN0aW9uUXVldWUuaXNFbXB0eSgp
KQotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBmdW5jdGlvbiA9IG1fZnVu
Y3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgZnVu
Y3Rpb24oKTsKLSAgICB9Ci19Ci0KLXZvaWQgUnVuTG9vcDo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rp
b248dm9pZCgpPiYgZnVuY3Rpb24pCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rp
b25RdWV1ZUxvY2spOwotICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQoZnVuY3Rpb24pOwotCi0g
ICAgd2FrZVVwKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1J1bkxvb3AuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjdmMDFiY2FkNTc5NmQx
MGFjYWM1ZDZlOGQ5NDFkMzk5NWMzZTM5My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSwxODYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKiBQb3J0aW9ucyBDb3B5
cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgUnVuTG9vcF9oCi0jZGVmaW5lIFJ1bkxvb3BfaAotCi0j
aW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRl
IDx3dGYvRnVuY3Rpb25EaXNwYXRjaGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4K
LSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+Ci0KLSNpZiBQTEFURk9STShHVEspCi0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShFRkwpCi0jaW5j
bHVkZSA8RWNvcmUuaD4KLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJ1
bkxvb3AgOiBwdWJsaWMgRnVuY3Rpb25EaXNwYXRjaGVyIHsKLXB1YmxpYzoKLSAgICAvLyBNdXN0
IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZCAoZXhjZXB0IGZvciB0aGUgTWFjIHBsYXRm
b3JtLCB3aGVyZSBpdAotICAgIC8vIGNhbiBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkKS4KLSAg
ICBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKLQotICAgIC8vIE11c3QgYmUg
Y2FsbGVkIGJlZm9yZSBlbnRlcmluZyBtYWluIHJ1biBsb29wLiBJZiBjYWxsZWQsIGFwcGxpY2F0
aW9uIHN0eWxlIHJ1biBsb29wIHdpbGwgYmUgdXNlZCwgaGFuZGxpbmcgZXZlbnRzLgotICAgIHN0
YXRpYyB2b2lkIHNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3AoKTsKLQotICAg
IHN0YXRpYyBSdW5Mb29wKiBjdXJyZW50KCk7Ci0gICAgc3RhdGljIFJ1bkxvb3AqIG1haW4oKTsK
LSAgICB+UnVuTG9vcCgpOwotCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoKGNvbnN0IEZ1bmN0
aW9uPHZvaWQoKT4mKSBPVkVSUklERTsKLQotICAgIHN0YXRpYyB2b2lkIHJ1bigpOwotICAgIHZv
aWQgc3RvcCgpOwotICAgIHZvaWQgd2FrZVVwKCk7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAg
dm9pZCBydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOwotI2VuZGlmCi0gICAgCi0gICAg
Y2xhc3MgVGltZXJCYXNlIHsKLSAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3A7Ci0gICAgcHVi
bGljOgotICAgICAgICBleHBsaWNpdCBUaW1lckJhc2UoUnVuTG9vcCopOwotICAgICAgICB2aXJ0
dWFsIH5UaW1lckJhc2UoKTsKLQotICAgICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJsZSBy
ZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1ZSk7IH0KLSAgICAgICAg
dm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0KGludGVydmFsLCBmYWxz
ZSk7IH0KLQotICAgICAgICB2b2lkIHN0b3AoKTsKLSAgICAgICAgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0OwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKLQotICAgIHByaXZhdGU6
Ci0gICAgICAgIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0
KTsKLQotICAgICAgICBSdW5Mb29wKiBtX3J1bkxvb3A7Ci0KLSNpZiBQTEFURk9STShXSU4pCi0g
ICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90IElEKTsKLSAg
ICAgICAgdWludDY0X3QgbV9JRDsKLSAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOwotI2VsaWYg
UExBVEZPUk0oTUFDKQotICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9vcFRp
bWVyUmVmLCB2b2lkKik7Ci0gICAgICAgIFJldGFpblB0cjxDRlJ1bkxvb3BUaW1lclJlZj4gbV90
aW1lcjsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVk
KFJ1bkxvb3AqLCBpbnQgSUQpOwotICAgICAgICBpbnQgbV9JRDsKLSAgICAgICAgYm9vbCBtX2lz
UmVwZWF0aW5nOwotI2VsaWYgUExBVEZPUk0oR1RLKQotICAgICAgICBzdGF0aWMgZ2Jvb2xlYW4g
dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOwotICAgICAgICBnYm9vbGVh
biBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRpbmc7IH0KLSAgICAgICAg
dm9pZCBjbGVhclRpbWVyU291cmNlKCk7Ci0gICAgICAgIEdSZWZQdHI8R1NvdXJjZT4gbV90aW1l
clNvdXJjZTsKLSAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsKLSNlbGlmIFBMQVRGT1JN
KEVGTCkKLSAgICAgICAgc3RhdGljIGJvb2wgdGltZXJGaXJlZCh2b2lkKiBkYXRhKTsKLSAgICAg
ICAgRWNvcmVfVGltZXIqIG1fdGltZXI7Ci0gICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZzsKLSNl
bmRpZgotICAgIH07Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENsYXNzPgot
ICAgIGNsYXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAg
ICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlvbikoKTsK
LQotICAgICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xhc3MqIG8sIFRp
bWVyRmlyZWRGdW5jdGlvbiBmKQotICAgICAgICAgICAgOiBUaW1lckJhc2UocnVuTG9vcCkKLSAg
ICAgICAgICAgICwgbV9vYmplY3QobykKLSAgICAgICAgICAgICwgbV9mdW5jdGlvbihmKQotICAg
ICAgICB7Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBm
aXJlZCgpIHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQotCi0gICAgICAgIFRpbWVyRmly
ZWRDbGFzcyogbV9vYmplY3Q7Ci0gICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBtX2Z1bmN0aW9u
OwotICAgIH07Ci0KLSAgICBjbGFzcyBIb2xkZXI7Ci0KLXByaXZhdGU6Ci0gICAgUnVuTG9vcCgp
OwotCi0gICAgdm9pZCBwZXJmb3JtV29yaygpOwotCi0gICAgTXV0ZXggbV9mdW5jdGlvblF1ZXVl
TG9jazsKLSAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+ID4gbV9mdW5jdGlvblF1ZXVlOwotCi0j
aWYgUExBVEZPUk0oV0lOKQotICAgIHN0YXRpYyBib29sIHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VX
aW5kb3dDbGFzcygpOwotICAgIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFJ1bkxvb3BXbmRQcm9j
KEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKLSAgICBMUkVTVUxUIHduZFByb2MoSFdORCBo
V25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pOwotICAgIEhX
TkQgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdzsKLQotICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRf
dCwgVGltZXJCYXNlKj4gVGltZXJNYXA7Ci0gICAgVGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7Ci0j
ZWxpZiBQTEFURk9STShNQUMpCi0gICAgc3RhdGljIHZvaWQgcGVyZm9ybVdvcmsodm9pZCopOwot
ICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fcnVuTG9vcDsKLSAgICBSZXRhaW5QdHI8Q0ZS
dW5Mb29wU291cmNlUmVmPiBtX3J1bkxvb3BTb3VyY2U7Ci0gICAgaW50IG1fbmVzdGluZ0xldmVs
OwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgdHlwZWRlZiBIYXNoTWFwPGludCwgVGltZXJCYXNl
Kj4gVGltZXJNYXA7Ci0gICAgVGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7Ci0gICAgY2xhc3MgVGlt
ZXJPYmplY3Q7Ci0gICAgVGltZXJPYmplY3QqIG1fdGltZXJPYmplY3Q7Ci0jZWxpZiBQTEFURk9S
TShHVEspCi1wdWJsaWM6Ci0gICAgc3RhdGljIGdib29sZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7
Ci0gICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wKCk7Ci0gICAgdm9pZCBwdXNoTmVzdGVkTWFp
bkxvb3AoR01haW5Mb29wKik7Ci0gICAgdm9pZCBwb3BOZXN0ZWRNYWluTG9vcCgpOwotcHJpdmF0
ZToKLSAgICBHUmVmUHRyPEdNYWluQ29udGV4dD4gbV9ydW5Mb29wQ29udGV4dDsKLSAgICBWZWN0
b3I8R1JlZlB0cjxHTWFpbkxvb3A+ID4gbV9ydW5Mb29wTWFpbkxvb3BzOwotI2VsaWYgUExBVEZP
Uk0oRUZMKQotICAgIGJvb2wgbV9pbml0RWZsOwotCi0gICAgTXV0ZXggbV9waXBlTG9jazsKLSAg
ICBPd25QdHI8RWNvcmVfUGlwZT4gbV9waXBlOwotCi0gICAgTXV0ZXggbV93YWtlVXBFdmVudFJl
cXVlc3RlZExvY2s7Ci0gICAgYm9vbCBtX3dha2VVcEV2ZW50UmVxdWVzdGVkOwotCi0gICAgc3Rh
dGljIHZvaWQgd2FrZVVwRXZlbnQodm9pZCogZGF0YSwgdm9pZCosIHVuc2lnbmVkIGludCk7Ci0j
ZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFJ1bkxvb3Bf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9SdW5Mb29w
QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1J1bkxv
b3BCbGFja0JlcnJ5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTgyMDc4OGQ2
YWJiMDkzODJlOWUxOGNjZWVkZTY3NTMxMTExNzU2My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5
L1J1bkxvb3BCbGFja0JlcnJ5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NmL1J1bkxvb3BDRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
Zi9SdW5Mb29wQ0YuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZmZiNTU2MzY2
YjQ5YzhiNDc4MTE4MTU1Y2JjMzRkNTg5MjU0NTA2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1J1bkxvb3BD
Ri5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDxD
b3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgotI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3Bh
dGNoLmg+Ci0jaW5jbHVkZSA8d3RmL0F1dG9kcmFpbmVkUG9vbC5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLXZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsodm9pZCogY29udGV4dCkKLXsKLSAg
ICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKLSAgICBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oY29udGV4
dCktPnBlcmZvcm1Xb3JrKCk7Ci19Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotICAgIDogbV9ydW5M
b29wKENGUnVuTG9vcEdldEN1cnJlbnQoKSkKLSAgICAsIG1fbmVzdGluZ0xldmVsKDApCi17Ci0g
ICAgQ0ZSdW5Mb29wU291cmNlQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCBwZXJmb3JtV29yayB9OwotICAgIG1fcnVuTG9vcFNvdXJjZSA9IGFkb3B0Q0Yo
Q0ZSdW5Mb29wU291cmNlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZjb250ZXh0KSk7
Ci0gICAgQ0ZSdW5Mb29wQWRkU291cmNlKG1fcnVuTG9vcC5nZXQoKSwgbV9ydW5Mb29wU291cmNl
LmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgp
Ci17Ci0gICAgQ0ZSdW5Mb29wU291cmNlSW52YWxpZGF0ZShtX3J1bkxvb3BTb3VyY2UuZ2V0KCkp
OwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKLXsK
LSAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCBkdXJhdGlvbiwg
dHJ1ZSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBDRlJ1bkxvb3BTb3Vy
Y2VTaWduYWwobV9ydW5Mb29wU291cmNlLmdldCgpKTsKLSAgICBDRlJ1bkxvb3BXYWtlVXAobV9y
dW5Mb29wLmdldCgpKTsKLX0KLQotI2lmICFQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykK
LXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsKys7
Ci0gICAgCi0gICAgewotICAgICAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKLSAgICAgICAgQ0ZS
dW5Mb29wUnVuKCk7Ci0gICAgfQotICAgIAotICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwt
LTsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAgICBBU1NFUlQobV9ydW5Mb29wID09
IENGUnVuTG9vcEdldEN1cnJlbnQoKSk7Ci0gICAgQ0ZSdW5Mb29wU3RvcChtX3J1bkxvb3AuZ2V0
KCkpOwotfQotI2VuZGlmCi0KLS8vIFJ1bkxvb3A6OlRpbWVyCi0KLXZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjp0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKiBjb250ZXh0KQotewot
ICAgIFRpbWVyQmFzZSogdGltZXIgPSBzdGF0aWNfY2FzdDxUaW1lckJhc2UqPihjb250ZXh0KTsK
LQotICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwotICAgIHRpbWVyLT5maXJlZCgpOwotfQotCi1S
dW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDogbV9y
dW5Mb29wKHJ1bkxvb3ApCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgp
Ci17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91
YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAgIGlmIChtX3RpbWVyKQot
ICAgICAgICBzdG9wKCk7Ci0gICAgCi0gICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0IGNvbnRleHQg
PSB7IDAsIHRoaXMsIDAsIDAsIDAgfTsKLSAgICBDRlRpbWVJbnRlcnZhbCByZXBlYXRJbnRlcnZh
bCA9IHJlcGVhdCA/IG5leHRGaXJlSW50ZXJ2YWwgOiAwOwotICAgIG1fdGltZXIgPSBhZG9wdENG
KENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1l
R2V0Q3VycmVudCgpICsgbmV4dEZpcmVJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWwsIDAsIDAsIHRp
bWVyRmlyZWQsICZjb250ZXh0KSk7Ci0gICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLT5t
X3J1bkxvb3AuZ2V0KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci19
Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKLXsKLSAgICBpZiAoIW1fdGltZXIp
Ci0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBDRlJ1bkxvb3BUaW1lckludmFsaWRhdGUobV90
aW1lci5nZXQoKSk7Ci0gICAgbV90aW1lciA9IG51bGxwdHI7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6
VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZS
dW5Mb29wVGltZXJJc1ZhbGlkKG1fdGltZXIuZ2V0KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUnVuTG9vcEVm
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUnVuTG9vcEVmbC5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzODFiMzY3ZDMzODA3Y2ZmZjkzNzNiYTczMDlmZWUy
ZTc2NWExNTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1J1bkxvb3BFZmwuY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsMTM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVt
YmVkZGVkIHN5c3RlbXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgU2Ftc3VuZyBFbGVjdHJvbmljcwotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPEVjb3JlLmg+Ci0jaW5j
bHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLXN0YXRp
YyBjb25zdCBpbnQgZWNvcmVQaXBlTWVzc2FnZVNpemUgPSAxOwotc3RhdGljIGNvbnN0IGNoYXIg
d2FrdXBFY29yZVBpcGVNZXNzYWdlW10gPSAiVyI7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
UnVuTG9vcDo6UnVuTG9vcCgpCi0gICAgOiBtX2luaXRFZmwoZmFsc2UpCi0gICAgLCBtX3dha2VV
cEV2ZW50UmVxdWVzdGVkKGZhbHNlKQotewotICAgIG1fcGlwZSA9IGFkb3B0UHRyKGVjb3JlX3Bp
cGVfYWRkKHdha2VVcEV2ZW50LCB0aGlzKSk7Ci0gICAgbV9pbml0RWZsID0gdHJ1ZTsKLX0KLQot
UnVuTG9vcDo6flJ1bkxvb3AoKQotewotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAg
ZWNvcmVfbWFpbl9sb29wX2JlZ2luKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0g
ICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXBFdmVu
dCh2b2lkKiBkYXRhLCB2b2lkKiwgdW5zaWduZWQgaW50KQotewotICAgIFJ1bkxvb3AqIGxvb3Ag
PSBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oZGF0YSk7Ci0KLSAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihsb29wLT5tX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jayk7Ci0gICAgICAgIGxv
b3AtPm1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICBsb29wLT5w
ZXJmb3JtV29yaygpOwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2spOwotICAg
ICAgICBpZiAobV93YWtlVXBFdmVudFJlcXVlc3RlZCkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgbV93YWtlVXBFdmVudFJlcXVlc3RlZCA9IHRydWU7Ci0gICAgfQotCi0gICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9waXBlTG9jayk7Ci0gICAgICAgIGVjb3JlX3BpcGVf
d3JpdGUobV9waXBlLmdldCgpLCB3YWt1cEVjb3JlUGlwZU1lc3NhZ2UsIGVjb3JlUGlwZU1lc3Nh
Z2VTaXplKTsKLSAgICB9Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxv
b3AqKQotICAgIDogbV90aW1lcigwKQotICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsKLX0K
LQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0K
LWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHZvaWQqIGRhdGEpCi17Ci0gICAg
UnVuTG9vcDo6VGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFJ1bkxvb3A6OlRpbWVyQmFz
ZSo+KGRhdGEpOwotCi0gICAgdGltZXItPmZpcmVkKCk7Ci0KLSAgICBpZiAoIXRpbWVyLT5tX2lz
UmVwZWF0aW5nKSB7Ci0gICAgICAgIHRpbWVyLT5tX3RpbWVyID0gMDsKLSAgICAgICAgcmV0dXJu
IEVDT1JFX0NBTExCQUNLX0NBTkNFTDsKLSAgICB9Ci0KLSAgICByZXR1cm4gRUNPUkVfQ0FMTEJB
Q0tfUkVORVc7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4
dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0gICAgaWYgKGlzQWN0aXZlKCkpCi0gICAg
ICAgIHN0b3AoKTsKLQotICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0gICAgQVNTRVJUKCFt
X3RpbWVyKTsKLSAgICBtX3RpbWVyID0gZWNvcmVfdGltZXJfYWRkKG5leHRGaXJlSW50ZXJ2YWws
IHJlaW50ZXJwcmV0X2Nhc3Q8RWNvcmVfVGFza19DYj4odGltZXJGaXJlZCksIHRoaXMpOwotfQot
Ci12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgaWYgKG1fdGltZXIpIHsK
LSAgICAgICAgZWNvcmVfdGltZXJfZGVsKG1fdGltZXIpOwotICAgICAgICBtX3RpbWVyID0gMDsK
LSAgICB9Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIChtX3RpbWVyKSA/IHRydWUgOiBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oCmluZGV4IDRkNzBjZDI2YTQ3ZDMxYzE4YzcyYjMzYTYwODkwNDBlODJiOTdk
NWIuLjM1M2QyOGJjMWEyMzBhZTMwZmEzNjMyMGEwNjA0ZTZlNjM4YTc0YTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTMw
LDEzICszMCwxMyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJUcmFuc2Zvcm0uaCIKICNpbmNs
dWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgi
CiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdT
dG9yZUNsaWVudC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaWYgVVNF
KEdSQVBISUNTX1NVUkZBQ0UpCiAjaW5jbHVkZSAiR3JhcGhpY3NTdXJmYWNlVG9rZW4uaCIKICNl
bmRpZgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCmluZGV4IDllODNmYzVi
ZTI1NmViZTI4Njk0MGI0ZTg5ZDhlOTVmMmM1MDMwZWEuLjA0ZWEwMWNlNzgwNmUwN2UyNzk0M2Q0
YWI5MWU0YTEzZWQ4NDBiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJHcmFw
aGljc1N1cmZhY2UuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5o
IgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyLmgiCiAjaW5j
bHVkZSAiVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJGUFNDb3VudGVyLmgiCkBAIC0zNyw2ICszNiw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZh
dGVGdWxsc2NyZWVuV2luZG93LmgKaW5kZXggMjYyMmZiYWQ0ZmRlNTM3OThiZmU3NDIyM2I5NWIx
YTFkMDI0YzYwNS4uMmU0YWU2OTRiMzExNmNmZDY1OTFhMzhiN2U4Yzg4YmJkNDZmZDExNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5oCkBAIC0yNyw3
ICsyNyw3IEBACiAjZGVmaW5lIE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3dfaAog
CiAjaWYgT1MoV0lORE9XUykKLSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgiCisjaW5jbHVkZSA8
d3RmL1dpbmRvd3NFeHRyYXMuaD4KICNlbmRpZgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxOTBmMzVjYTY2ZDIyMGI0MGQ0ZjYzZjdkOWY2Yzk4NDI3NTc3NzFk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE3
MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2Jp
bGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPGdkay9nZGsuaD4KLSNp
bmNsdWRlIDxnbGliLmg+Ci0KLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotewotICAgIC8vIGdfbWFpbl9jb250
ZXh0X2RlZmF1bHQoKSBkb2Vzbid0IGFkZCBhbiBleHRyYSByZWZlcmVuY2UuCi0gICAgbV9ydW5M
b29wQ29udGV4dCA9IGlzTWFpblRocmVhZCgpID8gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpIDog
YWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0X25ldygpKTsKLSAgICBBU1NFUlQobV9ydW5Mb29wQ29u
dGV4dCk7Ci0gICAgR1JlZlB0cjxHTWFpbkxvb3A+IGlubmVybW9zdExvb3AgPSBhZG9wdEdSZWYo
Z19tYWluX2xvb3BfbmV3KG1fcnVuTG9vcENvbnRleHQuZ2V0KCksIEZBTFNFKSk7Ci0gICAgQVNT
RVJUKGlubmVybW9zdExvb3ApOwotICAgIG1fcnVuTG9vcE1haW5Mb29wcy5hcHBlbmQoaW5uZXJt
b3N0TG9vcCk7Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLSAgICBmb3IgKGludCBpID0g
bV9ydW5Mb29wTWFpbkxvb3BzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgIGlm
ICghZ19tYWluX2xvb3BfaXNfcnVubmluZyhtX3J1bkxvb3BNYWluTG9vcHNbaV0uZ2V0KCkpKQot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9ydW5Mb29w
TWFpbkxvb3BzW2ldLmdldCgpKTsKLSAgICB9Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsK
LSAgICBSdW5Mb29wKiBtYWluUnVuTG9vcCA9IFJ1bkxvb3A6OmN1cnJlbnQoKTsKLSAgICBHTWFp
bkxvb3AqIGlubmVybW9zdExvb3AgPSBtYWluUnVuTG9vcC0+aW5uZXJtb3N0TG9vcCgpOwotICAg
IGlmICghZ19tYWluX2xvb3BfaXNfcnVubmluZyhpbm5lcm1vc3RMb29wKSkgewotICAgICAgICBn
X21haW5fbG9vcF9ydW4oaW5uZXJtb3N0TG9vcCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICAvLyBDcmVhdGUgYW5kIHJ1biBhIG5lc3RlZCBsb29wIGlmIHRoZSBpbm5lcm1vc3Qgb25l
IHdhcyBhbHJlYWR5IHJ1bm5pbmcuCi0gICAgR01haW5Mb29wKiBuZXN0ZWRNYWluTG9vcCA9IGdf
bWFpbl9sb29wX25ldygwLCBGQUxTRSk7Ci0gICAgbWFpblJ1bkxvb3AtPnB1c2hOZXN0ZWRNYWlu
TG9vcChuZXN0ZWRNYWluTG9vcCk7Ci0gICAgZ19tYWluX2xvb3BfcnVuKG5lc3RlZE1haW5Mb29w
KTsKLSAgICBtYWluUnVuTG9vcC0+cG9wTmVzdGVkTWFpbkxvb3AoKTsKLX0KLQotR01haW5Mb29w
KiBSdW5Mb29wOjppbm5lcm1vc3RMb29wKCkKLXsKLSAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4g
bG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgotICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxv
b3BzLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIG1fcnVuTG9vcE1haW5Mb29wc1swXS5nZXQoKTsK
LX0KLQotdm9pZCBSdW5Mb29wOjpwdXNoTmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKiBuZXN0ZWRM
b29wKQotewotICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUg
dGhlcmUuCi0gICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKLSAgICBt
X3J1bkxvb3BNYWluTG9vcHMuYXBwZW5kKGFkb3B0R1JlZihuZXN0ZWRMb29wKSk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6cG9wTmVzdGVkTWFpbkxvb3AoKQotewotICAgIC8vIFRoZSBpbm5lcm1vc3Qg
bWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCi0gICAgQVNTRVJUKCFtX3J1bkxvb3BN
YWluTG9vcHMuaXNFbXB0eSgpKTsKLSAgICBtX3J1bkxvb3BNYWluTG9vcHMucmVtb3ZlTGFzdCgp
OwotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFp
biBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCi0gICAgQVNTRVJUKCFtX3J1bkxvb3BNYWlu
TG9vcHMuaXNFbXB0eSgpKTsKLSAgICBHUmVmUHRyPEdNYWluTG9vcD4gbGFzdE1haW5Mb29wID0g
bV9ydW5Mb29wTWFpbkxvb3BzLmxhc3QoKTsKLSAgICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmlu
ZyhsYXN0TWFpbkxvb3AuZ2V0KCkpKQotICAgICAgICBnX21haW5fbG9vcF9xdWl0KGxhc3RNYWlu
TG9vcC5nZXQoKSk7Ci19Ci0KLWdib29sZWFuIFJ1bkxvb3A6OnF1ZXVlV29yayhSdW5Mb29wKiBy
dW5Mb29wKQotewotICAgIHJ1bkxvb3AtPnBlcmZvcm1Xb3JrKCk7Ci0gICAgcmV0dXJuIEZBTFNF
OwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgR1JlZlB0cjxHU291cmNlPiBz
b3VyY2UgPSBhZG9wdEdSZWYoZ19pZGxlX3NvdXJjZV9uZXcoKSk7Ci0gICAgZ19zb3VyY2Vfc2V0
X3ByaW9yaXR5KHNvdXJjZS5nZXQoKSwgR19QUklPUklUWV9ERUZBVUxUKTsKLSAgICBnX3NvdXJj
ZV9zZXRfY2FsbGJhY2soc291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5j
PigmUnVuTG9vcDo6cXVldWVXb3JrKSwgdGhpcywgMCk7Ci0gICAgZ19zb3VyY2VfYXR0YWNoKHNv
dXJjZS5nZXQoKSwgbV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7Ci0KLSAgICBnX21haW5fY29udGV4
dF93YWtldXAobV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFz
ZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxvb3AocnVuTG9vcCkK
LSAgICAsIG1fdGltZXJTb3VyY2UoMCkKLXsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGlt
ZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpj
bGVhclRpbWVyU291cmNlKCkKLXsKLSAgICBtX3RpbWVyU291cmNlID0gMDsKLX0KLQotZ2Jvb2xl
YW4gUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJC
YXNlKiB0aW1lcikKLXsKLSAgICBHU291cmNlKiBjdXJyZW50VGltZXJTb3VyY2UgPSB0aW1lci0+
bV90aW1lclNvdXJjZS5nZXQoKTsKLSAgICBib29sIGlzUmVwZWF0aW5nID0gdGltZXItPmlzUmVw
ZWF0aW5nKCk7Ci0gICAgLy8gVGhpcyBjYW4gY2hhbmdlIHRoZSB0aW1lclNvdXJjZSBieSBzdGFy
dGluZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhlIGNhbGxiYWNrLgotICAgIHRpbWVyLT5maXJlZCgp
OwotICAgIGlmICghaXNSZXBlYXRpbmcgJiYgY3VycmVudFRpbWVyU291cmNlID09IHRpbWVyLT5t
X3RpbWVyU291cmNlLmdldCgpKQotICAgICAgICB0aW1lci0+Y2xlYXJUaW1lclNvdXJjZSgpOwot
ICAgIHJldHVybiBpc1JlcGVhdGluZzsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0
YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAgIGlmIChtX3RpbWVy
U291cmNlKQotICAgICAgICBzdG9wKCk7Ci0KLSAgICBtX3RpbWVyU291cmNlID0gYWRvcHRHUmVm
KGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJlSW50ZXJ2YWwgKiAx
MDAwKSkpOwotICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0gICAgZ19zb3VyY2Vfc2V0X2Nh
bGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+
KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayksIHRoaXMsIDApOwotICAg
IGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1bkxvb3AtPm1fcnVuTG9v
cENvbnRleHQuZ2V0KCkpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17
Ci0gICAgaWYgKCFtX3RpbWVyU291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBnX3NvdXJj
ZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOwotICAgIGNsZWFyVGltZXJTb3VyY2UoKTsK
LX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV90aW1lclNvdXJjZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzc1MGRhMDg5MDZkM2Q0ZmRmODc3ZWVmMWE3MjkwNTdmYjZhMDlmZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlJ1bkxvb3AuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgYm9vbCBzX3VzZUFwcGxpY2F0aW9uUnVuTG9v
cE9uTWFpblJ1bkxvb3A7Ci0KLXZvaWQgUnVuTG9vcDo6c2V0VXNlQXBwbGljYXRpb25SdW5Mb29w
T25NYWluUnVuTG9vcCgpCi17Ci0gICAgc191c2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5M
b29wID0gdHJ1ZTsKLX0KLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIGN1cnJlbnQoKS0+
bV9uZXN0aW5nTGV2ZWwrKzsKLSAgICBpZiAoY3VycmVudCgpID09IG1haW4oKSAmJiBjdXJyZW50
KCktPm1fbmVzdGluZ0xldmVsID09IDEgJiYgc191c2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5S
dW5Mb29wKSB7Ci0gICAgICAgIC8vIFVzZSAtW05TQXBwbGljYXRpb24gcnVuXSBmb3IgdGhlIG1h
aW4gcnVuIGxvb3AuCi0gICAgICAgIFtOU0FwcCBydW5dOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbC0tOwotfQotCi12b2lkIFJ1
bkxvb3A6OnN0b3AoKQotewotICAgIEFTU0VSVChtX3J1bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0Q3Vy
cmVudCgpKTsKLQotICAgIC8vIE5lc3RpbmcgbGV2ZWwgY2FuIGJlIDAgaWYgdGhlIHJ1biBsb29w
IGlzIHN0YXJ0ZWQgZXh0ZXJuYWxseSAoc3VjaCBhcyB0aGUgY2FzZSBmb3IgWFBDIHNlcnZpY2Vz
KS4KLSAgICBpZiAobV9ydW5Mb29wID09IG1haW4oKS0+bV9ydW5Mb29wICYmIG1fbmVzdGluZ0xl
dmVsIDw9IDEgJiYgc191c2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wKSB7Ci0gICAg
ICAgIEFTU0VSVChbTlNBcHAgaXNSdW5uaW5nXSk7Ci0gICAgICAgIFtOU0FwcCBzdG9wOm5pbF07
Ci0gICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOk5T
QXBwbGljYXRpb25EZWZpbmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MC4wCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjowCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0Om5pbAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VidHlwZTogMAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhMTowCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEyOjBdOwotICAgICAgICBbTlNBcHAgcG9zdEV2
ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1ZV07Ci0gICAgfSBlbHNlCi0gICAgICAgIENGUnVuTG9vcFN0
b3AobV9ydW5Mb29wLmdldCgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDUwMWJkNWMxMjNiMGYwM2NlOWEwY2Y5MGUxNzI2OTFmNTA2ZDlhMWIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUnVuTG9vcFF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE2NiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1
bkxvb3AuaCIKLQotI2luY2x1ZGUgPFFBYnN0cmFjdEV2ZW50RGlzcGF0Y2hlcj4KLSNpbmNsdWRl
IDxRQ29yZUFwcGxpY2F0aW9uPgotI2luY2x1ZGUgPFFNZXRhTWV0aG9kPgotI2luY2x1ZGUgPFFN
ZXRhT2JqZWN0PgotI2luY2x1ZGUgPFFPYmplY3Q+Ci0jaW5jbHVkZSA8UVRpbWVyRXZlbnQ+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUnVuTG9vcDo6VGltZXJPYmplY3QgOiBwdWJs
aWMgUU9iamVjdCB7Ci0gICAgUV9PQkpFQ1QKLXB1YmxpYzoKLSAgICBUaW1lck9iamVjdChSdW5M
b29wKiBydW5Mb29wKSA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgIHsKLSAgICAgICAgaW50IG1l
dGhvZEluZGV4ID0gbWV0YU9iamVjdCgpLT5pbmRleE9mTWV0aG9kKCJwZXJmb3JtV29yaygpIik7
Ci0gICAgICAgIG1fbWV0aG9kID0gbWV0YU9iamVjdCgpLT5tZXRob2QobWV0aG9kSW5kZXgpOwot
ICAgIH0KLQotICAgIFFfU0xPVCB2b2lkIHBlcmZvcm1Xb3JrKCkgeyBtX3J1bkxvb3AtPnBlcmZv
cm1Xb3JrKCk7IH0KLSAgICBpbmxpbmUgdm9pZCB3YWtlVXAoKSB7IG1fbWV0aG9kLmludm9rZSh0
aGlzLCBRdDo6UXVldWVkQ29ubmVjdGlvbik7IH0KLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwg
dm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBldmVudCkKLSAgICB7Ci0gICAgICAgIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChtX3J1bkxvb3AsIGV2ZW50LT50aW1lcklkKCkpOwot
ICAgIH0KLQotcHJpdmF0ZToKLSAgICBSdW5Mb29wKiBtX3J1bkxvb3A7Ci0gICAgUU1ldGFNZXRo
b2QgbV9tZXRob2Q7Ci19OwotCi1zdGF0aWMgUUV2ZW50TG9vcCogY3VycmVudEV2ZW50TG9vcDsK
LQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIHN0YXRpYyBib29sIG1haW5FdmVudExvb3BJ
c1J1bm5pbmcgPSBmYWxzZTsKLSAgICBpZiAoIW1haW5FdmVudExvb3BJc1J1bm5pbmcpIHsKLSAg
ICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IHRydWU7Ci0gICAgICAgIFFDb3JlQXBwbGlj
YXRpb246OmV4ZWMoKTsKLSAgICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZhbHNlOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIFFFdmVudExvb3AgZXZlbnRMb29wOwotCi0gICAgICAgIFFF
dmVudExvb3AqIHByZXZpb3VzRXZlbnRMb29wID0gY3VycmVudEV2ZW50TG9vcDsKLSAgICAgICAg
Y3VycmVudEV2ZW50TG9vcCA9ICZldmVudExvb3A7Ci0KLSAgICAgICAgZXZlbnRMb29wLmV4ZWMo
KTsKLQotICAgICAgICBjdXJyZW50RXZlbnRMb29wID0gcHJldmlvdXNFdmVudExvb3A7Ci0gICAg
fQotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIGlmIChjdXJyZW50RXZlbnRMb29w
KQotICAgICAgICBjdXJyZW50RXZlbnRMb29wLT5leGl0KCk7Ci0gICAgZWxzZQotICAgICAgICBR
Q29yZUFwcGxpY2F0aW9uOjpleGl0KCk7Ci19Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotICAgIDog
bV90aW1lck9iamVjdChuZXcgVGltZXJPYmplY3QodGhpcykpCi17Ci19Ci0KLVJ1bkxvb3A6On5S
dW5Mb29wKCkKLXsKLSAgICBkZWxldGUgbV90aW1lck9iamVjdDsKLX0KLQotdm9pZCBSdW5Mb29w
Ojp3YWtlVXAoKQotewotICAgIG1fdGltZXJPYmplY3QtPndha2VVcCgpOwotfQotCi0vLyBSdW5M
b29wOjpUaW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29w
KiBydW5Mb29wLCBpbnQgSUQpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9v
cC0+bV9hY3RpdmVUaW1lcnMuZmluZChJRCk7Ci0gICAgQVNTRVJUKGl0ICE9IHJ1bkxvb3AtPm1f
YWN0aXZlVGltZXJzLmVuZCgpKTsKLSAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnZhbHVlOwot
Ci0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgewotICAgICAgICAvLyBTdG9wIHRoZSB0
aW1lciAoY2FsbGluZyBzdG9wIHdvdWxkIG5lZWQgYW5vdGhlciBoYXNoIHRhYmxlIGxvb2t1cCku
Ci0gICAgICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgICAgIHJ1
bkxvb3AtPm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcih0aW1lci0+bV9JRCk7Ci0gICAgICAgIHRp
bWVyLT5tX0lEID0gMDsKLSAgICB9Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsKLX0KLQotUnVuTG9v
cDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9v
cChydW5Mb29wKQotICAgICwgbV9JRCgwKQotICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsK
LX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19
Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZh
bCwgYm9vbCByZXBlYXQpCi17Ci0gICAgc3RvcCgpOwotICAgIGludCBtaWxsaXMgPSBzdGF0aWNf
Y2FzdDxpbnQ+KG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwKTsKLSAgICBtX2lzUmVwZWF0aW5nID0g
cmVwZWF0OwotICAgIG1fSUQgPSBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3QtPnN0YXJ0VGltZXIo
bWlsbGlzKTsKLSAgICBBU1NFUlQobV9JRCk7Ci0gICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5zZXQobV9JRCwgdGhpcyk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkK
LXsKLSAgICBpZiAoIW1fSUQpCi0gICAgICAgIHJldHVybjsKLSAgICBUaW1lck1hcDo6aXRlcmF0
b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7Ci0gICAgaWYgKGl0
ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKLSAgICBtX3J1bkxvb3At
Pm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcihtX0lEKTsKLSAgICBtX0lEID0gMDsKLX0KLQotYm9v
bCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9J
RDsKLX0KLQotI2luY2x1ZGUgIlJ1bkxvb3BRdC5tb2MiCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9NSU1FVHlwZVJlZ2lz
dHJ5V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9NSU1FVHlwZVJlZ2lzdHJ5
V2luLmNwcAppbmRleCBlZDdiNDI1MGY0ZGNjMWZlYTVhNGQ4MGY0OWExMjY2NWM1MmRjNWM5Li44
NTMyOTM0YjI2MTM4NzkyMzI3OGY4Nzk1ZjQ0NmY2NjA4ZjQxZWU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTUlNRVR5cGVSZWdpc3RyeVdpbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL01JTUVUeXBlUmVnaXN0cnlXaW4uY3BwCkBAIC0yNiwx
MCArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lz
dHJ5LmgiCiAKLSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkLmg+CisjaW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2Fy
ZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAK
aW5kZXggYWM3MDZjNGM1MTAwNDI5NTE1M2UxODViNDE0MWQyYmM2MTJmZjBhMi4uNmJkNWMxOGE1
OWFkMTJlMDM3NTYxNTIyYTJhN2Y0ZmVhMDE4OWJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtNDQsOCArNDQsOCBAQAogI2luY2x1ZGUg
IlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZUluc3RhbmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiV2luZG93c0V4dHJhcy5oIgogI2luY2x1
ZGUgIm1hcmt1cC5oIgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCmluZGV4IDI4MGM0ODVhOTc3NGNjMGMz
MzUyMjU5MzJmNWM3YTY1OTlmNjFlZGEuLjg3YzRjOWE5M2FkMDU2OWRhMjkwMjM4YTA5MzY3ZTg0
ZGIyZTNjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4u
Y3BwCkBAIC00NSw3ICs0NSw3IEBACiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNs
dWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUluc3RhbmNlSGFuZGxlLmgiCi0jaW5j
bHVkZSAiV2luZG93c0V4dHJhcy5oIgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+CiAK
ICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d2luZG93c3guaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMTdkNjg0NWU5ZmZkYzM5MjhjMDY3YzdjMTU4ODNhYWI5MGQyOWE2OC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNzkgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0K
LSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
Ci0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGlj
IGNvbnN0IFVJTlQgUGVyZm9ybVdvcmtNZXNzYWdlID0gV01fVVNFUiArIDE7Ci1zdGF0aWMgY29u
c3QgTFBXU1RSIGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSA9IEwiUnVuTG9vcE1lc3Nh
Z2VXaW5kb3ciOwotCi1MUkVTVUxUIENBTExCQUNLIFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jKEhX
TkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQotewot
ICAgIGlmIChSdW5Mb29wKiBydW5Mb29wID0gc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGdldFdpbmRv
d1BvaW50ZXIoaFduZCwgMCkpKQotICAgICAgICByZXR1cm4gcnVuTG9vcC0+d25kUHJvYyhoV25k
LCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci0KLSAgICBpZiAobWVzc2FnZSA9PSBXTV9DUkVB
VEUpIHsKLSAgICAgICAgTFBDUkVBVEVTVFJVQ1QgY3JlYXRlU3RydWN0ID0gcmVpbnRlcnByZXRf
Y2FzdDxMUENSRUFURVNUUlVDVD4obFBhcmFtKTsKLQotICAgICAgICAvLyBBc3NvY2lhdGUgdGhl
IFJ1bkxvb3Agd2l0aCB0aGUgd2luZG93LgotICAgICAgICBzZXRXaW5kb3dQb2ludGVyKGhXbmQs
IDAsIGNyZWF0ZVN0cnVjdC0+bHBDcmVhdGVQYXJhbXMpOwotICAgICAgICByZXR1cm4gMDsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwg
bFBhcmFtKTsKLX0KLQotTFJFU1VMVCBSdW5Mb29wOjp3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBt
ZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQotewotICAgIHN3aXRjaCAobWVz
c2FnZSkgewotICAgIGNhc2UgUGVyZm9ybVdvcmtNZXNzYWdlOgotICAgICAgICBwZXJmb3JtV29y
aygpOwotICAgICAgICByZXR1cm4gMDsKLSAgICBjYXNlIFdNX1RJTUVSOgotICAgICAgICBSdW5M
b29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQodGhpcywgd1BhcmFtKTsKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3
UGFyYW0sIGxQYXJhbSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAgICBNU0cgbWVz
c2FnZTsKLSAgICB3aGlsZSAoQk9PTCByZXN1bHQgPSA6OkdldE1lc3NhZ2UoJm1lc3NhZ2UsIDAs
IDAsIDApKSB7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gLTEpCi0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgOjpUcmFuc2xhdGVNZXNzYWdlKCZtZXNzYWdlKTsKLSAgICAgICAgOjpEaXNwYXRj
aE1lc3NhZ2UoJm1lc3NhZ2UpOwotICAgIH0KLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsK
LSAgICA6OlBvc3RRdWl0TWVzc2FnZSgwKTsKLX0KLQotYm9vbCBSdW5Mb29wOjpyZWdpc3RlclJ1
bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKQotewotICAgIC8vIEZJWE1FOiBUaGlzIHJlYWxseSBv
bmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlLgotCi0gICAgV05EQ0xBU1Mgd2luZG93Q2xhc3Mg
PSB7IDAgfTsKLSAgICB3aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBSdW5Mb29wOjpSdW5M
b29wV25kUHJvYzsKLSAgICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAgPSBzaXplb2YoUnVu
TG9vcCopOwotICAgIHdpbmRvd0NsYXNzLmxwc3pDbGFzc05hbWUgICA9IGtSdW5Mb29wTWVzc2Fn
ZVdpbmRvd0NsYXNzTmFtZTsKLQotICAgIHJldHVybiAhITo6UmVnaXN0ZXJDbGFzcygmd2luZG93
Q2xhc3MpOwotfQotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsKLSAgICByZWdpc3RlclJ1bkxvb3BN
ZXNzYWdlV2luZG93Q2xhc3MoKTsKLQotICAgIG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cgPSA6OkNy
ZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUsIDAsIDAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENXX1VTRURFRkFVTFQsIDAsIENX
X1VTRURFRkFVTFQsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEhXTkRfTUVTU0FHRSwgMCwgMCwgdGhpcyk7Ci0gICAgQVNTRVJUKDo6SXNXaW5kb3cobV9y
dW5Mb29wTWVzc2FnZVdpbmRvdykpOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAg
Ly8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBpdGVtIHF1ZXVlIGhlcmUuCi19Ci0KLXZvaWQg
UnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICAvLyBGSVhNRTogTm8gbmVlZCB0byB3YWtlIHVwIHRo
ZSBydW4gbG9vcCBpZiB3ZSd2ZSBhbHJlYWR5IGNhbGxlZCBkaXNwYXRjaAotICAgIC8vIGJlZm9y
ZSB0aGUgcnVuIGxvb3AgaGFzIGhhZCB0aGUgdGltZSB0byByZXNwb25kLgotICAgIDo6UG9zdE1l
c3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgUGVyZm9ybVdvcmtNZXNzYWdlLCByZWludGVy
cHJldF9jYXN0PFdQQVJBTT4odGhpcyksIDApOwotfQotCi0vLyBSdW5Mb29wOjpUaW1lcgotCi12
b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5Mb29wLCB1aW50
NjRfdCBJRCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5maW5kKElEKTsKLSAgICBpZiAoaXQgPT0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMu
ZW5kKCkpIHsKLSAgICAgICAgLy8gVGhlIHRpbWVyIG11c3QgaGF2ZSBiZWVuIHN0b3BwZWQgYWZ0
ZXIgdGhlIFdNX1RJTUVSIG1lc3NhZ2Ugd2FzIHBvc3RlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZS4K
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFRpbWVyQmFzZSogdGltZXIgPSBpdC0+dmFs
dWU7Ci0KLSAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7Ci0gICAgICAgIHJ1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgICAgIDo6S2lsbFRpbWVyKHJ1bkxvb3At
Pm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIElEKTsKLSAgICB9Ci0KLSAgICB0aW1lci0+ZmlyZWQo
KTsKLX0KLQotc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlVGltZXJJRCgpCi17Ci0gICAgc3RhdGlj
IHVpbnQ2NF90IHVuaXF1ZVRpbWVySUQgPSAxOwotICAgIHJldHVybiB1bmlxdWVUaW1lcklEKys7
Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0g
ICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKLSAgICAsIG1fSUQoZ2VuZXJhdGVUaW1lcklEKCkpCi0g
ICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5U
aW1lckJhc2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6
OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBtX2lz
UmVwZWF0aW5nID0gcmVwZWF0OwotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1f
SUQsIHRoaXMpOwotICAgIDo6U2V0VGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2lu
ZG93LCBtX0lELCBuZXh0RmlyZUludGVydmFsICogMTAwMCwgMCk7Ci19Ci0KLXZvaWQgUnVuTG9v
cDo6VGltZXJCYXNlOjpzdG9wKCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBtX3J1
bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7Ci0gICAgaWYgKGl0ID09IG1fcnVuTG9v
cC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcnVuTG9v
cC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKLSAgICA6OktpbGxUaW1lcihtX3J1bkxvb3At
Pm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQpOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6aXNBY3RpdmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3J1bkxvb3AtPm1fYWN0aXZl
VGltZXJzLmNvbnRhaW5zKG1fSUQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2hhcmVkVGltZXJXaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NoYXJlZFRpbWVyV2luLmNwcAppbmRleCA3NzA2
OWJjOTNhMzI2NGZjZmY5YmM4MTBjZGRhMTJjN2E3OTkwMjk0Li4zOTdkNmRjMzRiN2JjZDNmZjk5
ZGMzZGNmMjM2YTUxMDNjZjZjNTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU2hhcmVkVGltZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9TaGFyZWRUaW1lcldpbi5jcHAKQEAgLTMyLDggKzMyLDggQEAKICNpbmNsdWRlICJXaWRnZXQu
aCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+CiAKLSNpbmNsdWRlICJXaW5kb3dz
RXh0cmFzLmgiCiAjaW5jbHVkZSA8bW1zeXN0ZW0uaD4KIAogI2lmIFBMQVRGT1JNKFdJTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaW5kb3dNZXNzYWdlTGlzdGVu
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaW5kb3dNZXNzYWdlTGlzdGVuZXIu
aAppbmRleCAxZDQxMGYyMmMyNTY3NGUzMDExM2EzYzcwYWU2YWU3YjhmZGYxYzg1Li5hMzJhZjhl
NjQyMGQ5YWU2YTI2NjU3MzhmOGE3MDliNTI3MDMxYmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vV2luZG93TWVzc2FnZUxpc3RlbmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1dpbmRvd01lc3NhZ2VMaXN0ZW5lci5oCkBAIC0zMCw3ICszMCw3
IEBACiAjZGVmaW5lIFdpbmRvd01lc3NhZ2VMaXN0ZW5lcl9oCiAKICNpZiBPUyhXSU5ET1dTKQot
I2luY2x1ZGUgIldpbmRvd3NFeHRyYXMuaCIKKyNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJhcy5o
PgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9XaW5kb3dzRXh0cmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vV2luZG93c0V4dHJhcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODNk
OWQ5NDMyZjlhZDYyMTlkY2FkMjUzM2E5ZjA4MTU3MGQ1MDUzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9X
aW5kb3dzRXh0cmFzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFdpbmRvd3NFeHRyYXNfaAotI2RlZmluZSBXaW5kb3dzRXh0cmFzX2gKLQotI2luY2x1ZGUgPHdp
bmRvd3MuaD4KLSNpbmNsdWRlIDxvYmpiYXNlLmg+Ci0jaW5jbHVkZSA8c2hsd2FwaS5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNpZm5kZWYgSFdORF9NRVNTQUdFCi1jb25zdCBIV05EIEhX
TkRfTUVTU0FHRSA9IDA7Ci0jZW5kaWYKLQotaW5saW5lIEhSRVNVTFQgZ2V0UmVnaXN0cnlWYWx1
ZShIS0VZIGhrZXksIExQQ1dTVFIgcHN6U3ViS2V5LCBMUENXU1RSIHBzelZhbHVlLCBMUERXT1JE
IHBkd1R5cGUsIExQVk9JRCBwdkRhdGEsIExQRFdPUkQgcGNiRGF0YSkKLXsKLSNpZiBPUyhXSU5D
RSkKLSAgICBIS0VZIGtleTsKLSAgICBpZiAoOjpSZWdPcGVuS2V5RXhXKGhrZXksIHBzelN1Yktl
eSwgMCwgMCwgJmtleSkgIT0gRVJST1JfU1VDQ0VTUykKLSAgICAgICAgcmV0dXJuIEVSUk9SX0lO
VkFMSURfTkFNRTsKLSAgICBIUkVTVUxUIHJlc3VsdCA9IDo6UmVnUXVlcnlWYWx1ZUV4VyhrZXks
IHBzelZhbHVlLCAwLCBwZHdUeXBlLCBzdGF0aWNfY2FzdDxMUEJZVEU+KHB2RGF0YSksIHBjYkRh
dGEpOwotICAgIDo6UmVnQ2xvc2VLZXkoa2V5KTsKLSAgICByZXR1cm4gcmVzdWx0OwotI2Vsc2UK
LSAgICByZXR1cm4gOjpTSEdldFZhbHVlVyhoa2V5LCBwc3pTdWJLZXksIHBzelZhbHVlLCBwZHdU
eXBlLCBwdkRhdGEsIHBjYkRhdGEpOwotI2VuZGlmCi19Ci0KLWlubGluZSB2b2lkKiBnZXRXaW5k
b3dQb2ludGVyKEhXTkQgaFduZCwgaW50IGluZGV4KQotewotI2lmIE9TKFdJTkNFKQotICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPig6OkdldFdpbmRvd0xvbmcoaFduZCwgaW5kZXgp
KTsKLSNlbHNlCi0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDo6R2V0V2luZG93
TG9uZ1B0cihoV25kLCBpbmRleCkpOwotI2VuZGlmCi19Ci0KLWlubGluZSB2b2lkKiBzZXRXaW5k
b3dQb2ludGVyKEhXTkQgaFduZCwgaW50IGluZGV4LCB2b2lkKiB2YWx1ZSkKLXsKLSNpZiBPUyhX
SU5DRSkKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oOjpTZXRXaW5kb3dMb25n
KGhXbmQsIGluZGV4LCByZWludGVycHJldF9jYXN0PExPTkc+KHZhbHVlKSkpOwotI2Vsc2UKLSAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oOjpTZXRXaW5kb3dMb25nUHRyKGhXbmQs
IGluZGV4LCByZWludGVycHJldF9jYXN0PExPTkdfUFRSPih2YWx1ZSkpKTsKLSNlbmRpZgotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBXaW5kb3dzRXh0cmFzX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcAppbmRl
eCBlYjMwZmY4ODUyOTcyYjEyNjNiNzBmYjc0MjIyZWQ2NWIxMTA4YjI0Li5lZjkyYzFhZDcyYTVm
Zjk3MmY0NTNiNzFjM2RkOTBkNmJjOWNlZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL3dpbi9QbHVnaW5EYXRhYmFzZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGx1Z2luUGFja2FnZS5o
IgotI2luY2x1ZGUgIldpbmRvd3NFeHRyYXMuaCIKKyNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJh
cy5oPgogCiAjaWYgT1MoV0lOQ0UpCiAvLyBXSU5DRSBkb2Vzbid0IHN1cHBvcnQgUmVnaXN0cnkg
S2V5IEFjY2VzcyBSaWdodHMuIFRoZSBwYXJhbWV0ZXIgc2hvdWxkIGFsd2F5cyBiZSAwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCmluZGV4IDM4
ZjEzNDdhMzRiYTRjMjA0MTQ2MWZlYzRmZTQ0YThlZGYwYTI2MjIuLmUxMTI4NzVjMWQ3YTIyOWQw
N2EwNGFmYzBjYzkwNmJlYWFhNjcxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0Nh
cmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJv
bi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCkBAIC03Myw5ICs3Myw5IEBACiAjaW1wb3J0IDxhc3Nl
cnQuaD4KIAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgotI2ltcG9ydCA8
V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcu
aD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgog
CiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJOU09iamVjdEV4dHJhcy5o
IgpAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRs
ZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiB7CiAgICAgSlND
Ojppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRv
UHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBX
ZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCmluZGV4IDY4M2I5YTg1ZDBj
YzNlNjU5OWUwZTZkN2MxMzZlYTkwN2MyZTlkNTcuLmUxZTgwYTc3MjY5YWEyNzAzY2RjNDk4MTAw
MzE5MjA2NWU1MzEzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2Vi
QmFja0ZvcndhcmRMaXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFj
a0ZvcndhcmRMaXN0Lm1tCkBAIC00Miw3ICs0Miw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0hpc3Rv
cnlJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFn
ZUNhY2hlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUv
U2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KQEAgLTUwLDYgKzQ5LDcgQEAKICNpbXBvcnQgPHd0
Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDUsNyArMTA1LDcg
QEAgV2ViQmFja0ZvcndhcmRMaXN0ICpraXQoQmFja0ZvcndhcmRMaXN0SW1wbCogYmFja0Zvcndh
cmRMaXN0KQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5p
dGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVu
TG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1h
aW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRl
bS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KaW5kZXgg
MjgyNzhmOGI3NWEwOWUxMDU3Y2Y3ZTQxZjkxNDkxMWU1N2NlMTQ3OS4uNjBlOTlmYTI2MGQ3NTM1
ODJmMjFiZWFiYmE3NzI0MDBjYWY2NDg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
SGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5
L1dlYkhpc3RvcnlJdGVtLm1tCkBAIC00NywxMiArNDcsMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUv
SW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvS1VSTC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdl
Q2FjaGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9U
aHJlYWRDaGVjay5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2lt
cG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0
aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29w
Lmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIFdLTm90aWZ5SGlzdG9yeUl0ZW1DaGFu
Z2VkKEhpc3RvcnlJdGVtKikKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAg
ICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJl
YWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2Fj
aGUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCmluZGV4IDUyNjBlN2Zh
MDJjNDA3ODA3ZDRkYWRjZjA5MzY3ZDEyMTg5Y2Y2MDQuLmViZGM4MTAyZTRjN2ExNDQ4MGMxMTJj
ZTI1MjVkM2M3OTRiZWQ4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
Q2FjaGUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQpAQCAtMzMs
OSArMzMsOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01h
aW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBX
ZWJDYWNoZQogCkBAIC00Myw3ICs0Myw3IEBACiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFk
aW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQo
KTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBS
dW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBJbml0V2ViQ29yZVN5c3RlbUlu
dGVyZmFjZSgpOyAgIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
YkVsZW1lbnREaWN0aW9uYXJ5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJFbGVtZW50
RGljdGlvbmFyeS5tbQppbmRleCAxN2YyMjAxOTA3MGM0MDExNjU1N2JlMGNhNjNmN2M0ZDhkMmRl
ZmY2Li45MDk0YTM4YjI2ZDlhODJmNjU3NjU2MTgxNWY4MTQ0MTJmOTdlMGVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkVsZW1lbnREaWN0aW9uYXJ5Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0KQEAgLTM5LDEyICsz
OSwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXRU
ZXN0UmVzdWx0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ltYWdlLmg+Ci0jaW1wb3J0IDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBv
cnQgPFdlYktpdC9ET01Db3JlLmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NRXh0ZW5zaW9ucy5oPgog
I2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFp
blRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgY2FjaGVWYWx1ZUZvcktleShj
b25zdCB2b2lkICprZXksIGNvbnN0IHZvaWQgKnZhbHVlLCB2b2lkICpzZWxmKQogewogICAgIEpT
Qzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRU
b1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1h
aW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAg
V2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQppbmRleCBiYmY2ZWMzZDBhMjJiNjIyMzJjNjhm
YWM5NTFiNTAwNGQ3OGYzNWM4Li5kNGQ4OTg3NGY4NzgwMWRlM2E0ZmU5MDI3M2MyOGNlNDlmN2I5
N2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQpAQCAtNDAs
MTEgKzQwLDExIEBACiAjaW1wb3J0IDxXZWJDb3JlL0ljb25EYXRhYmFzZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9JbWFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnRTaXplLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVU
aHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVu
TG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtOTQsNyArOTQsNyBAQCBz
dGF0aWMgV2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBkZWZhdWx0Q2xpZW50KCkKIHsKICAgICBKU0M6
OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Q
cm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWlu
UnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogfQogCiAr
IChXZWJJY29uRGF0YWJhc2UgKilzaGFyZWRJY29uRGF0YWJhc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldy5tbQppbmRleCAxYzIyNjMxOWYzM2U5YzJlYzY4ODYxNjBmZDRhNmQ3MjBkOGI4N2Qx
Li41NTRhYTc1YmM4ZmZhYzk0ZDI0M2YzNDIzZGE4ODllY2UzMDg0MjA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0
c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC00NiwxMSArNDYsMTEgQEAKICNpbXBvcnQgPFdlYkNvcmUv
UmVuZGVyRW1iZWRkZWRPYmplY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL3J1bnRpbWVfcm9vdC5oPgogI2ltcG9ydCA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTY2
LDcgKzY2LDcgQEAgZXh0ZXJuICJDIiB7CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5n
KCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsK
LSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5M
b29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25N
YWluVGhyZWFkKHNlbGYpOwogICAgIFdLU2VuZFVzZXJDaGFuZ2VOb3RpZmljYXRpb25zKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBs
dWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBs
dWdpblZpZXcubW0KaW5kZXggYjIzYmQ5YjU4N2YyMmZjMzYyZTZjNGMyNThiOWRiMjYxNGQyMDJk
OC4uZjM1ZTdhMzlhZmZkZDRmZWFhMDZhNzY4OTQ5OTE3YjI3MmU3ZjViMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5t
bQpAQCAtNTUsMTMgKzU1LDEzIEBACiAjaW1wb3J0IDxXZWJDb3JlL1Byb3RlY3Rpb25TcGFjZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRl
cldpZGdldC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+
CiAjaW1wb3J0IDxXZWJLaXQvRE9NUHJpdmF0ZS5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFs
aXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAKICNkZWZpbmUgTG9naW5XaW5kb3dEaWRTd2l0Y2hGcm9tVXNlck5vdGlm
aWNhdGlvbiAgICBAIldlYkxvZ2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24i
CkBAIC03Nyw3ICs3Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogewogICAgIEpTQzo6
aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1By
b2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5S
dW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2Vi
Q29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICBXS1NlbmRVc2VyQ2hhbmdl
Tm90aWZpY2F0aW9ucygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
QmFzZVBsdWdpblBhY2thZ2UubW0KaW5kZXggMTk4NGEwYjUxNWNkNmEwNDIwOTI3YzZhNmJmYjMy
Zjc5ZDZjNTM3MS4uYzQyMTBmNTMzMzlmYzBhZTUwOTU2MTkwODYxMWI4MDI1Y2ZkNzQzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1t
CkBAIC0yOSw3ICsyOSw2IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViQmFzZVBsdWdpblBhY2thZ2Uu
aD4KIAogI2ltcG9ydCA8YWxnb3JpdGhtPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2Vi
S2l0TlNTdHJpbmdFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJOU09iamVjdEV4dHJhcy5o
PgpAQCAtMzgsNiArMzcsNyBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
Lmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQu
aD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CiAjaW1w
b3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTY5LDcgKzY5LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RG
Ojppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNl
bGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNj
YXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5WaWV3Lm1tCmluZGV4IGZkN2M0YmJlYzFjNmM5YTQ4YzNjOWI3YjU4ODM2ZGQ2OTM5Mzlm
MzIuLjU1NjQ0M2FlMjlmMTc3ZjM1ZDExNWQyOTk2Y2VkNjYyMTU5MmMxZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC02
Nyw3ICs2Nyw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4gCiAjaW1wb3J0IDxXZWJDb3Jl
L1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUHJveHlTZXJ2
ZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3Jp
cHRDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+IApAQCAtODIsNiArODEsNyBAQAogI2ltcG9ydCA8
cnVudGltZS9KU0xvY2suaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3
dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIAogI2RlZmluZSBMb2dpbldpbmRvd0RpZFN3aXRjaEZyb21Vc2VyTm90
aWZpY2F0aW9uICAgIEAiV2ViTG9naW5XaW5kb3dEaWRTd2l0Y2hGcm9tVXNlck5vdGlmaWNhdGlv
biIKQEAgLTE5NSw3ICsxOTUsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiB7CiAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vz
c01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3Jl
T2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIFdLU2VuZFVzZXJDaGFuZ2VOb3Rp
ZmljYXRpb25zKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMjA0NWQ4ZWFmNzMyZmQyYzA2NGZkYjFjNjUzYjQw
NDk1OTFjZDAxNy4uZDI4Zjc5MWY0MzQxOTUwMDBlZWU5ZmIzODkwMDNiNDdjOWRiNzgyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbQpAQCAtNjEsNyArNjEsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1L
ZXlib2FyZEV2ZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3BlbGxDaGVja2VyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydHlTZXQuaD4KQEAgLTcxLDYgKzcwLDcgQEAKICNpbXBv
cnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5o
PgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwpAQCAtMTEyLDcgKzExMiw3IEBAIHN0YXRpYyBjb25zdCBpbnQgSW52YWxpZENvcnJlY3Rp
b25QYW5lbFRhZyA9IDA7CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAg
V1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJD
b3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0
aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFk
KHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDg4ZGU2MGUxZjBkZmI0YWI3ZjIyMWI5
YTE2NTFhMmY5MTYxOWY4OTAuLjE0YzhjNzYxMjhiZWQyM2EyYTNhZmM0ZjIwYzQ4ZDM4NGMxMTYy
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xMTUsNyArMTE1LDYgQEAKICNpbXBvcnQgPFdlYkNv
cmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRy
YXMuaD4KQEAgLTEyNyw2ICsxMjYsNyBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQpAQCAtMjAwMiw3
ICsyMDAyLDcgQEAgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQKIHsKICAgICBKU0M6OmluaXRpYWxp
emVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFp
blRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpD
RmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViQXJjaGl2ZS5tbQppbmRleCBhZWViZDk3MmNjNTg3ZTUxZTM2NDgxZDYxMmUyY2Q1YjI2MTNj
Mzk1Li5jZDlmNmI2YTNjNTNiNjk5YTYyOWQ2MDJkNzE3NTkwNjQzZGI4Y2YyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCkBAIC0zNiwxMCArMzYsMTAgQEAKICNpbXBv
cnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRD
aGVjay5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8
d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0
IFdlYlN1YmZyYW1lQXJjaGl2ZXNLZXkgPSBAIldlYlN1YmZyYW1lQXJjaGl2ZXMiOwogewogICAg
IEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJl
YWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6
ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAg
ICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCmluZGV4IGVjMDVkZDJlNjM4OGRhNGNk
YmM3NjYyZDI3MzgwMmVkNjk5YzgyNzYuLjMwYmM0NmE3ZDFmNjI2ZTg5NWVkNDYxM2QxNmNhNmVj
N2JiZWFkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNv
dXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0K
QEAgLTU0LDcgKzU0LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVVSTFJlc3BvbnNlLmg+CkBAIC02NSw2ICs2NCw3
IEBACiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgog
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEzNCw3ICsxMzQsNyBAQCBzdGF0aWMgaW5saW5l
IHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENs
YXNzIG9iakNDbAogICAgIGlmIChzZWxmID09IFtXZWJEYXRhU291cmNlIGNsYXNzXSkgewogICAg
ICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICAgICAgV1RGOjppbml0aWFsaXpl
TWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICAgICAgV2ViQ29yZTo6UnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgICAgIFJ1bkxvb3A6OmluaXRpYWxpemVN
YWluUnVuTG9vcCgpOwogICAgICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNl
bGYpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
SFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmlu
ZGV4IGI2NTY2YzlmZDE4ZTc1YzBiYmI1ODBkMjU1NjZjYWE0ZmNmOGYyNTYuLjFjZWRiMTU2NDcz
NWU0NTllNzU4ZjExOTE0NzBmZjI3MGRhOGVhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbQpAQCAtMTEwLDcgKzExMCw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Jl
bmRlclZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaW1wbGVGb250RGF0YS5oPgpA
QCAtMTMwLDYgKzEyOSw3IEBACiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcu
aD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVF
eHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KQEAgLTU2Myw3
ICs1NjMsNyBAQCBzdGF0aWMgTlNDZWxsU3RhdGVWYWx1ZSBraXQoVHJpU3RhdGUgc3RhdGUpCiB7
CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFp
blRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0
aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIAogICAg
IGlmICghb2xkU2V0Q3Vyc29yRm9yTW91c2VMb2NhdGlvbklNUCkgewpAQCAtMjI2MCw3ICsyMjYw
LDcgQEAgc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAq
ZXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblR5cGVzOltbc2VsZiBj
bGFzc10gX2luc2VydGFibGVQYXN0ZWJvYXJkVHlwZXNdXTsKICAgICBKU0M6OmluaXRpYWxpemVU
aHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRo
cmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwor
ICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmlu
YWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDFmMzMzMGZlNTI4MWU1N2Q4OGVlMjM2Yjg4NWI4OTc1
YmIyY2VlNTkuLmEwZWFlNzE3MDM2ODRlYTI5NDUxNDE1ODIyYjMxODhjNTVjMGQ4YzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNDMsMTAgKzQz
LDEwIEBACiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
ZXNvdXJjZUhhbmRsZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxy
dW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMzA5LDcgKzMwOSw3IEBAIHB1YmxpYzoKIHsK
ICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWlu
VGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRp
YWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OwogCiAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0
aE9iamVjdHNBbmRLZXlzOgogICAgICAgICBAIlRpbWVzIiwgICAgICAgICAgICAgICAgICAgICAg
IFdlYktpdFN0YW5kYXJkRm9udFByZWZlcmVuY2VLZXksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJSZXNvdXJjZS5tbQppbmRleCAzOTY0ZjZmNzljYzIzZWUxMmVhMGIyZTA3OTM5MDY5M2Zk
OGQxOTBiLi44YzY0MDMwNzg1M2MzMjk0Y2I4YTU0NjNlZTQ1NDcyZmI3MmE4ZTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KQEAgLTM4LDEzICszOCwxMyBAQAog
I2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXJjaGl2ZVJlc291
cmNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEVuY29kaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVVUkxSZXNwb25zZS5oPgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdlYlJlc291
cmNlUmVzcG9uc2VLZXkgPSAgICAgICAgICBAIldlYlJlc291cmNlUmVzcG9uc2UiCiB7CiAgICAg
SlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVh
ZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXpl
TWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAg
ICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1tCmluZGV4IDliMWJkOGZlYjU1M2Zk
OGQxMTBhZGUyY2Y2MzY1ZGE0MjQxMDU3NmMuLjJhMGI4MjVmMWY5NzIyOGRiY2I3YTY5ZmRjZDE2
NzE4YTAxNGM0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4
dEl0ZXJhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dEl0ZXJh
dG9yLm1tCkBAIC0yOSwxMSArMjksMTEgQEAKICNpbXBvcnQgIkRPTVJhbmdlSW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KLSNp
bXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SXRlcmF0b3Iu
aD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHJ1bnRp
bWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNp
bXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTUwLDcgKzUwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXpl
TWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpp
bml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNmQ2M2M4YzNkNjEzNjc4YjEyMWE3
NjFkYWUyNDM5ZWNkMWQzYTUwNy4uNzIwNDQ3OTZmMzA2ODI0YjczNjM3NzQxNzFlZjIzMmQ2NjI5
ZGJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTYyLDcgKzE2Miw2
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1Jlc291cmNlTG9hZFNjaGVkdWxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgpAQCAtMTk2LDYg
KzE5NSw3IEBACiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1JlZkNv
dW50ZWRMZWFrQ291bnRlci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgorI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKQEAgLTMxMzYsNyArMzEzNiw3IEBAIHN0YXRpYyBWZWN0b3I8U3Ry
aW5nPiB0b1N0cmluZ1ZlY3RvcihOU0FycmF5KiBwYXR0ZXJucykKICAgICBJbml0V2ViQ29yZVN5
c3RlbUludGVyZmFjZSgpOwogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdU
Rjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CiAKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9hcHBsaWNhdGlvbldp
bGxUZXJtaW5hdGUpIG5hbWU6TlNBcHBsaWNhdGlvbldpbGxUZXJtaW5hdGVOb3RpZmljYXRpb24g
b2JqZWN0Ok5TQXBwXTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9jYWNoZU1vZGVsQ2hhbmdlZE5v
dGlmaWNhdGlvbjopIG5hbWU6V2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFs
Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
d0RhdGEubW0KaW5kZXggNGQxMDhmMGFjNmQ1MTIzMGJiZTlmMTU0ZWRmMTM5MDI4NjYwMmRiZS4u
MGUwNjlhNDhmOGI0MTdhNTdlNWFmNjcxN2I2Yjg4NTFiNWU0M2JkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCkBAIC0zNCwxMCArMzQsMTAgQEAKICNpbXBvcnQg
PFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1hdXRvLmg+CiAj
aW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWlu
VGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiBCT09MIGFwcGxpY2F0aW9uSXNU
ZXJtaW5hdGluZyA9IE5POwogaW50IHBsdWdpbkRhdGFiYXNlQ2xpZW50Q291bnQgPSAwOwpAQCAt
NjcsNyArNjcsNyBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5ZXJGbHVzaENvbnRyb2xsZXIo
V2ViVmlldyogd2ViVmlldykKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAg
ICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJl
YWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBiZTA5Mjdk
YmUwYTkyMDQ1ZTk4MDU5NDU5MzU0N2UwMmQwZjBjYjhkLi44MTMzMjE1ZjVjOGI5ODhhY2RmMGEy
YTM4YTE5YjhjMGU0MDI3OGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00
MCw3ICs0MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4
IDkxN2RkYzVjMTU3ZDQ2ZmE5OTBjNmE5MGJjNDY4ZmM3MmRiMzViZWQuLjk1YmZhY2FlODQ5M2Uz
ZDc3YTcxMDgzNDdlOTg0NGMyYjhlNzNiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRl
ICJXZWJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Jbml0aWFsaXplTG9nZ2lu
Zy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKICNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMDBmNDA2OGNm
ODAxMjgzYTJiODZmMDVkZmJiNWE1NDc5NWIzMWFkYS4uZGY1ZWJmNzAwNzA3YjUzN2FmNmRkMTEz
ZmYxOWUzMWRlYmVjOTU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291
cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXVEYgewogICAgIGNsYXNzIFJ1bkxvb3A7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmgKaW5kZXggNDE0MDJiNTRhY2ZkMGM2NTRmODU0Y2FiMDYyYzM5YTE0N2JjYjI4OS4uOGY4
YTdmNTE0ZjQ3MTA0ZmU0NWRmMmI0ZTExZWU0ZGY0ZWUzODg1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTMy
LDcgKzMyLDcgQEAKICNpbmNsdWRlICJTY2hlZHVsYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgIlNo
YXJlYWJsZVJlc291cmNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUNsaWVu
dC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRkNhY2hlZFVSTFJlc3BvbnNlKiBDRkNhY2hl
ZFVSTFJlc3BvbnNlUmVmOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaAppbmRleCBkN2EwMzc1Yzc4NTE1YTI4ODQyMWFmYjZl
ZWE0MmU1NTA0ZmQ3YjY1Li44ZmJlZWZjMDYxMDA5MzcxZWYxNjU4MzJkZjEyNWEzODQ3YWRkYmQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hl
TW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2Fj
aGVNb25pdG9yLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IF9DRkNhY2hlZFVSTFJlc3BvbnNlKiBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGluZVN0
b3JhZ2VQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9P
ZmZsaW5lU3RvcmFnZVByb2Nlc3MuY3BwCmluZGV4IDU1ZGY2YzVmZTZmNGYzNjdkN2E3NDdhNmUw
OTYzODRlZjIzODQwYmEuLmM4ODE4NWMxNDQ2YmM2ZTBlMGM4ZDc4MzEyMWY4MWIzZDE0ZTFhYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9PZmZsaW5l
U3RvcmFnZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJv
Y2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MuY3BwCkBAIC0yNyw5ICsyNyw3IEBACiAjaW5jbHVk
ZSAiT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmgiCiAKICNpbmNsdWRlICJPZmZsaW5lU3RvcmFnZVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L0Nvbm5lY3Rpb24uY3BwCmluZGV4IDc2NzkyNjA5YzA1MWQyOTM1Y2ZlY2ZmNzJjZDEyYTU3Nzky
N2E5OWQuLjU1YTBiNDdiZGEzYjI3YzFhM2Y4YWRjNWE5OTI3MGJmZDYwNjljM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtMjYsMTQg
KzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgog
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0Jp
bmFyeVNlbWFwaG9yZS5oPgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNl
IENvcmVJUEMgewogCiBjbGFzcyBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPENvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU+IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggYzU4ZDRh
MTI2OTM5YmFjZWZmYzY3YjRiNjAwMjk0YjA0N2IxYWNhOS4uYTkwMzZjNTgxMWU3YzY5ZTlmMjI4
NTIzMDE0NDM4OTY0N2ZmMjA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Db25uZWN0aW9uLmgKQEAgLTU1LDcgKzU1LDcgQEAgUVRfRU5EX05BTUVTUEFDRQogI2luY2x1
ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIKICNlbmRpZgogCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7CituYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFJ1bkxvb3A7CiB9CiAKQEAgLTEzNSw4ICsx
MzUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaWRlbnRpZmllcklzTnVsbChJZGVudGlm
aWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuICFpZGVudGlmaWVyOyB9CiAjZW5kaWYKIAotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oSWRlbnRp
ZmllciwgQ2xpZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlQ2xpZW50Q29ubmVjdGlvbihJZGVudGlm
aWVyLCBDbGllbnQqLCBXZWJDb3JlOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKElkZW50aWZp
ZXIsIENsaWVudCosIFdURjo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlQ2xpZW50Q29ubmVjdGlvbihJZGVudGlmaWVyLCBD
bGllbnQqLCBXVEY6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwogICAgIH5Db25uZWN0aW9uKCk7
CiAKICAgICBDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CkBAIC0x
ODUsNyArMTg1LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVjcmVtZW50RGlzcGF0Y2hNZXNzYWdl
TWFya2VkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50KCkgeyAtLW1faW5EaXNw
YXRjaE1lc3NhZ2VNYXJrZWREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQ7IH0K
IAogcHJpdmF0ZToKLSAgICBDb25uZWN0aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENs
aWVudCosIFdlYkNvcmU6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOworICAgIENvbm5lY3Rpb24o
SWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50KiwgV1RGOjpSdW5Mb29wKiBjbGllbnRS
dW5Mb29wKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShJZGVudGlmaWVyKTsKICAgICB2
b2lkIHBsYXRmb3JtSW52YWxpZGF0ZSgpOwogICAgIApAQCAtMjMxLDcgKzIzMSw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1faXNDb25uZWN0ZWQ7CiAgICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV9j
b25uZWN0aW9uUXVldWU7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOwor
ICAgIFdURjo6UnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOwogCiAgICAgSGFzaE1hcDxTdHJpbmdS
ZWZlcmVuY2UsIHN0ZDo6cGFpcjxSZWZQdHI8V29ya1F1ZXVlPiwgUmVmUHRyPFdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlcj4+PiBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnM7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3Bw
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAK
aW5kZXggYmE1NjZmNjQwYTA1NzU3M2M1MzRhN2Q3MzYwOGNhNzJlZDEwZjY4NS4uNWYzYjVkOWQw
MzQwNzJkZTk5MzBiYzdmYWZlN2QxYTNmYzRkYTA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKQEAgLTI5LDE2ICsy
OSwxNCBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJNYWNoUG9ydC5o
IgogI2luY2x1ZGUgIk1hY2hVdGlsaXRpZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3Au
aD4KICNpbmNsdWRlIDxtYWNoL21hY2hfZXJyb3IuaD4KICNpbmNsdWRlIDxtYWNoL3ZtX21hcC5o
PgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBIQVZFKFhQQykKICNpbmNsdWRlIDx4
cGMveHBjLmg+CiAjZW5kaWYKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFj
ZSBDb3JlSVBDIHsKIAogc3RhdGljIGNvbnN0IHNpemVfdCBpbmxpbmVNZXNzYWdlTWF4U2l6ZSA9
IDQwOTY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vz
c01haW4ubW0KaW5kZXggNzMwNDVkMzkxY2NiODQ3OWZiMWIyZDU2ZGE2NWQ2NjU1NWY1MTg0Zi4u
NTQ3YmFhMGZjMzM0ZWQzNmEzY2NlODliZjJhOWZhMzRhMmE2OWUzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1Bs
dWdpblByb2Nlc3NNYWluLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50
cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQpAQCAtMzIsNyAr
MzIsNyBAQAogI2ltcG9ydCAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbXBvcnQgIlBsdWdp
blByb2Nlc3MuaCIKICNpbXBvcnQgIldLQmFzZS5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29w
Lmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgVVNFKEFQUEtJVCkKIEBpbnRlcmZh
Y2UgTlNBcHBsaWNhdGlvbiAoV2ViTlNBcHBsaWNhdGlvbkRldGFpbHMpCkBAIC00MCw4ICs0MCw2
IEBACiBAZW5kCiAjZW5kaWYKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBQbHVnaW5Qcm9jZXNzTWFpbkRlbGVnYXRlIDogcHVibGljIENo
aWxkUHJvY2Vzc01haW5EZWxlZ2F0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9p
bnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1Nl
cnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggODdmY2M0ZmQzZmY0ZTA1MDJl
MjkzZDgwZTg1MjM5NDNhNDkxMjA5Yi4uMTI0MTgyZGVkOThiYTRiOWI1NDVlMDQwOGEzZTg5OGMy
MzZhMTQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5T
ZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiUGx1Z2luUHJv
Y2Vzcy5oIgogI2ltcG9ydCAiV0tCYXNlLmgiCiAjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2lu
dC5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKIGV4dGVybiAiQyIgV0tfRVhQT1JUIHZvaWQgUGx1Z2luU2Vydmlj
ZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGlu
aXRpYWxpemVyTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAppbmRleCAwNTBjNTdjYTUyNmE1ZTVmMzIyOTZiNTU2
YmRiZDNmYmVhZjk0NGJhLi5lMmExNWI3ZTVhZGRjYzUxYzYwYThiMjA1NDg5OGFlMWNiOWIyNzhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xs
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJv
bGxlclByb3h5LmgKQEAgLTM0LDkgKzM0LDkgQEAKICNpbmNsdWRlICJQbHVnaW5Db250cm9sbGVy
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIENv
cmVJUEMgewogICAgIGNsYXNzIERhdGFSZWZlcmVuY2U7CkBAIC0xODQsMTQgKzE4NCwxNCBAQCBw
cml2YXRlOgogICAgIFdlYkNvcmU6OkludFJlY3QgbV9kaXJ0eVJlY3Q7CiAKICAgICAvLyBUaGUg
cGFpbnQgdGltZXIsIHVzZWQgZm9yIGNvYWxlc2NpbmcgcGFpbnRpbmcuCi0gICAgV2ViQ29yZTo6
UnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BhaW50VGltZXI7Ci0gICAg
CisgICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BhaW50VGltZXI7
CisKICAgICAvLyBBIGNvdW50ZXIgdXNlZCB0byBwcmV2ZW50IHRoZSBwbHVnLWluIGZyb20gYmVp
bmcgZGVzdHJveWVkLgogICAgIHVuc2lnbmVkIG1fcGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0Q291
bnQ7CiAKICAgICAvLyBBIHRpbWVyIHRoYXQgd2UgdXNlIHRvIHByZXZlbnQgZGVzdHJ1Y3Rpb24g
b2YgdGhlIHBsdWctaW4gd2hpbGUgcGx1Zy1pbgogICAgIC8vIGNvZGUgaXMgb24gdGhlIHN0YWNr
LgotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gbV9w
bHVnaW5EZXN0cm95VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclBy
b3h5PiBtX3BsdWdpbkRlc3Ryb3lUaW1lcjsKIAogICAgIC8vIFdoZXRoZXIgd2UncmUgd2FpdGlu
ZyBmb3IgdGhlIHBsdWctaW4gcHJveHkgaW4gdGhlIHdlYiBwcm9jZXNzIHRvIGRyYXcgdGhlIGNv
bnRlbnRzIG9mIGl0cwogICAgIC8vIGJhY2tpbmcgc3RvcmUgaW50byB0aGUgd2ViIHByb2Nlc3Mg
YmFja2luZyBzdG9yZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblBy
b2Nlc3MuY3BwCmluZGV4IDFhMWFlZDZlY2M0MDZhODdmYWYxMzgzM2U3YTFmZGNmMWQxODkwYTQu
LjNiNjAxNjE0Zjg0MjJmYzI0YTc4ODhjYTg4MmQ0Yjk0NzJlMzg1NzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcApAQCAtMzgsNyArMzgsNyBA
QAogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDxjcnRfZXh0ZXJucy5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAppbmRleCAwYTg3YjJkOWZh
YTgwZjdlZTYxNzY0NzBmNmI1NTQ3OTQyMGM4ZDhlLi43ZDYwN2U0ODY2NWQ1OTE2ZjFmYWIxZDQ4
YWRiYTc3YWUzMjFmZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L1BsdWdpblByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgYm9vbCBt
X3N1cHBvcnRzQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb247CiAKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5Qcm9jZXNzPiBtX21pbmltdW1MaWZldGltZVRpbWVyOwor
ICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpblByb2Nlc3M+IG1fbWluaW11bUxpZmV0aW1lVGltZXI7
CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFBMQVRGT1JNKE1BQykKICAg
ICAvLyBUaGUgTWFjaCBwb3J0IHVzZWQgZm9yIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcAppbmRleCAwNDJlNTNiMjEyMGMyNjg4YTkxNTk4ZDEzMWNlMDk3ZTU5YjNkYzJmLi4yMGM4
ZjA4Yjk1MGQ0MTUwMDQ2MDQ5OTdhMDcwOWI2ZTBmMTg1YzIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzgs
OCArMzgsOCBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJQbHVnaW5Qcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1
ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0
L1BsdWdpblByb2Nlc3NNYWluUXQuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9x
dC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcAppbmRleCA4ZGU2NTIxNmI1ZTYxMDQ2YTI1ZDRjYmVk
M2ZhM2NiNjI2YWExMGM5Li5kOTQ1NGQ5YTZiOTMxN2ZmZWJmMzY5ZWZkYmUwMWJjZWViZWZiZWRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nl
c3NNYWluUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2lu
UHJvY2Vzc01haW5RdC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDxRR3VpQXBwbGlj
YXRpb24+CiAjaW5jbHVkZSA8UVN0cmluZ0xpc3Q+CiAjaW5jbHVkZSA8UXRHbG9iYWw+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzTWFpblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHAKaW5kZXggNzNmYWYw
YTMzNTcyODNhNjFhN2ZiOTNkZjgzNjE2YTJmZWExYTRmMy4uOGY5OTM3Nzk4YWVjZTAzZGQ3ZjY1
M2JlZTg3MzNjNTkzZDAzZmE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHAKQEAgLTM0LDcgKzM0
LDcgQEAKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbi5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3MuaCIKICNpbmNsdWRlICJXZWJLaXQySW5pdGlhbGl6ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
UnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaWYgUExBVEZPUk0oR1RLKQog
I2luY2x1ZGUgPGdkay9nZGt4Lmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAppbmRleCBlNzJhMzczOWU1ZDA0OTYyMjRmZTA0NDQzYWM2
MDhjN2Q4NjVlNjc1Li40N2E0Yjc2MjE4YWY5MmJhZjMxYWQyMjI0MGY1NzA1ZTljMzMyNzY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApAQCAtMzIsOCArMzIsNiBAQAog
I2luY2x1ZGUgPHVuaXN0ZC5oPgogI2VuZGlmCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogQ2hpbGRQcm9jZXNzOjpDaGlsZFByb2Nlc3MoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCmluZGV4IDg3OGQ1YmQzNmMzMWY2NWJjMzVjNTZm
ZTViYWNkMWFlZWEyMTA2ODguLjU0NDIzMGZiOGY3M2FkMTRmOGQwNjZhY2M3ODQ3MzgxNmM4MGIy
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTI5LDkgKzI5LDkgQEAK
ICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xMDMsNyArMTAzLDcgQEAg
cHJpdmF0ZToKICAgICAvLyBhZnRlciBhIGdpdmVuIHBlcmlvZCBvZiB0aW1lLgogICAgIHVuc2ln
bmVkIG1fdGVybWluYXRpb25Db3VudGVyOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8
Q2hpbGRQcm9jZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8Q2hp
bGRQcm9jZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CiAKICAgICBSZWZQdHI8Q29yZUlQQzo6Q29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCBt
X21lc3NhZ2VSZWNlaXZlck1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
aGlsZFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNz
UHJveHkuY3BwCmluZGV4IDA1NDYwZmEyZGVkZGFmNTkzZWQ3M2FkNzgwZDNmMmZmYmYyZjQzNDYu
LmFlZjFhNDc1YTlhMWIxMjA2OTU2ZGMxY2E5MGFmOTk3Y2U0Y2FkODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjYsOSArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCiAKLSNpbmNs
dWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9j
ZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQu
aAppbmRleCBhM2QyZjk2MGY4MTYxNmVhNzYwZDc3NzQ3MGMxZDc5MTM4NWZiODJhLi5mMzI1Y2Nk
MDlmMTgzNzhmZjEwMTYzOGVjMzBkN2UxOGQ4ZmQ4YjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFBy
b2Nlc3NFbnRyeVBvaW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oCkBAIC0y
OSw5ICsyOSw5IEBACiAjaW1wb3J0ICJDaGlsZFByb2Nlc3MuaCIKICNpbXBvcnQgIkNvbW1hbmRM
aW5lLmgiCiAjaW1wb3J0ICJXZWJLaXQySW5pdGlhbGl6ZS5oIgotI2ltcG9ydCA8V2ViQ29yZS9S
dW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHN5
c2V4aXRzLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IApAQCAtOTUsNyArOTUsNyBAQCBpbnQgQ2hpbGRQcm9jZXNzTWFpbihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpCiAgICAgICAgIENoaWxkUHJvY2Vzc1R5cGU6OnNoYXJlZCgpLmluaXRpYWxpemUocGFy
YW1ldGVycyk7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6cnVuKCk7CisgICAgUnVu
TG9vcDo6cnVuKCk7CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICAgZGVsZWdhdGUu
ZG9Qb3N0UnVuV29yaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktp
dDJJbml0aWFsaXplLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6
ZS5jcHAKaW5kZXggODRmNzM2ZjJmYTZiNTk0YjI1ZmI2YjliNWMzN2RlYWQ3NTU2MTNiZC4uYmMy
MDIxZmE0OGQzMDMwNmI4YzY5YjVkN2VjMWY1ZTUxNzI3YTM5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Jbml0aWFsaXplTG9nZ2luZy5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJXZWJTeXN0ZW1JbnRl
cmZhY2UuaCIKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBJbml0aWFsaXplV2ViS2l0MigpCiAKICAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7Cisg
ICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAKICNpZiAhTE9HX0RJU0FCTEVE
CiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtl
clByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRX
b3JrZXJQcm9jZXNzLmNwcAppbmRleCBkNDJhYjRlN2UxYTYyYmUwYWZhMzhjZWMwYzEwZjE0NDU4
NGY2ZjVkLi44NjQ2NGYwNGQ2OGUzNDZjNWE2MmYwYjNkOWMzYTRkZTM2ZTc2YjhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29y
a2VyUHJvY2Vzcy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJTaGFyZWRXb3JrZXJQ
cm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
UnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBQTEFURk9STShNQUMp
CiAjaW5jbHVkZSA8Y3J0X2V4dGVybnMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmgKaW5kZXggODJjNTljMDYx
NTBiYTljYjgyZDJlYjBlNmM1ODJiODU0ZDg2OTg0OS4uMDUwZjVkZTdjYTM0YWQ1ZDUyZDA2YTI3
YTE4MDQ3MTU0MjA4NGJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2Vy
UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
V29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJp
dmF0ZToKICAgICAvLyBPdXIgd2ViIHByb2Nlc3MgY29ubmVjdGlvbnMuCiAgICAgVmVjdG9yPFJl
ZlB0cjxXZWJQcm9jZXNzQ29ubmVjdGlvbj4+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zOwogCi0g
ICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8U2hhcmVkV29ya2VyUHJvY2Vzcz4gbV9taW5pbXVt
TGlmZXRpbWVUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxTaGFyZWRXb3JrZXJQcm9jZXNzPiBt
X21pbmltdW1MaWZldGltZVRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2lu
ZG93LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2lu
ZG93LmgKaW5kZXggY2JlMzRhMWE5MGZiOWJhOWE1YmY3OTM2NWJiMTdkMjM0YTlkOGE0My4uYmI3
ZTIwODUyYWRmOTRhZDA2MGM1N2E5Y2Y4YzkxNDYwNmM1YzU4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaApAQCAt
MjcsMTEgKzI3LDExIEBACiAjZGVmaW5lIEZpbmRJbmRpY2F0b3JXaW5kb3dfaAogCiAjaW1wb3J0
ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgog
I2ltcG9ydCA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW1wb3J0IDx3dGYvUGFzc093blB0ci5oPgog
I2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KIAogQGNsYXNzIFdLRmluZEluZGljYXRvcldpbmRvd0FuaW1hdGlv
bjsKIEBjbGFzcyBXS1ZpZXc7CkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgV0tXaW5k
b3dCb3VuY2VBbmltYXRpb25Db250ZXh0UmVmIG1fYm91bmNlQW5pbWF0aW9uQ29udGV4dDsKICAg
ICBSZXRhaW5QdHI8V0tGaW5kSW5kaWNhdG9yV2luZG93QW5pbWF0aW9uPiBtX2JvdW5jZUFuaW1h
dGlvbjsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPEZpbmRJbmRpY2F0b3JXaW5kb3c+
IG1fc3RhcnRGYWRlT3V0VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RmluZEluZGljYXRvcldp
bmRvdz4gbV9zdGFydEZhZGVPdXRUaW1lcjsKICAgICBSZXRhaW5QdHI8V0tGaW5kSW5kaWNhdG9y
V2luZG93QW5pbWF0aW9uPiBtX2ZhZGVPdXRBbmltYXRpb247CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggYzc2ZTY1OTM1YWY1YWZlZDdjNmI5
NGE4ZjIxYTA3ODY5Mjk2NzdjMC4uMjhkOTU4N2VhMzg5NjYzZWRmYmM5ZDRmYWM2NDEwMmJjNmNm
ZTU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAt
NzgsNyArNzgsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
ZWdpb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9T
aGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1N0cmluZ0V4dHJhcy5oPgpAQCAtODksNiAr
ODgsNyBAQAogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIC8qIEFQ
SSBpbnRlcm5hbHMuICovCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRl
cm5hbC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5LmgKaW5kZXggNDY2ZGVhNDU0Y2E5YzVlZDg2YTU0MWI3NDhhNTExMjhmYjZkODEyYS4uMmI0
ZWU0YWFiNmQ4ODhiOWExYzY0N2VhNTJkMjAyZDJlZTU2NmE0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oCkBAIC0zNCwxMCArMzQsMTAg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzU3VyZmFjZVRva2VuLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVh
UHJveHlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUlt
cGwuaAppbmRleCBlNWQxNjYzOTdiMWRhZWU4OGM5NmQwOWJhZDE4NmQ5YmU3MjcyOTRhLi4xY2E4
MGQ4YjdkMTdmNjZhOWI0ZWU3YWZhNzNlZGJhOThhZmIxNzA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaApAQCAtMjksOSArMjksOSBAQAog
I2luY2x1ZGUgIkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIK
ICNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
UmVnaW9uOwpAQCAtMTE4LDcgKzExOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQmFja2lu
Z1N0b3JlRGlzY2FyZGFibGU7CiAgICAgT3duUHRyPEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3Rv
cmU7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5SW1wbD4g
bV9kaXNjYXJkQmFja2luZ1N0b3JlVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0Fy
ZWFQcm94eUltcGw+IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKaW5kZXggM2EzNjMzNDdmOGVjYWJj
MzUyNzVmZWMwYjY1MTNiMGEzNGMyMjg4MS4uNzgxMmU2NjU1MmM2NzJkYzZjNDU3NDE5MTNmY2Y4
OWQ0YWJjOThiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcApAQCAtMjYsNyArMjYsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29y
a2luZ0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJv
Y2Vzc0xhdW5jaGVyR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9n
dGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcAppbmRleCBmNjVjN2VkMGIyYjgzOTBjYThhNWM2NGI5
ZTVhOWVjOTQ2MjFiNGQwLi5jYjY1ZGI0Yzk0ZGI3MjQxM2NmYmUwNTYyNGNmNzliYzA4ZjAyOTY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nl
c3NMYXVuY2hlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCkBAIC0zMyw5ICszMyw5IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGxvY2FsZS5oPgor
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dP
d25QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9t
YWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggN2M5NTE2NjhjZGNlZDlhM2E2ZWQw
NDczMGE0ZTRmZWE4NDhjNzEzMC4uZGFmYWVjNDUwNjI5MDUyNzlkOGNjMzFiMjIyYWEzYzBjNDU2
YzNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Q
cm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTI5LDcgKzI5LDYgQEAKICNpbXBvcnQg
IkR5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oIgogI2ltcG9ydCAiRW52aXJvbm1l
bnRWYXJpYWJsZXMuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9y
dCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxjcnRfZXh0ZXJucy5oPgogI2ltcG9ydCA8
bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPG1hY2gvbWFjaGluZS5oPgpAQCAtNDAsNiArMzksNyBA
QAogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8
d3RmL1RocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2ltcG9ydCA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00OCw4ICs0OCw2IEBACiAjaW1wb3J0IDx4cGMveHBj
Lmg+CiAjZW5kaWYKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIC8vIEZJWE1FOiBXZSBz
aG91bGQgYmUgZG9pbmcgdGhpcyBhbm90aGVyIHdheS4KIGV4dGVybiAiQyIga2Vybl9yZXR1cm5f
dCBib290c3RyYXBfcmVnaXN0ZXIyKG1hY2hfcG9ydF90LCBuYW1lX3QsIG1hY2hfcG9ydF90LCB1
aW50NjRfdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCmluZGV4IDNhZmM2NmQ0NjBkNDZlOWVlODNl
Y2ZkMWQ1MzlmMzM3YmFkYzFkMjcuLmYwMTM2YTE5MzQ1NjliMTZlZDI3MDY4NjYyOWNmNTA3ZDJj
MWJjNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Q
cm9jZXNzTGF1bmNoZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5j
aGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcApAQCAtMzYsOSArMzYsOSBAQAogI2luY2x1ZGUg
PFFQcm9jZXNzPgogI2luY2x1ZGUgPFFTdHJpbmc+CiAjaW5jbHVkZSA8UXRDb3JlL3FnbG9iYWwu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZjE1YmRiNDQyZjBkMDg1MDUzODE1NDYyODMyMWU3
ZGI0Yjc1NTM1Ni4uY2RlYTNjNjE1NTc0OThjNTc3YmQ4N2U4Y2I3ODhhZDVkOTY3MDBkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CiAKICNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKQogI2luY2x1ZGUgIlNl
Y0l0ZW1TaGltUHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCmluZGV4IGNhOGFjODc5NTc4MGVhMTcxOGNh
ZmNkNWFjNTc0MWYzZDFmNjFlMjEuLjk4ZDlmOTIwY2Y4ODUyZDRlZjNiYWI3Y2UzNWNjZGZlMDQ0
MWZlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNyArMzcsNyBAQAogI2luY2x1ZGUgIldlYlBs
dWdpblNpdGVEYXRhTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogI2lu
Y2x1ZGUgIk1hY2hQb3J0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9u
c2l2ZW5lc3NUaW1lci5jcHAKaW5kZXggNzY2YWUwZTIwYzI3ZWRiNDkxN2U3NmZiMTU2MjFkNjcx
NGY1YmFiYi4uOTczOWZhM2ExMWY1NDA4YTYxMDBiMDYzOGViYjEwM2E1OTg0NmZiYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcApAQCAt
MjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc3BvbnNpdmVu
ZXNzVGltZXIuaCIKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBzdGF0aWMgY29uc3QgZG91YmxlIHJlc3BvbnNpdmVuZXNzVGltZW91dCA9IDM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaAppbmRleCA4
ZGIyODcyZmRlYWZlNzk3YzlhZjRlN2VjNzEyOTE2ZTI2YjdlZWVjLi5mNzVjMGE5OThmZjQ2N2Rh
YzkzYmE3M2FiYzBlMmE1NmI2YzgxNTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9SZXNwb25zaXZlbmVzc1RpbWVyLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUmVzcG9u
c2l2ZW5lc3NUaW1lcl9oCiAjZGVmaW5lIFJlc3BvbnNpdmVuZXNzVGltZXJfaAogCi0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKICAgICBSZXNwb25zaXZl
bmVzc1RpbWVyOjpDbGllbnQqIG1fY2xpZW50OwogICAgIGJvb2wgbV9pc1Jlc3BvbnNpdmU7CiAK
LSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxSZXNwb25zaXZlbmVzc1RpbWVyPiBtX3RpbWVy
OworICAgIFJ1bkxvb3A6OlRpbWVyPFJlc3BvbnNpdmVuZXNzVGltZXI+IG1fdGltZXI7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDYzNjA4NWIxN2M2M2FiMDNmMDdmNzlhOWVjMmFkNzQ0YWJkNTY1NmUuLjg5MGE5
YTI0ZTUzN2MwOWNjNjQ0MGZlM2M3OWQyMjRiODczYzg4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29y
a2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nl
c3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1h
Y2hQb3J0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExp
bmtQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlk
ZXIuaAppbmRleCBlMGU1MzEwMjViMWRhNzAyM2E1OGQyMzMxOWRlYWMxYjg0MmRjNmE5Li5jMGQ0
ZWM5NjM3MTAyNGZlZmNlMThmMjQ5Mzc2NmIwYzg2YmI4Zjg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmgKQEAgLTI4LDkgKzI4LDkgQEAKIAog
I2luY2x1ZGUgIlZpc2l0ZWRMaW5rVGFibGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNo
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgVmlz
aXRlZExpbmtUYWJsZSBtX3RhYmxlOwogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpMaW5rSGFzaCwg
V2ViQ29yZTo6TGlua0hhc2hIYXNoPiBtX3BlbmRpbmdWaXNpdGVkTGlua3M7Ci0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6VGltZXI8VmlzaXRlZExpbmtQcm92aWRlcj4gbV9wZW5kaW5nVmlzaXRlZExp
bmtzVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8VmlzaXRlZExpbmtQcm92aWRlcj4gbV9wZW5k
aW5nVmlzaXRlZExpbmtzVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAzMzVmMTUxNWVhYTk1YjE1MTNk
ZmUzZmM4ZWQ2ZTRiYzI2ZmZlM2I0Li40OTk4NjUwYTkzOTIwNmIyNDY0MjQ2ZGUwZmQzMDY2Yjdm
N2U2MzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC01OSwx
MSArNTksMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9MaW5rSGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXpl
VGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQogI2luY2x1ZGUg
IldlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01h
aW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVBy
b2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCmluZGV4IGZlNzg0MGQ5ZTBhODE5NGI2MTVi
OWZjMjFiMTc1MzBlZDAyM2QxY2YuLjM0MzBhMzgzNzc5NWQ2MGJmZDkxYWUxYmQzNzg2Yjk0N2I0
NDE1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9t
YWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQ
cm9jZXNzTWFpbi5tbQpAQCAtMzEsMTIgKzMxLDEyIEBACiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRp
ZXMuaCIKICNpbXBvcnQgIldLQmFzZS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgotI2ltcG9y
dCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxtYWNoL21hY2hfZXJyb3IuaD4KICNpbXBv
cnQgPHNlcnZlcnMvYm9vdHN0cmFwLmg+CiAjaW1wb3J0IDxzcGF3bi5oPgogI2ltcG9ydCA8c3Rk
aW8uaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApAQCAtNDgsOCArNDgsNiBAQAogCiBleHRlcm4gIkMiIGtlcm5fcmV0dXJuX3QgYm9v
dHN0cmFwX3JlZ2lzdGVyMihtYWNoX3BvcnRfdCwgbmFtZV90LCBtYWNoX3BvcnRfdCwgdWludDY0
X3QpOwogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIFdlYkNvbnRlbnRQcm9jZXNzTWFpbkRlbGVnYXRlIDogcHVibGljIENoaWxkUHJvY2Vz
c01haW5EZWxlZ2F0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNv
bnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQppbmRleCA5OTU5MDdlYmZlMjg1MGMzYzNhYzFmZjVk
NjU3NTQ0YmRmYWY4NDExLi5jODViODRiNWExMTNhMDM4ZTU5NDIyYjFkY2ZkNDZjNzUzMzQxYzc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQ
Q1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2Vydmlj
ZUVudHJ5UG9pbnQubW0KQEAgLTMxLDkgKzMxLDggQEAKICNpbXBvcnQgIldLQmFzZS5oIgogI2lt
cG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKLSNp
bXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBleHRlcm4g
IkMiIFdLX0VYUE9SVCB2b2lkIFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5l
Y3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCA1NWY2ZTMxN2QzYWQ0OTIxNjBmYjMwOGFlMWE5Mzhl
NDkzZWJjMThkLi4wNjgwMWM5MDQxYTllNWU5NjE2MDM4NmNhYjYyZjViMzVlYzg5ZmY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUxvYWRQcmlvcml0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQogCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBpbnRlcm5hbGx5RmFpbGVkTG9hZFRpbWVyRmlyZWQoKTsKICAgICAKICAgICBIYXNoU2V0
PFJlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4+IG1faW50ZXJuYWxseUZhaWxlZFJlc291
cmNlTG9hZGVyczsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI+IG1faW50ZXJuYWxseUZhaWxlZExvYWRUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1l
cjxXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI+IG1faW50ZXJuYWxseUZhaWxlZExvYWRUaW1lcjsK
ICAgICAKICAgICBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFJlZlB0cjxXZWJSZXNvdXJjZUxvYWRl
cj4+IG1fd2ViUmVzb3VyY2VMb2FkZXJzOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1h
cC5oCmluZGV4IDg3NDQyODlmY2JhYzljZmM3NWQ1YWQ0MWE1MWRhNzcyMDhmOWVlZmYuLjk2ZWE2
NTQwNmIzYWYyMTk5ZjFhMjk5YjlmOTRjODU1MDczYmM2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1l
T2JqZWN0TWFwLmgKQEAgLTI4LDExICsyOCwxMSBAQAogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxoZWFw
L1dlYWsuaD4KICNpbmNsdWRlIDxoZWFwL1dlYWtJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAKIHN0cnVjdCBOUE9iamVjdDsKIHR5cGVkZWYgc3RydWN0IF9OUFZhcmlhbnQgTlBWYXJp
YW50OwpAQCAtOTksNyArOTksNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8SlNDOjpKU09iamVj
dCosIE5QSlNPYmplY3QqPiBtX25wSlNPYmplY3RzOwogICAgIEhhc2hNYXA8TlBPYmplY3QqLCBK
U0M6OldlYWs8SlNOUE9iamVjdD4+IG1fanNOUE9iamVjdHM7CiAgICAgVmVjdG9yPE5QT2JqZWN0
Kj4gbV9ucE9iamVjdHNUb0ZpbmFsaXplOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5Q
UnVudGltZU9iamVjdE1hcD4gbV9maW5hbGl6YXRpb25UaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1l
cjxOUFJ1bnRpbWVPYmplY3RNYXA+IG1fZmluYWxpemF0aW9uVGltZXI7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKaW5kZXggMGVlNGYzNDhjNjM0NDFm
YmM1NGEwMTMyZjAxMWMyMWJlYmY2MmRhMy4uZTZjMmI3Y2Q5MzUxOTMxZTA0ZDcwYjRmYjRjMzk0
Zjg1Y2RlZTU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKQEAgLTMzLDggKzMzLDggQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0FmZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC0zMzIsNyArMzMyLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgYm9vbCBtX3JlcGVhdDsKICAgICAgICAgVGltZXJGdW5jIG1fdGltZXJGdW5jOwogCi0gICAg
ICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBtX3RpbWVyOworICAgICAgICBSdW5M
b29wOjpUaW1lcjxUaW1lcj4gbV90aW1lcjsKICAgICB9OwogICAgIHR5cGVkZWYgSGFzaE1hcDx1
bnNpZ25lZCwgT3duUHRyPFRpbWVyPj4gVGltZXJNYXA7CiAgICAgVGltZXJNYXAgbV90aW1lcnM7
CkBAIC0zNzksNyArMzc5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEZJWE1FOiBJdCdzIGEgYml0
IHdhc3RlZnVsIHRvIGhhdmUgb25lIG51bGwgZXZlbnQgdGltZXIgcGVyIHBsdWctaW4uCiAgICAg
Ly8gV2Ugc2hvdWxkIGludmVzdGlnYXRlIGhhdmluZyBvbmUgcGVyIHdpbmRvdy4KLSAgICBXZWJD
b3JlOjpSdW5Mb29wOjpUaW1lcjxOZXRzY2FwZVBsdWdpbj4gbV9udWxsRXZlbnRUaW1lcjsKKyAg
ICBSdW5Mb29wOjpUaW1lcjxOZXRzY2FwZVBsdWdpbj4gbV9udWxsRXZlbnRUaW1lcjsKICAgICBO
UF9DR0NvbnRleHQgbV9ucENHQ29udGV4dDsKICNlbmRpZgogI2VsaWYgUExVR0lOX0FSQ0hJVEVD
VFVSRShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCmluZGV4IGZmYTU1Y2Iy
NWQ4Y2Q4NzQ0NmJhODM3ZmQzOTBlODNiOGM0YTdiNzIuLmRkNTliMDU1YjlmZWM5YTgzOGUyOTli
M2ZhZGIwNTgyZDBkM2Q5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCkBA
IC0yOSwxMiArMjksMTIgQEAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvbnBydW50aW1lX2ludGVybmFsLmg+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0xMDUsNyArMTA1LDcgQEAgcHJpdmF0ZToKICAgICBDU3RyaW5nIG1fbWltZVR5cGU7
CiAgICAgQ1N0cmluZyBtX2hlYWRlcnM7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxO
ZXRzY2FwZVBsdWdpblN0cmVhbT4gbV9kZWxpdmVyeURhdGFUaW1lcjsKKyAgICBSdW5Mb29wOjpU
aW1lcjxOZXRzY2FwZVBsdWdpblN0cmVhbT4gbV9kZWxpdmVyeURhdGFUaW1lcjsKICAgICBPd25Q
dHI8IFZlY3Rvcjx1aW50OF90Pj4gbV9kZWxpdmVyeURhdGE7CiAgICAgYm9vbCBtX3N0b3BTdHJl
YW1XaGVuRG9uZURlbGl2ZXJpbmc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggYzZjZDU4ODlhYmFlNjM0MWU5M2YyYmJmY2E3NDNl
MWIxM2IwNmNhMi4uNmEwNzM3OWI3ZDk2MjBjNjlmNjc4NmVlZGEwZjcyMGU1ZDA2OWMzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0z
Niw5ICszNiw5IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5WaWV3QmFzZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXNwb25zZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVGltZXIuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogCiAvLyBGSVhNRTogRXZlbnR1YWxseSB0aGlzIHNob3VsZCBtb3ZlIHRvIFdlYkNvcmUu
CiAKQEAgLTIzMSw3ICsyMzEsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUGVuZGluZyBVUkxSZXF1
ZXN0cyB0aGF0IHRoZSBwbHVnLWluIGhhcyBtYWRlLgogICAgIERlcXVlPFJlZlB0cjxVUkxSZXF1
ZXN0Pj4gbV9wZW5kaW5nVVJMUmVxdWVzdHM7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8
UGx1Z2luVmlldz4gbV9wZW5kaW5nVVJMUmVxdWVzdHNUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1l
cjxQbHVnaW5WaWV3PiBtX3BlbmRpbmdVUkxSZXF1ZXN0c1RpbWVyOwogCiAgICAgLy8gUGVuZGlu
ZyBmcmFtZSBsb2FkcyB0aGF0IHRoZSBwbHVnLWluIGhhcyBtYWRlLgogICAgIHR5cGVkZWYgSGFz
aE1hcDxSZWZQdHI8V2ViRnJhbWU+LCBSZWZQdHI8VVJMUmVxdWVzdD4+IEZyYW1lTG9hZE1hcDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUlt
cGwuaAppbmRleCA3ODkzMDA5Zjc0YTIwOGZmZjhjNTZkOWFlOTk4N2QxMDhhNjdlNGVlLi40MWEw
YmU1MjQ4ODc2YmM3NDg1ZjNhN2EzYWU2ZDY1NzdkNjY2OWFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCkBAIC0yOSw3ICsy
OSw3IEBACiAjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJMYXllclRyZWVIb3N0
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwpAQCAtMTQwLDggKzE0MCw4IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2lzUGFpbnRpbmdTdXNwZW5kZWQ7CiAgICAgYm9vbCBtX2Fsd2F5c1VzZUNvbXBv
c2l0aW5nOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBt
X2Rpc3BsYXlUaW1lcjsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUlt
cGw+IG1fZXhpdENvbXBvc2l0aW5nVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0Fy
ZWFJbXBsPiBtX2Rpc3BsYXlUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUlt
cGw+IG1fZXhpdENvbXBvc2l0aW5nVGltZXI7CiAKICAgICAvLyBUaGUgbGF5ZXIgdHJlZSBob3N0
IHRoYXQgaGFuZGxlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZy4KICAgICBSZWZQdHI8TGF5ZXJU
cmVlSG9zdD4gbV9sYXllclRyZWVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCBkNzljMjk3MGYyNmJkOGZm
NTE4MmVmOWE4NjI5MjU4ZjdkYWU0MDZjLi5hZDQwNDAwODg1ZTNhMGUwOWVlNDc4MWViODQxOWMz
YWJhMTc2MWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJMRShU
SFJFQURFRF9TQ1JPTExJTkcpCiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRv
ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VP
dmVybGF5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXku
aAppbmRleCAwZmEwNThhYTQ2ZjM3NDVkNzEzOWUxZGQ1ZDYwODA2MTJlMzFiMTliLi5iYzE4MmRh
MDY1MjhlZjc3YTFkMGE4NjVkYjVjMGJhZmQ2YWUwODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaApAQCAtMjcsOCArMjcsOCBAQAogI2Rl
ZmluZSBQYWdlT3ZlcmxheV9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHcmFwaGlj
c0NvbnRleHQ7CkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgQ2xpZW50KiBtX2NsaWVu
dDsKICAgICBXZWJQYWdlKiBtX3dlYlBhZ2U7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1l
cjxQYWdlT3ZlcmxheT4gbV9mYWRlQW5pbWF0aW9uVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8
UGFnZU92ZXJsYXk+IG1fZmFkZUFuaW1hdGlvblRpbWVyOwogICAgIGRvdWJsZSBtX2ZhZGVBbmlt
YXRpb25TdGFydFRpbWU7CiAgICAgZG91YmxlIG1fZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggN2Fk
ZDk2YjM4YzNkZjc2NTc3MzQ5ZWQxMzIwZjk3NTIxMDZmYTUwNi4uZGMzNWJiNDZkOTM2YjY0Njcw
ZjgyY2E0NWRhY2YxMmJhNmRhOGNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTIwLDcgKzEyMCw2IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2NyaXB0Q29udHJvbGxlci5oPgpAQCAtMTM1LDYgKzEzNCw3IEBACiAjaW5jbHVkZSA8cnVudGlt
ZS9KU0NKU1ZhbHVlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDxy
dW50aW1lL09wZXJhdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5B
QkxFKE1IVE1MKQogI2luY2x1ZGUgPFdlYkNvcmUvTUhUTUxBcmNoaXZlLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhYzk1M2I5NzMwYjQ4ZWJm
MTM1ZWY0Zjg3NGU1ZDNiNTQ1Yzg2NDQ4Li4wODY2ZTJhNTc0OTliZmJhNmJmMzg4NjI4YmRkMzRj
YjFkYzJiMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTg4Myw3ICs4ODMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3ByaW1hcnlQbHVn
SW5QYWdlT3JpZ2luOwogICAgIFN0cmluZyBtX3ByaW1hcnlQbHVnSW5PcmlnaW47CiAgICAgU3Ry
aW5nIG1fcHJpbWFyeVBsdWdJbk1pbWVUeXBlOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVy
PFdlYlBhZ2U+IG1fZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luVGltZXI7CisgICAg
UnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9kZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVn
SW5UaW1lcjsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtOTI1LDggKzkyNSw4IEBA
IHByaXZhdGU6CiAgICAgUmVmUHRyPFBhZ2VCYW5uZXI+IG1faGVhZGVyQmFubmVyOwogICAgIFJl
ZlB0cjxQYWdlQmFubmVyPiBtX2Zvb3RlckJhbm5lcjsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyPFdlYlBhZ2U+IG1fc2V0Q2FuU3RhcnRNZWRpYVRpbWVyOwotICAgIFdlYkNvcmU6OlJ1
bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fc2VuZERpZFVwZGF0ZUluV2luZG93U3RhdGVUaW1lcjsK
KyAgICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX3NldENhblN0YXJ0TWVkaWFUaW1lcjsKKyAg
ICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX3NlbmREaWRVcGRhdGVJbldpbmRvd1N0YXRlVGlt
ZXI7CiAgICAgYm9vbCBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CiAKICAgICBIYXNoTWFw
PHVpbnQ2NF90LCBSZWZQdHI8V2ViVW5kb1N0ZXA+PiBtX3VuZG9TdGVwTWFwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOTlkZWJhNWUxZTRlNTEyYjM4ZGVi
NDlmNDFhMGZmOTM0ZjhkNzMwMC4uOWY2NTI4ZWVlNWQ4OWY3NTEwNmIzOWUwNGQxODNkNDU1ZmUy
YjM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC03NCw3
ICs3NCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lz
dHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2V0dGluZ3MuaD4KQEAgLTgyLDYgKzgxLDcgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAppbmRleCA1
YjM0ODBkYTRmZGEzYmQzYzg0YjAxZjM3YWY1ZmVkMDNhZGQwZTAyLi40ZDI0OWRiZDIzOGEyODIy
ODdmMTE3ZWI3ZWMzMzFhNmFmNDA3M2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCkBAIC0zNiwxMSArMzYsMTEgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5k
bGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dl
YlByb2Nlc3MuaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KICNpbmNsdWRlIDxydW50aW1l
L09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmZGVmIEhBVkVfRUNPUkVf
WApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01h
aW5HdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5H
dGsuY3BwCmluZGV4IDU0YzhkZjNlMGNiY2VjNzVkNzA5MmMyYjI0MjZhYzdmZjUxYzRlZjguLmI0
ODFlZTM0ZjIzZTNhYjhhZmVlNGViYjUyYWViNTBlMDIzNzUzM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKQEAgLTMyLDEy
ICszMiwxMiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUhhbmRsZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1
ZGUgPFdlYktpdDIvV2ViUHJvY2Vzcy5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRl
IDxsaWJpbnRsLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NNYWluUXQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzTWFpblF0LmNwcAppbmRleCBmMGI1MWMx
OTkxOTQyNTQ3MzBhMWNhOGUwYzQ4ZDg1MDA1OTBlOWIwLi5kMzYyZDFiNWFjNjAyODBiMGYxY2Jh
YzA4MDJjOGMzODUwN2FlMmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3F0L1dlYlByb2Nlc3NNYWluUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
cXQvV2ViUHJvY2Vzc01haW5RdC5jcHAKQEAgLTM2LDggKzM2LDggQEAKICNpbmNsdWRlIDxRU3Ry
aW5nPgogI2luY2x1ZGUgPFFTdHJpbmdMaXN0PgogI2luY2x1ZGUgPFFVcmw+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogCiAjaWYgVVNFKFFUS0lUKQogI2luY2x1ZGUgIldlYlN5c3RlbUludGVyZmFjZS5o
Igo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202705</attachid>
            <date>2013-05-23 07:05:22 -0700</date>
            <delta_ts>2013-10-21 00:37:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116606-20130523160406.patch</filename>
            <type>text/plain</type>
            <size>202273</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MjMxODRlZTQ5Y2VmYmVlNzUxN2E4MjIzZDc4NzBhZDM5NGMxNTljLi5lYWNmYzMxNjExZjIxNTUy
MmYwMGE1OGZiMWZjZWJjYzAwYzUyZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMy0wNS0yMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0
Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEzLTA1LTIxICBCcmVudCBGdWxnaGFt
ICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5kb3dzXSBVbnJldmlld2VkIHNw
ZWN1bGF0aXZlIGZpeCBmb3IgdGVzdC1ib3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjNTk2YTg5MTg0YjgzNmFjM2NkN2Iz
YWRhZmIyYzlhOWIwNzQ0M2U0Li5hYzg0OTg2NTAzOTA0NzhlMDkyZTU4NDI3YTBiNWU1YWY3Yjk5
ZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAxMy0wNS0yMiAgUGF0cmljayBHYW5zdGVyZXIg
IDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3Jl
IHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE2NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2l0aCB0aGlzIGNoYW5nZSBSdW5Mb29wIGNhbiBiZSB1c2VkIGluIEphdmFTY3JpcHRDb3JlIHRv
by4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLnBybzoK
KyAgICAgICAgKiBXVEYudmNwcm9qL1dURi52Y3Byb2o6CisgICAgICAgICogV1RGLnZjeHByb2ov
V1RGLnZjeHByb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUJsYWNr
QmVycnkuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAq
IHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XaW5DRS5jbWFr
ZToKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3ApOgorICAgICAgICAo
UnVuTG9vcDo6SG9sZGVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6SG9sZGVyOjpIb2xkZXIp
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpIb2xkZXI6OnJ1bkxvb3ApOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpjdXJyZW50KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6bWFpbik6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2gp
OgorICAgICAgICAqIHd0Zi9SdW5Mb29wLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9SdW5Mb29wLmguCisgICAgICAgIChXVEYpOgorICAgICAgICAoUnVuTG9vcCk6Cisg
ICAgICAgIChUaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0
YXJ0UmVwZWF0aW5nKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydE9u
ZVNob3QpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzUmVwZWF0aW5nKToK
KyAgICAgICAgKFRpbWVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXI6OlRpbWVyKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXI6OmZpcmVkKToKKyAgICAgICAgKiB3dGYvV2lu
ZG93c0V4dHJhcy5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dp
bmRvd3NFeHRyYXMuaC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OmdldFJlZ2lzdHJ5
VmFsdWUpOgorICAgICAgICAoV1RGOjpnZXRXaW5kb3dQb2ludGVyKToKKyAgICAgICAgKFdURjo6
c2V0V2luZG93UG9pbnRlcik6CisgICAgICAgICogd3RmL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNr
QmVycnkuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJy
eS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAqIHd0Zi9lZmwvUnVuTG9vcEVm
bC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUnVuTG9vcEVm
bC5jcHAuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpydW4pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6d2FrZVVwRXZlbnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6
OlRpbWVyQmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFz
ZTo6c3RhcnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYv
Z3RrL1J1bkxvb3BHdGsuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1J1bkxvb3BHdGsuY3BwLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6aW5uZXJtb3N0TG9v
cCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnB1c2hOZXN0ZWRNYWluTG9vcCk6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnF1ZXVlV29yayk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNl
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spOgor
ICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJC
YXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogd3RmL21hYy9SdW5Mb29wTWFjLm1tOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9vcENGLmNwcC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9u
TWFpblJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpwZXJmb3JtV29yayk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp+UnVu
TG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6VGlt
ZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6aXNBY3RpdmUpOgorICAgICAgICAqIHd0Zi9xdC9SdW5Mb29wUXQuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChSdW5Mb29wOjpUaW1lck9iamVjdCk6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OlRpbWVyT2JqZWN0OjpUaW1lck9iamVjdCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6
OlRpbWVyT2JqZWN0OjpwZXJmb3JtV29yayk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
T2JqZWN0Ojp3YWtlVXApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lck9iamVjdDo6dGlt
ZXJFdmVudCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJ1bik6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OnN0b3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXAp
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQpOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRp
bWVyQmFzZTo6c3RhcnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3Ap
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAg
KiB3dGYvd2luL1J1bkxvb3BXaW4uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6UnVuTG9vcFduZFByb2MpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3bmRQcm9j
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5k
b3dDbGFzcyk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjp+UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChX
VEY6OmdlbmVyYXRlVGltZXJJRCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNl
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRp
bWVyQmFzZTo6aXNBY3RpdmUpOgorCiAyMDEzLTA1LTIxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdhM2Ux
MDQyOTg2ZmYwOGM0MzhmYzg5OGZlYjE1OTI2MzEwMTI3OGEuLjExNDQxYzAyYWYwMDYwYmVlNWM1
MWYzMDZkYjljNmE1MjczMDNlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMy0w
NS0yMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBN
b3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFBsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbkNFLmNtYWtlOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmg6CisgICAgICAgIChTY3JvbGxpbmdUaHJlYWQp
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAq
IHBsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1J1bkxvb3AuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL1J1bkxvb3AuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jZi9SdW5Mb29wQ0YuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9SdW5Mb29wRWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVGdWxsc2NyZWVuV2luZG93Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1J1bkxvb3BH
dGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SdW5Mb29wTWFjLm1tOiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vd2luL01JTUVUeXBlUmVnaXN0cnlXaW4uY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
UG9wdXBNZW51V2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1NoYXJlZFRpbWVyV2luLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vV2luZG93TWVzc2FnZUxpc3RlbmVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vd2luL1dpbmRvd3NFeHRyYXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbHVnaW5z
L3dpbi9QbHVnaW5EYXRhYmFzZVdpbi5jcHA6CisKIDIwMTMtMDUtMjEgIE1paGFpIFRpY2EgIDxt
aXRpY2FAYWRvYmUuY29tPgogICAgICAgICAKICAgICAgICAgVXBkYXRlIHRoZSBiYWNrZ3JvdW5k
IGJsZW5kaW5nIGltcGxlbWVudGF0aW9uIHRvIG1hdGNoIHRoZSBjaGFuZ2VzIGRvbmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwppbmRleCBjNGFhZTA4ODY2MTYyMjQ4NWRmYWJlYTI5ZjFmZmVmNDk5Y2ZkYjhiLi5i
NDg3YTllMTdlYmMxNmFmNzhkNDUyOTA4NzMzMGRjMjhiZDk2MDAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTEgQEAKKzIwMTMtMDUtMjIgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29yZSB0byBXVEYK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjYwNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2FyYm9u
L0NhcmJvbldpbmRvd0FkYXB0ZXIubW06CisgICAgICAgICgrW0NhcmJvbldpbmRvd0FkYXB0ZXIg
aW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tOgor
ICAgICAgICAoK1tXZWJCYWNrRm9yd2FyZExpc3QgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhp
c3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CisgICAgICAgICgrW1dlYkhpc3RvcnlJdGVtIGluaXRp
YWxpemVdKToKKyAgICAgICAgKiBNaXNjL1dlYkNhY2hlLm1tOgorICAgICAgICAoK1tXZWJDYWNo
ZSBpbml0aWFsaXplXSk6CisgICAgICAgICogTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbToK
KyAgICAgICAgKCtbV2ViRWxlbWVudERpY3Rpb25hcnkgaW5pdGlhbGl6ZV0pOgorICAgICAgICAq
IE1pc2MvV2ViSWNvbkRhdGFiYXNlLm1tOgorICAgICAgICAoK1tXZWJJY29uRGF0YWJhc2UgaW5p
dGlhbGl6ZV0pOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldy5tbToKKyAgICAgICAgKCtbV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGluaXRp
YWxpemVdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNr
YWdlLm1tOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2Fw
ZVBsdWdpblZpZXcubW06CisgICAgICAgICgrW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBpbml0aWFs
aXplXSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoK1tXZWJVbmRvU3RlcCBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgICogV2ViVmlldy9XZWJBcmNoaXZl
Lm1tOgorICAgICAgICAoK1tXZWJBcmNoaXZlUHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJEYXRhU291cmNlLm1tOgorICAgICAgICAoK1tXZWJEYXRhU291cmNlIGlu
aXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAo
K1tXZWJIVE1MVmlld1ByaXZhdGUgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoK1tXZWJIVE1MVmll
dyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAg
ICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcv
V2ViUmVzb3VyY2UubW06CisgICAgICAgICgrW1dlYlJlc291cmNlUHJpdmF0ZSBpbml0aWFsaXpl
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJUZXh0SXRlcmF0b3IubW06CisgICAgICAgICgrW1dl
YlRleHRJdGVyYXRvclByaXZhdGUgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAgICAgKCtbV2ViVmlld1ByaXZhdGUgaW5pdGlhbGl6
ZV0pOgorCiAyMDEzLTA1LTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAK
ICAgICAgICAgU3luY2hyb25pemUgRmVhdHVyZURlZmluZXMueGNjb25maWcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA2ZGZiOWQ1NjY5MDMzMDlkYmIwYmUxNjk0MmUzNDFiZDIyYmZlYzJmLi5lOWZlYTk2MTUyM2Ux
MDdmMDExNGUyMjMwZDcxOGFlMzA0MDBkYjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODYgQEAK
KzIwMTMtMDUtMjIgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29yZSB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjYwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmg6CisgICAgICAgICog
T2ZmbGluZVN0b3JhZ2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5jcHA6CisgICAgICAg
ICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9D
b3JlSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKENvbm5lY3Rpb24pOgorICAgICAgICAqIFBs
YXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwOgorICAgICAgICAqIFBsdWdpblBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbToK
KyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2lu
U2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKFBsdWdpbkNvbnRyb2xsZXJQcm94eSk6CisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAgICAgKiBQbHVnaW5Qcm9j
ZXNzL1BsdWdpblByb2Nlc3MuaDoKKyAgICAgICAgKFBsdWdpblByb2Nlc3MpOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFBsdWdp
blByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHA6CisgICAgICAgICogUGx1Z2luUHJv
Y2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHA6CisgICAgICAgICogU2hhcmVkL0No
aWxkUHJvY2Vzcy5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAg
ICAoQ2hpbGRQcm9jZXNzKToKKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNz
L0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNz
TWFpbik6CisgICAgICAgICogU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIpOgorICAgICAgICAqIFNoYXJlZFdvcmtlclByb2Nl
c3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHA6CisgICAgICAgICogU2hhcmVkV29ya2VyUHJvY2Vz
cy9TaGFyZWRXb3JrZXJQcm9jZXNzLmg6CisgICAgICAgIChTaGFyZWRXb3JrZXJQcm9jZXNzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93Lmg6CisgICAg
ICAgIChGaW5kSW5kaWNhdG9yV2luZG93KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW06CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0Fy
ZWFQcm94eUltcGwuaDoKKyAgICAgICAgKERyYXdpbmdBcmVhUHJveHlJbXBsKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHA6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICog
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1Jlc3Bv
bnNpdmVuZXNzVGltZXIuaDoKKyAgICAgICAgKFJlc3BvbnNpdmVuZXNzVGltZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5jcHA6
CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaDoKKyAgICAgICAgKFZp
c2l0ZWRMaW5rUHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29u
dGVudFByb2Nlc3NNYWluLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorICAgICAgICAoV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmg6CisgICAgICAgIChOUFJ1bnRpbWVPYmplY3RNYXAp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5o
OgorICAgICAgICAoVGltZXIpOgorICAgICAgICAoTmV0c2NhcGVQbHVnaW4pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oOgorICAg
ICAgICAoTmV0c2NhcGVQbHVnaW5TdHJlYW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChQbHVnaW5WaWV3KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmg6CisgICAgICAgIChEcmF3aW5nQXJlYUltcGwp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oOgorICAgICAgICAoUGFnZU92
ZXJsYXkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViUGFnZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9ndGsvV2Vi
UHJvY2Vzc01haW5HdGsuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc01h
aW5RdC5jcHA6CisKIDIwMTMtMDUtMjIgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBh
a3VsYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIENoYW5nZSBFd2tfQ29udGV4
dF9NZW51X0l0ZW0ncyBwYXJlbnQgbWVudSB0byByYXcgcG9pbnRlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA1ODBhYTFlNWQyZTQ4NjI2ZGJmOGI3Y2JiMjg1NGNmMTViMGU3NzRl
Li5mNjAyMDgyMmRlMTc4MDlmNzY3ZmNjMTVhYmUyZmUyZjY4MjNiOWNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNTA5LDYgKzUwOSw3IEBACiAJCTFBQ0Y3Mzc3MTcxQ0E2RkIw
MEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCAqLzsgfTsKIAkJ
MjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkx
RUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkx
RUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVy
LmggKi87IH07CisJCTJDQjNFNzE2MTczQUNBNzMwMEFBN0JGRCAvKiBBcHBLaXQuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNCM0U3
MTUxNzNBQ0E3MzAwQUE3QkZEIC8qIEFwcEtpdC5mcmFtZXdvcmsgKi87IH07CiAJCTQxMzU5Q0Yz
MEZERDg5QUQwMDIwNjE4MCAvKiBEYXRlQ29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIxMjAyMjkwQUQ0MzEwQzAwRUQ3OUI2IC8qIERh
dGVDb252ZXJzaW9uLmggKi87IH07CiAJCTQ0NDNBRTMzMTZFMTg4RDkwMDc2RjExMCAvKiBGb3Vu
ZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRjBFQjYxMDVDODZDNkIwMEU2REYxQiAvKiBGb3VuZGF0aW9uLmZyYW1ld29y
ayAqLzsgfTsKIAkJNDUxNTM5QjkxMkRDOTk0NTAwRUY3QUM0IC8qIFlhcnIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MTUzOUI4MTJEQzk5NDUwMEVG
N0FDNCAvKiBZYXJyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTEzODgsNiArMTM4OSw3IEBACiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAv
KiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZh
U2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNDE1MkJB
QUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCM0U3MTUxNzNBQ0E3MzAwQUE3QkZEIC8qIEFwcEtpdC5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcEtpdC5mcmFtZXdvcms7IHBhdGggPSAvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxh
YnNvbHV0ZT4iOyB9OwogCQk0NDkwOTdFRTBGOEY4MUI1MDA3NkEzMjcgLyogRmVhdHVyZURlZmlu
ZXMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRmVhdHVyZURlZmlu
ZXMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MTUzOUI4MTJEQzk5
NDUwMEVGN0FDNCAvKiBZYXJyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFlh
cnIuaDsgcGF0aCA9IHlhcnIvWWFyci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NUUxMkQ4ODA2QTQ5QjBGMDBFOURGODQgLyoganNjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGpzYy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gNDsgfTsKQEAgLTE4NjQsNiArMTg2Niw3IEBACiAJCQlpc2Eg
PSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkyQ0IzRTcxNjE3M0FDQTczMDBBQTdCRkQgLyogQXBwS2l0
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTkzMkY1QkQzMDgyMkExQzcwMDczNjk3
NSAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlBNzMx
QjI1QTEzMDA5Mzg4MDA0MEE3RkEgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCQk5MzJGNUJENzA4MjJBMUM3MDA3MzY5NzUgLyogbGliaWN1Y29yZS5keWxpYiBp
biBGcmFtZXdvcmtzICovLApAQCAtMTk0MCw2ICsxOTQzLDcgQEAKIAkJMDg2N0Q2OUFGRTg0MDI4
RkMwMkFBQzA3IC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTJDQjNFNzE1MTczQUNBNzMwMEFBN0JGRCAvKiBBcHBLaXQuZnJhbWV3
b3JrICovLAogCQkJCTY1NjBBNENGMDRCM0IzRTcwMDhBRTk1MiAvKiBDb3JlRm91bmRhdGlvbi5m
cmFtZXdvcmsgKi8sCiAJCQkJNTFGMEVCNjEwNUM4NkM2QjAwRTZERjFCIC8qIEZvdW5kYXRpb24u
ZnJhbWV3b3JrICovLAogCQkJCTVENUQ4QUQwMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5
bGliICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDFkN2YwYjM2MmEyZmY1YWFmMzRlZGM3
ODY2NWRjMWE0ZWYzNTg1NDguLmE4ZDA2YTIzNTI4OTMzYTVkOGVmNTA2NWUwNWVmZTkyNmVhODFj
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE0MCw2ICsxNDAsOCBAQCB3dGZfc291cmNl
cyArPSBcCiAgICAgU291cmNlL1dURi93dGYvUmVmUHRyLmggXAogICAgIFNvdXJjZS9XVEYvd3Rm
L1JlZlB0ckhhc2hNYXAuaCBcCiAgICAgU291cmNlL1dURi93dGYvUmV0YWluUHRyLmggXAorICAg
IFNvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29w
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1NIQTEuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9T
SEExLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1NhdHVyYXRlZEFyaXRobWV0aWMuaCBcCkBAIC0y
MjAsNiArMjIyLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL2dvYmpl
Y3QvR2xpYlV0aWxpdGllcy5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL2dvYmplY3QvR2xpYlV0
aWxpdGllcy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9ndGsvTWFpblRocmVhZEd0ay5jcHAgXAor
ICAgIFNvdXJjZS9XVEYvd3RmL2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAgICAgU291cmNlL1dURi93
dGYvdGV4dC9BU0NJSUZhc3RQYXRoLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWlj
U3RyaW5nLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXgg
ZTNmOTBiODc4ODFiMTljODMyZDZhNDJiZmRmZGZmYzc4MTU3ZTdhOS4uYTZmNWM1YjVmMzE0MjVh
MGU5ZmU0ODkzMzNmNjE3MDViNTA5Y2YzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJv
CisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMTI4LDYgKzEyOCw3IEBAIEhFQURFUlMgKz0g
XAogICAgIFJlZlB0ci5oIFwKICAgICBSZWZQdHJIYXNoTWFwLmggXAogICAgIFJldGFpblB0ci5o
IFwKKyAgICBSdW5Mb29wLmggXAogICAgIFNIQTEuaCBcCiAgICAgU2F0dXJhdGVkQXJpdGhtZXRp
Yy5oIFwKICAgICBTcGVjdHJ1bS5oIFwKQEAgLTIxNiw4ICsyMTcsMTAgQEAgU09VUkNFUyArPSBc
CiAgICAgTnVsbFB0ci5jcHAgXAogICAgIE51bWJlck9mQ29yZXMuY3BwIFwKICAgICBSQU1TaXpl
LmNwcCBcCisgICAgUnVuTG9vcC5jcHAgXAogICAgIE9TUmFuZG9tU291cmNlLmNwcCBcCiAgICAg
cXQvTWFpblRocmVhZFF0LmNwcCBcCisgICAgcXQvUnVuTG9vcFF0LmNwcCBcCiAgICAgcXQvU3Ry
aW5nUXQuY3BwIFwKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwIFwKICAgICBQYWdlQmxv
Y2suY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qIGIv
U291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggMzAxYThiZmRiY2MzZTVlNTVi
MTRlYWQ4OTRhN2IyYjE1MGM3NzFlMS4uMTBmOTY3NzdmOWJmNWI1NjU3ODcyZWFlMjNjYmQ4NjVk
ZTY2OWJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKKysr
IGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTM0NSw2ICszNDUsMTAgQEAK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0Zlx3aW5cT3duUHRyV2luLmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXHdpblxSdW5Mb29wV2lu
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCiAJCQlOYW1l
PSJ1bmljb2RlIgpAQCAtMTEyNyw2ICsxMTMxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZp
bGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXFJ1bkxvb3AuY3BwIgorCQkJPgorCQk8L0ZpbGU+
CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxSdW5Mb29wLmgiCisJCQk+CisJCTwv
RmlsZT4KKwkJPEZpbGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXFNhdHVyYXRlZEFyaXRobWV0
aWMuaCIKIAkJCT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmN4cHJv
ai9XVEYudmN4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oKaW5kZXgg
NmU3ZjRiMzgwNzAzYzRkYmRjZTAzNTM4NTNlYmI0YTJiMjA5NzM3MS4uNGQxYzdhZWE3NGEyOWEw
ZDc5ZWU0OWI2MzViNjA0OGJmZWUxZjczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmN4
cHJvai9XVEYudmN4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9q
CkBAIC02Niw2ICs2Niw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcUkFNU2l6
ZS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFJhbmRvbU51bWJlci5j
cHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFJlZkNvdW50ZWRMZWFrQ291
bnRlci5jcHAiIC8+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFJ1bkxvb3AuY3Bw
IiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxTSEExLmNwcCIgLz4NCiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcU2l6ZUxpbWl0cy5jcHAiIC8+DQogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cd3RmXFN0YWNrQm91bmRzLmNwcCIgLz4NCkBAIC04OCw2ICs4OSw3
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcdW5pY29kZVxVVEY4LmNwcCIgLz4N
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcd2luXE1haW5UaHJlYWRXaW4uY3BwIiAv
Pg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0Zlx3aW5cT3duUHRyV2luLmNwcCIgLz4N
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcd2luXFJ1bkxvb3BXaW4uY3BwIiAvPg0K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxXVEZUaHJlYWREYXRhLmNwcCIgLz4NCiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcU2NoZWR1bGVQYWlyQ0YuY3BwIiAvPg0KICAg
PC9JdGVtR3JvdXA+DQpAQCAtMjAwLDYgKzIwMiw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlx3dGZcUmVmUHRyLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJl
ZlB0ckhhc2hNYXAuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUmV0YWlu
UHRyLmgiIC8+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJ1bkxvb3AuaCIgLz4N
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU2F0dXJhdGVkQXJpdGhtZXRpYy5oIiAv
Pg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTY2hlZHVsZVBhaXIuaCIgLz4NCiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU2VnbWVudGVkVmVjdG9yLmgiIC8+DQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWMyYmExZmQ3NzE5Njc1
ZmQxYmQ3MWU3YjVmZWI5YWMxNzA1MGY5OS4uY2JlOTM4NjIyNWVlZTRmY2NhYTA3OTU0NmRhY2Ew
MDQxNDE1MjBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC00Nyw2ICs0Nyw5IEBACiAJCTFBNkJCNzY5MTYyRjMwMDUwMEREMTZEQiAvKiBTdHJlYW1CdWZm
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkJC
NzY4MTYyRjMwMDUwMEREMTZEQiAvKiBTdHJlYW1CdWZmZXIuaCAqLzsgfTsKIAkJMjYxNDdCMEEx
NUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MTQ3QjA4MTVERENDREMwMERE
QjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggKi87IH07CiAJCTJDMDUzODU0MTVC
QzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRlVGltZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwNTM4NTMxNUJDODE5MDAwRjIxQjk2IC8qIEdy
ZWdvcmlhbkRhdGVUaW1lLmggKi87IH07CisJCTJDQjNFNzExMTczQUI4QkYwMEFBN0JGRCAvKiBS
dW5Mb29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJDQjNFNzBGMTczQUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29wLmNwcCAqLzsgfTsKKwkJMkNCM0U3
MTIxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQjNFNzEwMTczQUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29w
LmggKi87IH07CisJCTJDQjNFNzE0MTczQUI4RUIwMEFBN0JGRCAvKiBSdW5Mb29wTWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNCM0U3MTMxNzNB
QjhFQjAwQUE3QkZEIC8qIFJ1bkxvb3BNYWMubW0gKi87IH07CiAJCTJDQ0Q4OTJBMTVDMDM5MDIw
MDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0NEODkyOTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29y
aWFuRGF0ZVRpbWUuY3BwICovOyB9OwogCQk0NEY2NjAwODE3MUFGQUU2MDBFNEFEMTkgLyogRW51
bUNsYXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NEY2NjAwNzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi87IH07CiAJCTRGMDMyMUJD
MTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5
LmggKi87IH07CkBAIC0zMTAsNiArMzEzLDkgQEAKIAkJMUE2QkI3NjgxNjJGMzAwNTAwREQxNkRC
IC8qIFN0cmVhbUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJl
YW1CdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NE
QzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyQzA1Mzg1MzE1QkM4MTkwMDBGMjFCOTYgLyogR3JlZ29yaWFu
RGF0ZVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JlZ29yaWFuRGF0
ZVRpbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCM0U3MEYxNzNBQjhCRjAw
QUE3QkZEIC8qIFJ1bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUnVuTG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDQjNFNzEwMTcz
QUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJ1bkxvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCM0U3MTMxNzNB
QjhFQjAwQUE3QkZEIC8qIFJ1bkxvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBSdW5Mb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyQ0NEODkyOTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JlZ29yaWFuRGF0ZVRpbWUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NERFRTc0QTE1MjI3NEJCMDBDNkVDMzcgLyog
aU9TLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IGlPUy54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRGNjYwMDcxNzFBRkFBOTAwRTRBRDE5
IC8qIEVudW1DbGFzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbnVtQ2xhc3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTc0MCw2ICs3NDYsOCBAQAogCQkJCUE4QTQ3MzAzMTUxQTgyNUIw
MDQxMjNGRiAvKiBSZWZQdHIuaCAqLywKIAkJCQlBOEE0NzMwNDE1MUE4MjVCMDA0MTIzRkYgLyog
UmVmUHRySGFzaE1hcC5oICovLAogCQkJCUE4QTQ3MzA1MTUxQTgyNUIwMDQxMjNGRiAvKiBSZXRh
aW5QdHIuaCAqLywKKwkJCQkyQ0IzRTcwRjE3M0FCOEJGMDBBQTdCRkQgLyogUnVuTG9vcC5jcHAg
Ki8sCisJCQkJMkNCM0U3MTAxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkx
NDY5NDE5MDE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi8sCiAJCQkJMTQ2OTQx
OTExNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAqLywKIAkJCQkxNEYzQjBG
NjE1RTQ1RTQ2MDAyMTAwNjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpYy5oICovLApAQCAtODMzLDYg
Kzg0MSw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUE4QTQ3
MkM1MTUxQTgyNUEwMDQxMjNGRiAvKiBNYWluVGhyZWFkTWFjLm1tICovLAorCQkJCTJDQjNFNzEz
MTczQUI4RUIwMEFBN0JGRCAvKiBSdW5Mb29wTWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBt
YWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTAzNCw2ICsxMDQzLDggQEAKIAkJ
CQlBOEE0NzQxQzE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEE0NzQxRDE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDc0MUUxNTFBODI1QjAwNDEyM0ZGIC8qIFJldGFpblB0ci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMkNCM0U3MTIxNzNBQjhCRjAwQUE3QkZEIC8qIFJ1bkxvb3AuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTE0RjNCMEY3MTVFNDVFNDYwMDIxMDA2OSAvKiBTYXR1cmF0ZWRB
cml0aG1ldGljLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ2NjE1MUE4MjVCMDA0MTIzRkYg
LyogU2NyaXB0Q29kZXNGcm9tSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQxRjE1MUE4
MjVCMDA0MTIzRkYgLyogU2VnbWVudGVkVmVjdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTEyMTAs
NiArMTIyMSw4IEBACiAJCQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51
bWJlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQxQTE1MUE4MjVCMDA0MTIzRkYgLyog
UmVmQ291bnRlZExlYWtDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDQjNFNzExMTcz
QUI4QkYwMEFBN0JGRCAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDQjNFNzE0
MTczQUI4RUIwMEFBN0JGRCAvKiBSdW5Mb29wTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0MjExNTFBODI1QjAwNDEyM0ZGIC8qIFNIQTEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0MjUxNTFBODI1QjAwNDEyM0ZGIC8qIFNpemVMaW1pdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDc0MjcxNTFBODI1QjAwNDEyM0ZGIC8qIFN0YWNrQm91bmRzLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA1YmNkMzM2Y2VkMjM3MDg5MWU1Mzc2MGU4NDNj
NmU2MjA4NjU3NWFhLi4yMGE2N2IwNmJlZGNiZmI0MmVmM2U3ZWI5NGJmMzI2NDc2YjcyMmI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNTYsNiArNTYsNyBAQCBzZXQoV1RGX0hFQURFUlMKICAg
ICBOdWxsUHRyLmgKICAgICBOdW1iZXJPZkNvcmVzLmgKICAgICBSQU1TaXplLmgKKyAgICBSdW5M
b29wLmgKICAgICBPU0FsbG9jYXRvci5oCiAgICAgT1NSYW5kb21Tb3VyY2UuaAogICAgIE93bkFy
cmF5UHRyLmgKQEAgLTE2Nyw2ICsxNjgsNyBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBPU1JhbmRv
bVNvdXJjZS5jcHAKICAgICBOdW1iZXJPZkNvcmVzLmNwcAogICAgIFJBTVNpemUuY3BwCisgICAg
UnVuTG9vcC5jcHAKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwCiAgICAgUGFnZUJsb2Nr
LmNwcAogICAgIFBhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUJs
YWNrQmVycnkuY21ha2UKaW5kZXggZmI5Y2M1MTJkNWUyNDdmMzU5ZjI2M2UyY2VjOGYwMzA3Yjcy
NGZlZS4uN2QxNGU3YWQ5NDc2MjY4ZDkyOGE3ZGY5NTRlOTVmNDFhNmY1OGUzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtMSw1ICsxLDYgQEAKIGxpc3QoQVBQ
RU5EIFdURl9TT1VSQ0VTCiAgICAgYmxhY2tiZXJyeS9NYWluVGhyZWFkQmxhY2tCZXJyeS5jcHAK
KyAgICBibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcAogKQogCiBsaXN0KElOU0VSVCBX
VEZfSU5DTFVERV9ESVJFQ1RPUklFUyAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGM1
OWY0OTcyZjc2YWM0YTZkY2ZjNjA3OGIwZjhiNzBjOWY2MzY5MzkuLjk4M2VlOWU3NzI2YWM3MmNi
OGQxYWZlOTNlMmFmNGYxMGYwYmUzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0y
LDYgKzIsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGVmbC9NYWluVGhyZWFkRWZs
LmNwcAogICAgIGVmbC9Pd25QdHJFZmwuY3BwCiAgICAgZWZsL1JlZlB0ckVmbC5jcHAKKyAgICBl
ZmwvUnVuTG9vcEVmbC5jcHAKIAogICAgIGdvYmplY3QvR093blB0ci5jcHAKICAgICBnb2JqZWN0
L0dSZWZQdHIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFr
ZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDUwMDIxNmU3NTJhYWE0
NDIwNDEyNDQ1NTk2ODY0ZWJlMDdmNjg1ODkuLmQ1YjZkMDMxNjFhY2RmOGJmOGE0NDA0ZDNiNTM1
Mzg2ODRiNWNiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtl
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC00LDYgKzQsNyBAQCBs
aXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGdvYmplY3QvR1JlZlB0ci5jcHAKIAogICAgIGd0
ay9NYWluVGhyZWFkR3RrLmNwcAorICAgIGd0ay9SdW5Mb29wR3RrLmNwcAogKQogCiBsaXN0KEFQ
UEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdp
bkNFLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1XaW5DRS5jbWFrZQppbmRleCA2YTkx
YzUwYzFiN2NmNDJkZWMzOWE3MTg4NjQ4ZTgwNmQ3ZDExZDg2Li5iZmVlMjZjMDFhM2E1NTQyZDJi
NDJmMWFiMDkxNzNiZGVmYmI3OWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVdpbkNFLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luQ0UuY21ha2UKQEAg
LTIsNiArMiw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdGhyZWFkcy93aW4vQmlu
YXJ5U2VtYXBob3JlV2luLmNwcAogCiAgICAgd2luL01haW5UaHJlYWRXaW4uY3BwCisgICAgd2lu
L1J1bkxvb3BXaW4uY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzhmYjljODBlZDc3YmI5YjRlODBlYzc1ZDEwNDQ2Njc3N2UyNDM4Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCkBAIC0wLDAgKzEs
MTMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxv
b3AuaCIKKworI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvVGhy
ZWFkU3BlY2lmaWMuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiAhUExBVEZPUk0oTUFDKQor
dm9pZCBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wKCkKK3sK
K30KKyNlbmRpZgorCitzdGF0aWMgUnVuTG9vcCogc19tYWluUnVuTG9vcDsKKworLy8gSGVscGVy
IGNsYXNzIGZvciBUaHJlYWRTcGVjaWZpY0RhdGEuCitjbGFzcyBSdW5Mb29wOjpIb2xkZXIgewor
cHVibGljOgorICAgIEhvbGRlcigpCisgICAgICAgIDogbV9ydW5Mb29wKGFkb3B0UmVmKG5ldyBS
dW5Mb29wKSkKKyAgICB7CisgICAgfQorCisgICAgUnVuTG9vcCogcnVuTG9vcCgpIGNvbnN0IHsg
cmV0dXJuIG1fcnVuTG9vcC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxSdW5Mb29w
PiBtX3J1bkxvb3A7Cit9OworCit2b2lkIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
Cit7CisgICAgaWYgKHNfbWFpblJ1bkxvb3ApCisgICAgICAgIHJldHVybjsKKyAgICBzX21haW5S
dW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworfQorCitSdW5Mb29wKiBSdW5Mb29wOjpjdXJy
ZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVu
TG9vcDo6SG9sZGVyPiwgcnVuTG9vcEhvbGRlciwgKCkpOworICAgIHJldHVybiBydW5Mb29wSG9s
ZGVyLT5ydW5Mb29wKCk7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6Om1haW4oKQoreworICAgIEFT
U0VSVChzX21haW5SdW5Mb29wKTsKKyAgICByZXR1cm4gc19tYWluUnVuTG9vcDsKK30KKwordm9p
ZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCit7CisgICAgLy8gSXQgaXMgaW1wb3J0YW50IHRvIGhh
bmRsZSB0aGUgZnVuY3Rpb25zIGluIHRoZSBxdWV1ZSBvbmUgYXQgYSB0aW1lIGJlY2F1c2Ugd2hp
bGUgaW5zaWRlIG9uZSBvZiB0aGVzZQorICAgIC8vIGZ1bmN0aW9ucyB3ZSBtaWdodCByZS1lbnRl
ciBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGFuZCB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gcGljayB1
cCB3aGVyZSB3ZSBsZWZ0IG9mZi4KKyAgICAvLyBTZWUgaHR0cDovL3dlYmtpdC5vcmcvYi84OTU5
MCBmb3IgbW9yZSBkaXNjdXNzaW9uLgorCisgICAgLy8gT25lIHBvc3NpYmxlIHNjZW5hcmlvIHdo
ZW4gaGFuZGxpbmcgdGhlIGZ1bmN0aW9uIHF1ZXVlIGlzIGFzIGZvbGxvd3M6CisgICAgLy8gLSBS
dW5Mb29wOjpwZXJmb3JtV29yaygpIGlzIGludm9rZWQgd2l0aCAxIGZ1bmN0aW9uIG9uIHRoZSBx
dWV1ZQorICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBmdW5jdGlvbiByZXN1bHRzIGluIDEgbW9yZSBm
dW5jdGlvbiBiZWluZyBlbnF1ZXVlZAorICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBvbmUgcmVzdWx0
cyBpbiB5ZXQgYW5vdGhlciBiZWluZyBlbnF1ZXVlZAorICAgIC8vIC0gQW5kIHNvIG9uCisgICAg
Ly8KKyAgICAvLyBJbiB0aGlzIHNpdHVhdGlvbiBvbmUgaW52b2NhdGlvbiBvZiBwZXJmb3JtV29y
aygpIG5ldmVyIHJldHVybnMgc28gYWxsIG90aGVyIGV2ZW50IHNvdXJjZXMgYXJlIGJsb2NrZWQu
CisgICAgLy8gQnkgb25seSBoYW5kbGluZyB1cCB0byB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucyB0
aGF0IHdlcmUgaW4gdGhlIHF1ZXVlIHdoZW4gcGVyZm9ybVdvcmsoKSBpcyBjYWxsZWQKKyAgICAv
LyB3ZSBndWFyYW50ZWUgdG8gb2NjYXNpb25hbGx5IHJldHVybiBmcm9tIHRoZSBydW4gbG9vcCBz
byBvdGhlciBldmVudCBzb3VyY2VzIHdpbGwgYmUgYWxsb3dlZCB0byBzcGluLgorCisgICAgRnVu
Y3Rpb248dm9pZCgpPiBmdW5jdGlvbjsKKyAgICBzaXplX3QgZnVuY3Rpb25zVG9IYW5kbGUgPSAw
OworCisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9j
ayk7CisgICAgICAgIGZ1bmN0aW9uc1RvSGFuZGxlID0gbV9mdW5jdGlvblF1ZXVlLnNpemUoKTsK
KworICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBmdW5jdGlvbiA9IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbigpOworCisgICAgZm9yIChzaXplX3QgZnVuY3Rpb25zSGFu
ZGxlZCA9IDE7IGZ1bmN0aW9uc0hhbmRsZWQgPCBmdW5jdGlvbnNUb0hhbmRsZTsgKytmdW5jdGlv
bnNIYW5kbGVkKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2Z1bmN0aW9uUXVldWVMb2NrKTsKKworICAgICAgICAgICAgLy8gRXZlbiBpZiB3ZSBzdGFydCBv
ZmYgd2l0aCBOIGZ1bmN0aW9ucyB0byBoYW5kbGUgYW5kIHdlJ3ZlIG9ubHkgaGFuZGxlZCBsZXNz
IHRoYW4gTiBmdW5jdGlvbnMsIHRoZSBxdWV1ZQorICAgICAgICAgICAgLy8gc3RpbGwgbWlnaHQg
YmUgZW1wdHkgYmVjYXVzZSB0aG9zZSBmdW5jdGlvbnMgbWlnaHQgaGF2ZSBiZWVuIGhhbmRsZWQg
aW4gYW4gaW5uZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKS4KKyAgICAgICAgICAgIC8vIEluIHRo
YXQgY2FzZSB3ZSBzaG91bGQgYmFpbCBoZXJlLgorICAgICAgICAgICAgaWYgKG1fZnVuY3Rpb25R
dWV1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGZ1
bmN0aW9uID0gbV9mdW5jdGlvblF1ZXVlLnRha2VGaXJzdCgpOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBmdW5jdGlvbigpOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpkaXNwYXRj
aChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAgICBNdXRleExvY2tlciBs
b2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7CisgICAgbV9mdW5jdGlvblF1ZXVlLmFwcGVuZChm
dW5jdGlvbik7CisKKyAgICB3YWtlVXAoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29w
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGI0ZjFhMzhmOWY2NDI4NGYyZjExN2VmNGVlNWM0YjQxZDU2MzhjZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAtMCwwICsxLDE4
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3Jv
bGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgUnVuTG9vcF9oCisjZGVmaW5lIFJ1bkxvb3BfaAorCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb25EaXNwYXRj
aGVyLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5n
Lmg+CisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5o
PgorI2VuZGlmCisKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8RWNvcmUuaD4KKyNlbmRp
ZgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlvbkRp
c3BhdGNoZXIgeworcHVibGljOgorICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4g
dGhyZWFkIChleGNlcHQgZm9yIHRoZSBNYWMgcGxhdGZvcm0sIHdoZXJlIGl0CisgICAgLy8gY2Fu
IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQpLgorICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0
aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAgIC8vIE11c3QgYmUgY2FsbGVk
IGJlZm9yZSBlbnRlcmluZyBtYWluIHJ1biBsb29wLiBJZiBjYWxsZWQsIGFwcGxpY2F0aW9uIHN0
eWxlIHJ1biBsb29wIHdpbGwgYmUgdXNlZCwgaGFuZGxpbmcgZXZlbnRzLgorICAgIFdURl9FWFBP
UlRfUFJJVkFURSBzdGF0aWMgdm9pZCBzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5M
b29wKCk7CisKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJ1bkxvb3AqIGN1cnJlbnQo
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJ1bkxvb3AqIG1haW4oKTsKKyAgICB+
UnVuTG9vcCgpOworCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JikgT1ZFUlJJREU7CisKKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIHZvaWQgcnVuKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3Rv
cCgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdha2VVcCgpOworCisjaWYgUExBVEZP
Uk0oTUFDKQorICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJ1bkZvckR1cmF0aW9uKGRvdWJs
ZSBkdXJhdGlvbik7CisjZW5kaWYKKworICAgIGNsYXNzIFRpbWVyQmFzZSB7CisgICAgICAgIGZy
aWVuZCBjbGFzcyBSdW5Mb29wOworICAgIHB1YmxpYzoKKyAgICAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFRpbWVyQmFzZShSdW5Mb29wKik7CisgICAgICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2aXJ0dWFsIH5UaW1lckJhc2UoKTsKKworICAgICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5n
KGRvdWJsZSByZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1ZSk7IH0K
KyAgICAgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0KGludGVy
dmFsLCBmYWxzZSk7IH0KKworICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdG9wKCk7
CisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzQWN0aXZlKCkgY29uc3Q7CisKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOworCisgICAgcHJpdmF0ZToKKyAgICAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJv
b2wgcmVwZWF0KTsKKworICAgICAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisKKyNpZiBQTEFURk9S
TShXSU4pCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90
IElEKTsKKyAgICAgICAgdWludDY0X3QgbV9JRDsKKyAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5n
OworI2VsaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENG
UnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CisgICAgICAgIFJldGFpblB0cjxDRlJ1bkxvb3BUaW1l
clJlZj4gbV90aW1lcjsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgICAgICBzdGF0aWMgdm9pZCB0
aW1lckZpcmVkKFJ1bkxvb3AqLCBpbnQgSUQpOworICAgICAgICBpbnQgbV9JRDsKKyAgICAgICAg
Ym9vbCBtX2lzUmVwZWF0aW5nOworI2VsaWYgUExBVEZPUk0oR1RLKQorICAgICAgICBzdGF0aWMg
Z2Jvb2xlYW4gdGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOworICAgICAg
ICBnYm9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRpbmc7IH0K
KyAgICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7CisgICAgICAgIEdSZWZQdHI8R1NvdXJj
ZT4gbV90aW1lclNvdXJjZTsKKyAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsKKyNlbGlm
IFBMQVRGT1JNKEVGTCkKKyAgICAgICAgc3RhdGljIGJvb2wgdGltZXJGaXJlZCh2b2lkKiBkYXRh
KTsKKyAgICAgICAgRWNvcmVfVGltZXIqIG1fdGltZXI7CisgICAgICAgIGJvb2wgbV9pc1JlcGVh
dGluZzsKKyNlbmRpZgorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJl
ZENsYXNzPgorICAgIGNsYXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7CisgICAgcHVibGlj
OgorICAgICAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5j
dGlvbikoKTsKKworICAgICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xh
c3MqIG8sIFRpbWVyRmlyZWRGdW5jdGlvbiBmKQorICAgICAgICAgICAgOiBUaW1lckJhc2UocnVu
TG9vcCkKKyAgICAgICAgICAgICwgbV9vYmplY3QobykKKyAgICAgICAgICAgICwgbV9mdW5jdGlv
bihmKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1
YWwgdm9pZCBmaXJlZCgpIHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQorCisgICAgICAg
IFRpbWVyRmlyZWRDbGFzcyogbV9vYmplY3Q7CisgICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBt
X2Z1bmN0aW9uOworICAgIH07CisKKyAgICBjbGFzcyBIb2xkZXI7CisKK3ByaXZhdGU6CisgICAg
UnVuTG9vcCgpOworCisgICAgdm9pZCBwZXJmb3JtV29yaygpOworCisgICAgTXV0ZXggbV9mdW5j
dGlvblF1ZXVlTG9jazsKKyAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+ID4gbV9mdW5jdGlvblF1
ZXVlOworCisjaWYgUExBVEZPUk0oV0lOKQorICAgIHN0YXRpYyBib29sIHJlZ2lzdGVyUnVuTG9v
cE1lc3NhZ2VXaW5kb3dDbGFzcygpOworICAgIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFJ1bkxv
b3BXbmRQcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKKyAgICBMUkVTVUxUIHduZFBy
b2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0p
OworICAgIEhXTkQgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdzsKKworICAgIHR5cGVkZWYgSGFzaE1h
cDx1aW50NjRfdCwgVGltZXJCYXNlKj4gVGltZXJNYXA7CisgICAgVGltZXJNYXAgbV9hY3RpdmVU
aW1lcnM7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIHZvaWQgcGVyZm9ybVdvcmso
dm9pZCopOworICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fcnVuTG9vcDsKKyAgICBSZXRh
aW5QdHI8Q0ZSdW5Mb29wU291cmNlUmVmPiBtX3J1bkxvb3BTb3VyY2U7CisgICAgaW50IG1fbmVz
dGluZ0xldmVsOworI2VsaWYgUExBVEZPUk0oUVQpCisgICAgdHlwZWRlZiBIYXNoTWFwPGludCwg
VGltZXJCYXNlKj4gVGltZXJNYXA7CisgICAgVGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7CisgICAg
Y2xhc3MgVGltZXJPYmplY3Q7CisgICAgVGltZXJPYmplY3QqIG1fdGltZXJPYmplY3Q7CisjZWxp
ZiBQTEFURk9STShHVEspCitwdWJsaWM6CisgICAgc3RhdGljIGdib29sZWFuIHF1ZXVlV29yayhS
dW5Mb29wKik7CisgICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wKCk7CisgICAgdm9pZCBwdXNo
TmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKik7CisgICAgdm9pZCBwb3BOZXN0ZWRNYWluTG9vcCgp
OworcHJpdmF0ZToKKyAgICBHUmVmUHRyPEdNYWluQ29udGV4dD4gbV9ydW5Mb29wQ29udGV4dDsK
KyAgICBWZWN0b3I8R1JlZlB0cjxHTWFpbkxvb3A+ID4gbV9ydW5Mb29wTWFpbkxvb3BzOworI2Vs
aWYgUExBVEZPUk0oRUZMKQorICAgIGJvb2wgbV9pbml0RWZsOworCisgICAgTXV0ZXggbV9waXBl
TG9jazsKKyAgICBPd25QdHI8RWNvcmVfUGlwZT4gbV9waXBlOworCisgICAgTXV0ZXggbV93YWtl
VXBFdmVudFJlcXVlc3RlZExvY2s7CisgICAgYm9vbCBtX3dha2VVcEV2ZW50UmVxdWVzdGVkOwor
CisgICAgc3RhdGljIHZvaWQgd2FrZVVwRXZlbnQodm9pZCogZGF0YSwgdm9pZCosIHVuc2lnbmVk
IGludCk7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlJ1
bkxvb3A7CisKKyNlbmRpZiAvLyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1dpbmRvd3NFeHRyYXMuaCBiL1NvdXJjZS9XVEYvd3RmL1dpbmRvd3NFeHRyYXMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZmM2YjIwMWMzMzU5M2NmOGVjNmQ0MzAzNzg3NTdlYTIzZWM0OWEwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvV2luZG93c0V4dHJhcy5oCkBAIC0wLDAgKzEsNzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJv
Z2EuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2luZG93c0V4dHJhc19oCisjZGVmaW5lIFdpbmRvd3NFeHRyYXNfaAorCisj
aW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPG9iamJhc2UuaD4KKyNpbmNsdWRlIDxzaGx3
YXBpLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisjaWZuZGVmIEhXTkRfTUVTU0FHRQorY29uc3Qg
SFdORCBIV05EX01FU1NBR0UgPSAwOworI2VuZGlmCisKK2lubGluZSBIUkVTVUxUIGdldFJlZ2lz
dHJ5VmFsdWUoSEtFWSBoa2V5LCBMUENXU1RSIHBzelN1YktleSwgTFBDV1NUUiBwc3pWYWx1ZSwg
TFBEV09SRCBwZHdUeXBlLCBMUFZPSUQgcHZEYXRhLCBMUERXT1JEIHBjYkRhdGEpCit7CisjaWYg
T1MoV0lOQ0UpCisgICAgSEtFWSBrZXk7CisgICAgaWYgKDo6UmVnT3BlbktleUV4Vyhoa2V5LCBw
c3pTdWJLZXksIDAsIDAsICZrZXkpICE9IEVSUk9SX1NVQ0NFU1MpCisgICAgICAgIHJldHVybiBF
UlJPUl9JTlZBTElEX05BTUU7CisgICAgSFJFU1VMVCByZXN1bHQgPSA6OlJlZ1F1ZXJ5VmFsdWVF
eFcoa2V5LCBwc3pWYWx1ZSwgMCwgcGR3VHlwZSwgc3RhdGljX2Nhc3Q8TFBCWVRFPihwdkRhdGEp
LCBwY2JEYXRhKTsKKyAgICA6OlJlZ0Nsb3NlS2V5KGtleSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
KyNlbHNlCisgICAgcmV0dXJuIDo6U0hHZXRWYWx1ZVcoaGtleSwgcHN6U3ViS2V5LCBwc3pWYWx1
ZSwgcGR3VHlwZSwgcHZEYXRhLCBwY2JEYXRhKTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCog
Z2V0V2luZG93UG9pbnRlcihIV05EIGhXbmQsIGludCBpbmRleCkKK3sKKyNpZiBPUyhXSU5DRSkK
KyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oOjpHZXRXaW5kb3dMb25nKGhXbmQs
IGluZGV4KSk7CisjZWxzZQorICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPig6Okdl
dFdpbmRvd0xvbmdQdHIoaFduZCwgaW5kZXgpKTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCog
c2V0V2luZG93UG9pbnRlcihIV05EIGhXbmQsIGludCBpbmRleCwgdm9pZCogdmFsdWUpCit7Cisj
aWYgT1MoV0lOQ0UpCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDo6U2V0V2lu
ZG93TG9uZyhoV25kLCBpbmRleCwgcmVpbnRlcnByZXRfY2FzdDxMT05HPih2YWx1ZSkpKTsKKyNl
bHNlCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDo6U2V0V2luZG93TG9uZ1B0
cihoV25kLCBpbmRleCwgcmVpbnRlcnByZXRfY2FzdDxMT05HX1BUUj4odmFsdWUpKSk7CisjZW5k
aWYKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6Z2V0UmVnaXN0cnlWYWx1
ZTsKK3VzaW5nIFdURjo6Z2V0V2luZG93UG9pbnRlcjsKK3VzaW5nIFdURjo6c2V0V2luZG93UG9p
bnRlcjsKKworI2VuZGlmIC8vIFdpbmRvd3NFeHRyYXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9i
bGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmI4NmI1YjUxMTg1
MTc3MDQyNWY0ZDkyOGYzZGY4NWRmMWRlNDZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKQEAgLTAsMCArMSw0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgor
CituYW1lc3BhY2UgV1RGIHsKKworUnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Vm
bC9SdW5Mb29wRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9SdW5Mb29wRWZsLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYzA5N2Y4NmFmNzI4ZjVmOGJlMWQzYmJhZDE0M2QyYzA1MWNlNjUyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3BwCkBAIC0wLDAgKzEs
MTM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0
ZW1zLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCitzdGF0aWMgY29uc3QgaW50
IGVjb3JlUGlwZU1lc3NhZ2VTaXplID0gMTsKK3N0YXRpYyBjb25zdCBjaGFyIHdha3VwRWNvcmVQ
aXBlTWVzc2FnZVtdID0gIlciOworCituYW1lc3BhY2UgV1RGIHsKKworUnVuTG9vcDo6UnVuTG9v
cCgpCisgICAgOiBtX2luaXRFZmwoZmFsc2UpCisgICAgLCBtX3dha2VVcEV2ZW50UmVxdWVzdGVk
KGZhbHNlKQoreworICAgIG1fcGlwZSA9IGFkb3B0UHRyKGVjb3JlX3BpcGVfYWRkKHdha2VVcEV2
ZW50LCB0aGlzKSk7CisgICAgbV9pbml0RWZsID0gdHJ1ZTsKK30KKworUnVuTG9vcDo6flJ1bkxv
b3AoKQoreworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7CisgICAgZWNvcmVfbWFpbl9sb29w
X2JlZ2luKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgZWNvcmVfbWFpbl9s
b29wX3F1aXQoKTsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXBFdmVudCh2b2lkKiBkYXRhLCB2
b2lkKiwgdW5zaWduZWQgaW50KQoreworICAgIFJ1bkxvb3AqIGxvb3AgPSBzdGF0aWNfY2FzdDxS
dW5Mb29wKj4oZGF0YSk7CisKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihsb29w
LT5tX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jayk7CisgICAgICAgIGxvb3AtPm1fd2FrZVVwRXZl
bnRSZXF1ZXN0ZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBsb29wLT5wZXJmb3JtV29yaygpOwor
fQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgeworICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2spOworICAgICAgICBpZiAobV93YWtl
VXBFdmVudFJlcXVlc3RlZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV93YWtlVXBF
dmVudFJlcXVlc3RlZCA9IHRydWU7CisgICAgfQorCisgICAgeworICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9waXBlTG9jayk7CisgICAgICAgIGVjb3JlX3BpcGVfd3JpdGUobV9waXBlLmdl
dCgpLCB3YWt1cEVjb3JlUGlwZU1lc3NhZ2UsIGVjb3JlUGlwZU1lc3NhZ2VTaXplKTsKKyAgICB9
Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqKQorICAgIDogbV90
aW1lcigwKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKK3sKK30KKworUnVuTG9vcDo6VGlt
ZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK2Jvb2wgUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKHZvaWQqIGRhdGEpCit7CisgICAgUnVuTG9vcDo6VGltZXJC
YXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFJ1bkxvb3A6OlRpbWVyQmFzZSo+KGRhdGEpOworCisg
ICAgdGltZXItPmZpcmVkKCk7CisKKyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7Cisg
ICAgICAgIHRpbWVyLT5tX3RpbWVyID0gMDsKKyAgICAgICAgcmV0dXJuIEVDT1JFX0NBTExCQUNL
X0NBTkNFTDsKKyAgICB9CisKKyAgICByZXR1cm4gRUNPUkVfQ0FMTEJBQ0tfUkVORVc7Cit9CisK
K3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwg
Ym9vbCByZXBlYXQpCit7CisgICAgaWYgKGlzQWN0aXZlKCkpCisgICAgICAgIHN0b3AoKTsKKwor
ICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgQVNTRVJUKCFtX3RpbWVyKTsKKyAgICBt
X3RpbWVyID0gZWNvcmVfdGltZXJfYWRkKG5leHRGaXJlSW50ZXJ2YWwsIHJlaW50ZXJwcmV0X2Nh
c3Q8RWNvcmVfVGFza19DYj4odGltZXJGaXJlZCksIHRoaXMpOworfQorCit2b2lkIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKG1fdGltZXIpIHsKKyAgICAgICAgZWNvcmVf
dGltZXJfZGVsKG1fdGltZXIpOworICAgICAgICBtX3RpbWVyID0gMDsKKyAgICB9Cit9CisKK2Jv
b2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICht
X3RpbWVyKSA/IHRydWUgOiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9ndGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9n
dGsvUnVuTG9vcEd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M1OTU2Nzc2Yzk2MGY3NzA3ZjAyNDk3NWNh
ZGQ0N2Y1ZTVmYTczNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2d0ay9SdW5M
b29wR3RrLmNwcApAQCAtMCwwICsxLDE2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNs
dWRlIDxnbGliLmg+CisKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2Ug
V1RGIHsKKworUnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAgLy8gZ19tYWluX2NvbnRleHRfZGVm
YXVsdCgpIGRvZXNuJ3QgYWRkIGFuIGV4dHJhIHJlZmVyZW5jZS4KKyAgICBtX3J1bkxvb3BDb250
ZXh0ID0gaXNNYWluVGhyZWFkKCkgPyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgOiBhZG9wdEdS
ZWYoZ19tYWluX2NvbnRleHRfbmV3KCkpOworICAgIEFTU0VSVChtX3J1bkxvb3BDb250ZXh0KTsK
KyAgICBHUmVmUHRyPEdNYWluTG9vcD4gaW5uZXJtb3N0TG9vcCA9IGFkb3B0R1JlZihnX21haW5f
bG9vcF9uZXcobV9ydW5Mb29wQ29udGV4dC5nZXQoKSwgRkFMU0UpKTsKKyAgICBBU1NFUlQoaW5u
ZXJtb3N0TG9vcCk7CisgICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChpbm5lcm1vc3RMb29w
KTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIGZvciAoaW50IGkgPSBtX3J1bkxv
b3BNYWluTG9vcHMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgaWYgKCFnX21h
aW5fbG9vcF9pc19ydW5uaW5nKG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluTG9v
cHNbaV0uZ2V0KCkpOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAgIFJ1
bkxvb3AqIG1haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworICAgIEdNYWluTG9vcCog
aW5uZXJtb3N0TG9vcCA9IG1haW5SdW5Mb29wLT5pbm5lcm1vc3RMb29wKCk7CisgICAgaWYgKCFn
X21haW5fbG9vcF9pc19ydW5uaW5nKGlubmVybW9zdExvb3ApKSB7CisgICAgICAgIGdfbWFpbl9s
b29wX3J1bihpbm5lcm1vc3RMb29wKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8v
IENyZWF0ZSBhbmQgcnVuIGEgbmVzdGVkIGxvb3AgaWYgdGhlIGlubmVybW9zdCBvbmUgd2FzIGFs
cmVhZHkgcnVubmluZy4KKyAgICBHTWFpbkxvb3AqIG5lc3RlZE1haW5Mb29wID0gZ19tYWluX2xv
b3BfbmV3KDAsIEZBTFNFKTsKKyAgICBtYWluUnVuTG9vcC0+cHVzaE5lc3RlZE1haW5Mb29wKG5l
c3RlZE1haW5Mb29wKTsKKyAgICBnX21haW5fbG9vcF9ydW4obmVzdGVkTWFpbkxvb3ApOworICAg
IG1haW5SdW5Mb29wLT5wb3BOZXN0ZWRNYWluTG9vcCgpOworfQorCitHTWFpbkxvb3AqIFJ1bkxv
b3A6OmlubmVybW9zdExvb3AoKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNo
b3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNF
bXB0eSgpKTsKKyAgICByZXR1cm4gbV9ydW5Mb29wTWFpbkxvb3BzWzBdLmdldCgpOworfQorCit2
b2lkIFJ1bkxvb3A6OnB1c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxvb3AqIG5lc3RlZExvb3ApCit7
CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4K
KyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOworICAgIG1fcnVuTG9v
cE1haW5Mb29wcy5hcHBlbmQoYWRvcHRHUmVmKG5lc3RlZExvb3ApKTsKK30KKwordm9pZCBSdW5M
b29wOjpwb3BOZXN0ZWRNYWluTG9vcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxv
b3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29w
cy5pc0VtcHR5KCkpOworICAgIG1fcnVuTG9vcE1haW5Mb29wcy5yZW1vdmVMYXN0KCk7Cit9CisK
K3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Ag
c2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5p
c0VtcHR5KCkpOworICAgIEdSZWZQdHI8R01haW5Mb29wPiBsYXN0TWFpbkxvb3AgPSBtX3J1bkxv
b3BNYWluTG9vcHMubGFzdCgpOworICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKGxhc3RN
YWluTG9vcC5nZXQoKSkpCisgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobGFzdE1haW5Mb29wLmdl
dCgpKTsKK30KKworZ2Jvb2xlYW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3Ap
Cit7CisgICAgcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisK
K3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9
IGFkb3B0R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKKyAgICBnX3NvdXJjZV9zZXRfcHJpb3Jp
dHkoc291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0RFRkFVTFQpOworICAgIGdfc291cmNlX3NldF9j
YWxsYmFjayhzb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5M
b29wOjpxdWV1ZVdvcmspLCB0aGlzLCAwKTsKKyAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdl
dCgpLCBtX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKKworICAgIGdfbWFpbl9jb250ZXh0X3dha2V1
cChtX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1l
ckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQorICAgICwg
bV90aW1lclNvdXJjZSgwKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2Uo
KQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGlt
ZXJTb3VyY2UoKQoreworICAgIG1fdGltZXJTb3VyY2UgPSAwOworfQorCitnYm9vbGVhbiBSdW5M
b29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRp
bWVyKQoreworICAgIEdTb3VyY2UqIGN1cnJlbnRUaW1lclNvdXJjZSA9IHRpbWVyLT5tX3RpbWVy
U291cmNlLmdldCgpOworICAgIGJvb2wgaXNSZXBlYXRpbmcgPSB0aW1lci0+aXNSZXBlYXRpbmco
KTsKKyAgICAvLyBUaGlzIGNhbiBjaGFuZ2UgdGhlIHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5nIGEg
bmV3IHRpbWVyIHdpdGhpbiB0aGUgY2FsbGJhY2suCisgICAgdGltZXItPmZpcmVkKCk7CisgICAg
aWYgKCFpc1JlcGVhdGluZyAmJiBjdXJyZW50VGltZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJT
b3VyY2UuZ2V0KCkpCisgICAgICAgIHRpbWVyLT5jbGVhclRpbWVyU291cmNlKCk7CisgICAgcmV0
dXJuIGlzUmVwZWF0aW5nOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91
YmxlIGZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgaWYgKG1fdGltZXJTb3VyY2Up
CisgICAgICAgIHN0b3AoKTsKKworICAgIG1fdGltZXJTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1l
b3V0X3NvdXJjZV9uZXcoc3RhdGljX2Nhc3Q8Z3VpbnQ+KGZpcmVJbnRlcnZhbCAqIDEwMDApKSk7
CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2so
bV90aW1lclNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxv
b3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKSwgdGhpcywgMCk7CisgICAgZ19zb3Vy
Y2VfYXR0YWNoKG1fdGltZXJTb3VyY2UuZ2V0KCksIG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4
dC5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBp
ZiAoIW1fdGltZXJTb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGdfc291cmNlX2Rlc3Ry
b3kobV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgY2xlYXJUaW1lclNvdXJjZSgpOworfQorCiti
b29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBt
X3RpbWVyU291cmNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL21hYy9SdW5Mb29wTWFjLm1tIGIvU291cmNlL1dURi93dGYvbWFjL1J1bkxvb3BN
YWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzUzYjAyZGZmMWIwZDE4N2RlOWI2NWQzNDQyMzQ0ZDQ5M2IxODNi
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL21hYy9SdW5Mb29wTWFjLm1tCkBA
IC0wLDAgKzEsMTYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJSdW5Mb29wLmgiCisKKyNpbXBvcnQgIkF1dG9kcmFpbmVkUG9vbC5oIgorI2lmICFQ
TEFURk9STShJT1MpCisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CisjZW5kaWYKKworbmFtZXNw
YWNlIFdURiB7CisKK3N0YXRpYyBib29sIHNfdXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVu
TG9vcDsKKwordm9pZCBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5M
b29wKCkKK3sKKyAgICBzX3VzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3AgPSB0cnVl
OworfQorCit2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKHZvaWQqIGNvbnRleHQpCit7CisgICAg
QXV0b2RyYWluZWRQb29sIHBvb2w7CisgICAgc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQp
LT5wZXJmb3JtV29yaygpOworfQorCitSdW5Mb29wOjpSdW5Mb29wKCkKKyAgICA6IG1fcnVuTG9v
cChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpCisgICAgLCBtX25lc3RpbmdMZXZlbCgwKQoreworICAg
IENGUnVuTG9vcFNvdXJjZUNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsKKyAgICBtX3J1bkxvb3BTb3VyY2UgPSBhZG9wdENGKENG
UnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAmY29udGV4dCkpOwor
ICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1fcnVuTG9vcFNvdXJjZS5n
ZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQor
eworICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRhdGUobV9ydW5Mb29wU291cmNlLmdldCgpKTsK
K30KKwordm9pZCBSdW5Mb29wOjpydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCit7Cisg
ICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwgZHVyYXRpb24sIHRy
dWUpOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgQ0ZSdW5Mb29wU291cmNl
U2lnbmFsKG1fcnVuTG9vcFNvdXJjZS5nZXQoKSk7CisgICAgQ0ZSdW5Mb29wV2FrZVVwKG1fcnVu
TG9vcC5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBjdXJyZW50KCkt
Pm1fbmVzdGluZ0xldmVsKys7CisKKyNpZiAhUExBVEZPUk0oSU9TKQorICAgIGlmIChjdXJyZW50
KCkgPT0gbWFpbigpICYmIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwgPT0gMSAmJiBzX3VzZUFw
cGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3ApIHsKKyAgICAgICAgLy8gVXNlIC1bTlNBcHBs
aWNhdGlvbiBydW5dIGZvciB0aGUgbWFpbiBydW4gbG9vcC4KKyAgICAgICAgW05TQXBwIHJ1bl07
CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICB7CisgICAgICAgIEF1dG9kcmFpbmVkUG9vbCBwb29s
OworICAgICAgICBDRlJ1bkxvb3BSdW4oKTsKKyAgICB9CisKKyAgICBjdXJyZW50KCktPm1fbmVz
dGluZ0xldmVsLS07Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgQVNTRVJUKG1f
cnVuTG9vcCA9PSBDRlJ1bkxvb3BHZXRDdXJyZW50KCkpOworCisjaWYgIVBMQVRGT1JNKElPUykK
KyAgICAvLyBOZXN0aW5nIGxldmVsIGNhbiBiZSAwIGlmIHRoZSBydW4gbG9vcCBpcyBzdGFydGVk
IGV4dGVybmFsbHkgKHN1Y2ggYXMgdGhlIGNhc2UgZm9yIFhQQyBzZXJ2aWNlcykuCisgICAgaWYg
KG1fcnVuTG9vcCA9PSBtYWluKCktPm1fcnVuTG9vcCAmJiBtX25lc3RpbmdMZXZlbCA8PSAxICYm
IHNfdXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCkgeworICAgICAgICBBU1NFUlQo
W05TQXBwIGlzUnVubmluZ10pOworICAgICAgICBbTlNBcHAgc3RvcDpuaWxdOworICAgICAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0aW9u
RGVmaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh
dGlvbjpOU01ha2VQb2ludCgwLCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbW9kaWZpZXJGbGFnczowCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOjAuMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3aW5kb3dOdW1iZXI6MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGV4dDpuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN1YnR5cGU6IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0YTE6MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkYXRhMjowXTsKKyAgICAgICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBh
dFN0YXJ0OnRydWVdOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgICAgIENGUnVuTG9vcFN0b3Ao
bV9ydW5Mb29wLmdldCgpKTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwordm9pZCBSdW5Mb29w
OjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqIGNvbnRleHQp
Cit7CisgICAgVGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFRpbWVyQmFzZSo+KGNvbnRl
eHQpOworCisgICAgQXV0b2RyYWluZWRQb29sIHBvb2w7CisgICAgdGltZXItPmZpcmVkKCk7Cit9
CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAg
OiBtX3J1bkxvb3AocnVuTG9vcCkKK3sKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJC
YXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFy
dChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgaWYgKG1fdGlt
ZXIpCisgICAgICAgIHN0b3AoKTsKKworICAgIENGUnVuTG9vcFRpbWVyQ29udGV4dCBjb250ZXh0
ID0geyAwLCB0aGlzLCAwLCAwLCAwIH07CisgICAgQ0ZUaW1lSW50ZXJ2YWwgcmVwZWF0SW50ZXJ2
YWwgPSByZXBlYXQgPyBuZXh0RmlyZUludGVydmFsIDogMDsKKyAgICBtX3RpbWVyID0gYWRvcHRD
RihDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGlt
ZUdldEN1cnJlbnQoKSArIG5leHRGaXJlSW50ZXJ2YWwsIHJlcGVhdEludGVydmFsLCAwLCAwLCB0
aW1lckZpcmVkLCAmY29udGV4dCkpOworICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC0+
bV9ydW5Mb29wLmdldCgpLCBtX3RpbWVyLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwor
fQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX3RpbWVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBDRlJ1bkxvb3BUaW1lckludmFsaWRhdGUobV90aW1l
ci5nZXQoKSk7CisgICAgbV90aW1lciA9IG51bGxwdHI7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGlt
ZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5M
b29wVGltZXJJc1ZhbGlkKG1fdGltZXIuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3F0L1J1bkxvb3BRdC5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9xdC9SdW5Mb29wUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1YjM1OWFjMjYzYWFmNmE5Njk3MmYw
NWFlMDUwYWUzMGE3ZGY0NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9xdC9S
dW5Mb29wUXQuY3BwCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPFFB
YnN0cmFjdEV2ZW50RGlzcGF0Y2hlcj4KKyNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgorI2lu
Y2x1ZGUgPFFNZXRhTWV0aG9kPgorI2luY2x1ZGUgPFFNZXRhT2JqZWN0PgorI2luY2x1ZGUgPFFP
YmplY3Q+CisjaW5jbHVkZSA8UVRpbWVyRXZlbnQ+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFz
cyBSdW5Mb29wOjpUaW1lck9iamVjdCA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAor
cHVibGljOgorICAgIFRpbWVyT2JqZWN0KFJ1bkxvb3AqIHJ1bkxvb3ApIDogbV9ydW5Mb29wKHJ1
bkxvb3ApCisgICAgeworICAgICAgICBpbnQgbWV0aG9kSW5kZXggPSBtZXRhT2JqZWN0KCktPmlu
ZGV4T2ZNZXRob2QoInBlcmZvcm1Xb3JrKCkiKTsKKyAgICAgICAgbV9tZXRob2QgPSBtZXRhT2Jq
ZWN0KCktPm1ldGhvZChtZXRob2RJbmRleCk7CisgICAgfQorCisgICAgUV9TTE9UIHZvaWQgcGVy
Zm9ybVdvcmsoKSB7IG1fcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsgfQorICAgIGlubGluZSB2b2lk
IHdha2VVcCgpIHsgbV9tZXRob2QuaW52b2tlKHRoaXMsIFF0OjpRdWV1ZWRDb25uZWN0aW9uKTsg
fQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQq
IGV2ZW50KQorICAgIHsKKyAgICAgICAgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKG1f
cnVuTG9vcCwgZXZlbnQtPnRpbWVySWQoKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFJ1bkxv
b3AqIG1fcnVuTG9vcDsKKyAgICBRTWV0YU1ldGhvZCBtX21ldGhvZDsKK307CisKK3N0YXRpYyBR
RXZlbnRMb29wKiBjdXJyZW50RXZlbnRMb29wOworCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7Cisg
ICAgc3RhdGljIGJvb2wgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZhbHNlOworICAgIGlmICgh
bWFpbkV2ZW50TG9vcElzUnVubmluZykgeworICAgICAgICBtYWluRXZlbnRMb29wSXNSdW5uaW5n
ID0gdHJ1ZTsKKyAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhlYygpOworICAgICAgICBtYWlu
RXZlbnRMb29wSXNSdW5uaW5nID0gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgUUV2ZW50
TG9vcCBldmVudExvb3A7CisKKyAgICAgICAgUUV2ZW50TG9vcCogcHJldmlvdXNFdmVudExvb3Ag
PSBjdXJyZW50RXZlbnRMb29wOworICAgICAgICBjdXJyZW50RXZlbnRMb29wID0gJmV2ZW50TG9v
cDsKKworICAgICAgICBldmVudExvb3AuZXhlYygpOworCisgICAgICAgIGN1cnJlbnRFdmVudExv
b3AgPSBwcmV2aW91c0V2ZW50TG9vcDsKKyAgICB9Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgp
Cit7CisgICAgaWYgKGN1cnJlbnRFdmVudExvb3ApCisgICAgICAgIGN1cnJlbnRFdmVudExvb3At
PmV4aXQoKTsKKyAgICBlbHNlCisgICAgICAgIFFDb3JlQXBwbGljYXRpb246OmV4aXQoKTsKK30K
KworUnVuTG9vcDo6UnVuTG9vcCgpCisgICAgOiBtX3RpbWVyT2JqZWN0KG5ldyBUaW1lck9iamVj
dCh0aGlzKSkKK3sKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIGRlbGV0ZSBtX3Rp
bWVyT2JqZWN0OworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgbV90aW1lck9i
amVjdC0+d2FrZVVwKCk7Cit9CisKKy8vIFJ1bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIGludCBJRCkKK3sKKyAgICBU
aW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsK
KyAgICBBU1NFUlQoaXQgIT0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpOworICAgIFRp
bWVyQmFzZSogdGltZXIgPSBpdC0+dmFsdWU7CisKKyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0
aW5nKSB7CisgICAgICAgIC8vIFN0b3AgdGhlIHRpbWVyIChjYWxsaW5nIHN0b3Agd291bGQgbmVl
ZCBhbm90aGVyIGhhc2ggdGFibGUgbG9va3VwKS4KKyAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMucmVtb3ZlKGl0KTsKKyAgICAgICAgcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRp
bWVyKHRpbWVyLT5tX0lEKTsKKyAgICAgICAgdGltZXItPm1fSUQgPSAwOworICAgIH0KKworICAg
IHRpbWVyLT5maXJlZCgpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5M
b29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBtX0lEKDApCisg
ICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5U
aW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6
OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBzdG9w
KCk7CisgICAgaW50IG1pbGxpcyA9IHN0YXRpY19jYXN0PGludD4obmV4dEZpcmVJbnRlcnZhbCAq
IDEwMDApOworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgbV9JRCA9IG1fcnVuTG9v
cC0+bV90aW1lck9iamVjdC0+c3RhcnRUaW1lcihtaWxsaXMpOworICAgIEFTU0VSVChtX0lEKTsK
KyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKK30KKwordm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQoreworICAgIGlmICghbV9JRCkKKyAgICAgICAg
cmV0dXJuOworICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZmluZChtX0lEKTsKKyAgICBpZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5yZW1vdmUoaXQpOworICAgIG1fcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRpbWVyKG1f
SUQpOworICAgIG1fSUQgPSAwOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3Rp
dmUoKSBjb25zdAoreworICAgIHJldHVybiBtX0lEOworfQorCisjaW5jbHVkZSAiUnVuTG9vcFF0
Lm1vYyIKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93
aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjMwNmY1NTg3OTZmMmNhMTk5NDcxOWJkYzA3ZjE1YjQxOWY1Njc2OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcApAQCAtMCwwICsx
LDE3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5M
b29wLmgiCisKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2lu
ZG93c0V4dHJhcy5oPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV1RGIHsK
Kworc3RhdGljIGNvbnN0IFVJTlQgUGVyZm9ybVdvcmtNZXNzYWdlID0gV01fVVNFUiArIDE7Citz
dGF0aWMgY29uc3QgTFBXU1RSIGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSA9IEwiUnVu
TG9vcE1lc3NhZ2VXaW5kb3ciOworCitMUkVTVUxUIENBTExCQUNLIFJ1bkxvb3A6OlJ1bkxvb3BX
bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtKQoreworICAgIGlmIChSdW5Mb29wKiBydW5Mb29wID0gc3RhdGljX2Nhc3Q8UnVuTG9vcCo+
KGdldFdpbmRvd1BvaW50ZXIoaFduZCwgMCkpKQorICAgICAgICByZXR1cm4gcnVuTG9vcC0+d25k
UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CisKKyAgICBpZiAobWVzc2FnZSA9
PSBXTV9DUkVBVEUpIHsKKyAgICAgICAgTFBDUkVBVEVTVFJVQ1QgY3JlYXRlU3RydWN0ID0gcmVp
bnRlcnByZXRfY2FzdDxMUENSRUFURVNUUlVDVD4obFBhcmFtKTsKKworICAgICAgICAvLyBBc3Nv
Y2lhdGUgdGhlIFJ1bkxvb3Agd2l0aCB0aGUgd2luZG93LgorICAgICAgICBzZXRXaW5kb3dQb2lu
dGVyKGhXbmQsIDAsIGNyZWF0ZVN0cnVjdC0+bHBDcmVhdGVQYXJhbXMpOworICAgICAgICByZXR1
cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2Us
IHdQYXJhbSwgbFBhcmFtKTsKK30KKworTFJFU1VMVCBSdW5Mb29wOjp3bmRQcm9jKEhXTkQgaFdu
ZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQoreworICAgIHN3
aXRjaCAobWVzc2FnZSkgeworICAgIGNhc2UgUGVyZm9ybVdvcmtNZXNzYWdlOgorICAgICAgICBw
ZXJmb3JtV29yaygpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIFdNX1RJTUVSOgorICAg
ICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQodGhpcywgd1BhcmFtKTsKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBt
ZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAg
ICBNU0cgbWVzc2FnZTsKKyAgICB3aGlsZSAoQk9PTCByZXN1bHQgPSA6OkdldE1lc3NhZ2UoJm1l
c3NhZ2UsIDAsIDAsIDApKSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgOjpUcmFuc2xhdGVNZXNzYWdlKCZtZXNzYWdlKTsKKyAgICAgICAg
OjpEaXNwYXRjaE1lc3NhZ2UoJm1lc3NhZ2UpOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpz
dG9wKCkKK3sKKyAgICA6OlBvc3RRdWl0TWVzc2FnZSgwKTsKK30KKworYm9vbCBSdW5Mb29wOjpy
ZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKQoreworICAgIC8vIEZJWE1FOiBUaGlz
IHJlYWxseSBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlLgorCisgICAgV05EQ0xBU1Mgd2lu
ZG93Q2xhc3MgPSB7IDAgfTsKKyAgICB3aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBSdW5M
b29wOjpSdW5Mb29wV25kUHJvYzsKKyAgICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAgPSBz
aXplb2YoUnVuTG9vcCopOworICAgIHdpbmRvd0NsYXNzLmxwc3pDbGFzc05hbWUgICA9IGtSdW5M
b29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZTsKKworICAgIHJldHVybiAhITo6UmVnaXN0ZXJDbGFz
cygmd2luZG93Q2xhc3MpOworfQorCitSdW5Mb29wOjpSdW5Mb29wKCkKK3sKKyAgICByZWdpc3Rl
clJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKKworICAgIG1fcnVuTG9vcE1lc3NhZ2VXaW5k
b3cgPSA6OkNyZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUsIDAsIDAs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENXX1VTRURFRkFV
TFQsIDAsIENXX1VTRURFRkFVTFQsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgMCwgdGhpcyk7CisgICAgQVNTRVJUKDo6SXNX
aW5kb3cobV9ydW5Mb29wTWVzc2FnZVdpbmRvdykpOworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgp
Cit7CisgICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBpdGVtIHF1ZXVlIGhlcmUuCit9
CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICAvLyBGSVhNRTogTm8gbmVlZCB0byB3
YWtlIHVwIHRoZSBydW4gbG9vcCBpZiB3ZSd2ZSBhbHJlYWR5IGNhbGxlZCBkaXNwYXRjaAorICAg
IC8vIGJlZm9yZSB0aGUgcnVuIGxvb3AgaGFzIGhhZCB0aGUgdGltZSB0byByZXNwb25kLgorICAg
IDo6UG9zdE1lc3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgUGVyZm9ybVdvcmtNZXNzYWdl
LCByZWludGVycHJldF9jYXN0PFdQQVJBTT4odGhpcyksIDApOworfQorCisvLyBSdW5Mb29wOjpU
aW1lcgorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5M
b29wLCB1aW50NjRfdCBJRCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKKyAgICBpZiAoaXQgPT0gcnVuTG9vcC0+bV9hY3Rp
dmVUaW1lcnMuZW5kKCkpIHsKKyAgICAgICAgLy8gVGhlIHRpbWVyIG11c3QgaGF2ZSBiZWVuIHN0
b3BwZWQgYWZ0ZXIgdGhlIFdNX1RJTUVSIG1lc3NhZ2Ugd2FzIHBvc3RlZCB0byB0aGUgbWVzc2Fn
ZSBxdWV1ZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFRpbWVyQmFzZSogdGltZXIg
PSBpdC0+dmFsdWU7CisKKyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7CisgICAgICAg
IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAgICAgIDo6S2lsbFRpbWVy
KHJ1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIElEKTsKKyAgICB9CisKKyAgICB0aW1l
ci0+ZmlyZWQoKTsKK30KKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlVGltZXJJRCgpCit7Cisg
ICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVRpbWVySUQgPSAxOworICAgIHJldHVybiB1bmlxdWVU
aW1lcklEKys7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1
bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKKyAgICAsIG1fSUQoZ2VuZXJhdGVUaW1l
cklEKCkpCisgICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQoreworfQorCitSdW5Mb29wOjpUaW1l
ckJhc2U6On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sK
KyAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OworICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1l
cnMuc2V0KG1fSUQsIHRoaXMpOworICAgIDo6U2V0VGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BN
ZXNzYWdlV2luZG93LCBtX0lELCBuZXh0RmlyZUludGVydmFsICogMTAwMCwgMCk7Cit9CisKK3Zv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0b3Ig
aXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7CisgICAgaWYgKGl0ID09
IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICA6OktpbGxUaW1lciht
X3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQpOworfQorCitib29sIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3J1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLmNvbnRhaW5zKG1fSUQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjQxZTM1OGQwNzBlNWQ1MDRhNzljMGMzYzU5MzEyY2E3
MzRmZWE2My4uMGY5YzQwYWU5NjVjODkzZTIzMTJhOTUwZGI3ZDlmZWY5N2EzYjYxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTE4MzEsNyArMTgzMSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMK
ICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNwcAogICAgIHBsYXRmb3JtL1BsYXRmb3JtSW5z
dHJ1bWVudGF0aW9uLmNwcAogICAgIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKLSAg
ICBwbGF0Zm9ybS9SdW5Mb29wLmNwcAogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5jcHAKICAgICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKICAgICBwbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGJhZTVm
MzkzZmI5ZGU2OGU2Njg5YmEyNzNmZWQ5NjU1NzZiMzk2Y2MuLmMzZTYwN2ZhNDVlMDYyY2I4NzU1
MmMwNWVhNDExMzI3ZmI0NWU3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
NjEzMSw4ICs2MTMxLDYgQEAgcGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL05vdEltcGxlbWVudGVkLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTm90SW1w
bGVtZW50ZWQuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAgXAotCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1VVSUQuY3BwIFwKQEAgLTYyNjUsNyArNjI2Myw2IEBAIHBsYXRmb3JtZ3RrX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcCBc
Ci0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1NoYXJlZFRpbWVyR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1NvdW5kR3RrLmNwcCBcCkBAIC02MzI3LDcgKzYzMjQsNiBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TeXN0ZW1JbmZvLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XZWJDb3JlSW5zdGFuY2VIYW5kbGUuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2ViQ29yZUluc3RhbmNlSGFuZGxlLmggXAot
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaW5kb3dzRXh0cmFzLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGx1Z2lucy93aW4vUGx1Z2luTWVzc2FnZVRocm90dGxlcldpbi5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbk1lc3NhZ2VUaHJvdHRsZXJXaW4uaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggMTczNmY1ZjQyYmQ5ZDk1ZTJiZjA2
NzkzOTVjYTBlNzNmMWRkNzBiMy4uZTZlZmUzMTUzZDEzODI3Y2I3MTNkMDcyNGFiYTRkNzE2M2My
YzBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtMTE2LDcg
KzExNiw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2JsYWNr
YmVycnkvUGxhdGZvcm1Ub3VjaFBvaW50QmxhY2tCZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9ibGFj
a2JlcnJ5L1BvcHVwTWVudUJsYWNrQmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9S
ZW5kZXJUaGVtZUJsYWNrQmVycnkuY3BwCi0gICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9SdW5Mb29w
QmxhY2tCZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1NTTEtleUdlbmVyYXRvckJs
YWNrQmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9TY3JvbGxiYXJUaGVtZUJsYWNr
QmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9TZWFyY2hQb3B1cE1lbnVCbGFja0Jl
cnJ5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmNDk2NjQ3MjUwOTc5YWM0N2Fm
ZTUzZGMyNGJhNDMyZjhlMTUwNTdhLi40MTYyNDgyZjJkZmRhNTk1MGU5NTRiNmI2YWRiNDk0ZTAw
ODQxNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNzYsNyArNzYsNiBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5F
ZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1BsYXRmb3JtV2hlZWxFdmVudEVmbC5jcHAKICAgICBw
bGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCi0gICAgcGxhdGZvcm0vZWZsL1J1bkxvb3BF
ZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKICAgICBwbGF0Zm9ybS9l
ZmwvU2Nyb2xsYmFyVGhlbWVFZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1Njcm9sbFZpZXdFZmwu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDJhOGI4NDViZGUwMDI5OTlhOWEyMGIx
Y2M1MmRlMjEwOTdiY2Y1MDcuLmYwMTVmZmFmNzUzMTMwMTY0ZTlhZmY1OGNhN2UzM2E4ZWY0YzRm
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC05Niw3ICs5Niw2IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3Bw
CiAgICAgcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKICAgICBwbGF0Zm9ybS9ndGsv
UmVuZGVyVGhlbWVHdGsuY3BwCi0gICAgcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCiAgICAg
cGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMi5jcHAKICAgICBwbGF0Zm9ybS9ndGsvU2Ny
b2xsYmFyVGhlbWVHdGszLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ0UuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNFLmNtYWtlCmluZGV4IDlkNDdkNDBkYTQ4NzBhMjIzYmNj
YmFiZDQyM2ZlYTgyNWYzZmNkN2UuLmUxMzAxOWQwNmU5NWZlZDMxNWEwNjk5YzBmM2Q3ODBkZTdm
MWJhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ0UuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DRS5jbWFrZQpAQCAtNTEsNyArNTEsNiBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2lu
LmNwcAogICAgIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCiAgICAgcGxh
dGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcAotICAgIHBsYXRmb3JtL3dpbi9SdW5Mb29w
V2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCiAgICAgcGxh
dGZvcm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9TZWFyY2hQ
b3B1cE1lbnVXaW4uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA0ZGY3OGQ0OTg3OTk1YjY4MzJjYWRlNDQ2
ZjdhNmM1ODQ4MmQ4NWZmLi45ZTUzZjlmZTU0NDllMWVkNzVmYWM4ODU2MTA5OTg3MTViNDYxMjkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKQEAgLTExMDUsNyArMTEwNSw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBs
YXRmb3JtL1BsYXRmb3JtRXZlbnQuY3BwIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1l
bnRhdGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAg
XAotICAgIHBsYXRmb3JtL1J1bkxvb3AuY3BwIFwKICAgICBwbGF0Zm9ybS9TY2hlbWVSZWdpc3Ry
eS5jcHAgXAogICAgIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBcCiAgICAgcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuY3BwIFwKQEAgLTI5MTksNyArMjkxOCw2IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHBsYXRmb3JtL3F0L0RyYWdJbWFnZVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvRXZlbnRM
b29wUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwIFwKLSAgICBwbGF0
Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9TaGFyZWRCdWZmZXJRdC5j
cHAgXAogICAgIHBsYXRmb3JtL3F0L1RoaXJkUGFydHlDb29raWVzUXQuY3BwIFwKICAgICBwbGF0
Zm9ybS9xdC9Vc2VyQWdlbnRRdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzMjE3NzY1
MmE2Zjg3NGVjNjQyM2FmYWI4MWY1ODczYjhiNGMyZTk5Li4yMGY2MTNlNzg4ZDk1NDY5YmRmMjk0
OTQwZDBlMTU3YmYwZDA0MWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTAyMSwxOSArMTAy
MSw2IEBAIF9fWk43V2ViQ29yZTdJbnRSZWN0OWludGVyc2VjdEVSS1MwXwogX19aTjdXZWJDb3Jl
N0ludFJlY3RDMUVSS05TXzEwTGF5b3V0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktO
U185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlN0ludFNpemVDMUVSSzZDR1NpemUKLV9fWk43V2Vi
Q29yZTdSdW5Mb29wMTRydW5Gb3JEdXJhdGlvbkVkCi1fX1pON1dlYkNvcmU3UnVuTG9vcDIxaW5p
dGlhbGl6ZU1haW5SdW5Mb29wRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wMzdzZXRVc2VBcHBsaWNh
dGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wM3J1bkV2Ci1f
X1pON1dlYkNvcmU3UnVuTG9vcDRtYWluRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wNHN0b3BFdgot
X19aTjdXZWJDb3JlN1J1bkxvb3A2d2FrZVVwRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wN2N1cnJl
bnRFdgotX19aTjdXZWJDb3JlN1J1bkxvb3A4ZGlzcGF0Y2hFUktOM1dURjhGdW5jdGlvbklGdnZF
RUUKLV9fWk43V2ViQ29yZTdSdW5Mb29wOVRpbWVyQmFzZTRzdG9wRXYKLV9fWk43V2ViQ29yZTdS
dW5Mb29wOVRpbWVyQmFzZTVzdGFydEVkYgotX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNl
QzJFUFMwXwotX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlRDJFdgogX19aTjdXZWJDb3Jl
N1RleHRSdW4xOWFsbG93c1JvdW5kaW5nSGFja3NFdgogX19aTjdXZWJDb3JlN1RleHRSdW4yMXNf
YWxsb3dzUm91bmRpbmdIYWNrc0UKIF9fWk43V2ViQ29yZTdUZXh0UnVuMjJzZXRBbGxvd3NSb3Vu
ZGluZ0hhY2tzRWIKQEAgLTE2MTgsNyArMTYwNSw2IEBAIF9fWk5LN1dlYkNvcmU3RWxlbWVudDZz
aGFkb3dFdgogX19aTks3V2ViQ29yZTdJbnRSZWN0MTBpbnRlcnNlY3RzRVJLUzBfCiBfX1pOSzdX
ZWJDb3JlN0ludFJlY3Q4Y29udGFpbnNFUktTMF8KIF9fWk5LN1dlYkNvcmU3SW50UmVjdGN2NkNH
UmVjdEV2Ci1fX1pOSzdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlOGlzQWN0aXZlRXYKIF9fWk5L
N1dlYkNvcmU4RG9jdW1lbnQxMWNvbXBsZXRlVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTks3V2Vi
Q29yZThEb2N1bWVudDEzYXhPYmplY3RDYWNoZUV2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTRn
ZXRFbGVtZW50QnlJZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDcxODk1YWY4YmIzYzRkMTAyNDVlMjBl
NTQwMTc3ZTM2NjNjNmFiMjcuLjdjMzY4OThhNjY1MTdiNTY2NTQ3ODFjNjE4Yzg3MzQzYjg3NDg4
NjcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0yOTA3OSwxNCArMjkwNzksNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxSdW5Mb29wLmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+
Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUnVuTG9vcC5oIgotCQkJ
CT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxS
dW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTI5NDk4
LDEwICsyOTQ5MCw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cUnVuTG9vcFdpbi5jcHAiCi0JCQkJCT4KLQkJCQk8
L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cU2Ny
b2xsYmFyVGhlbWVTYWZhcmkuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggNWI2MzJhM2MyNWFh
NzY2MWU4Yzc1NjU1MjFjMmQ0YWIyNjdjYTc5Mi4uODVlYzRjOTdjZWIwYjI3ODhjMmVmM2Q4ZDE3
MTc0MmQ2ZmZiMjM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCkBAIC00MTA5LDcgKzQxMDksNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cUGxhdGZvcm1FdmVudC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIiAvPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUnVuTG9vcC5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cU2NoZW1lUmVnaXN0
cnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cU2Nyb2xsYWJs
ZUFyZWEuY3BwIiAvPgpAQCAtNDE2NCw3ICs0MTYzLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXHdpblxQbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFBsYXRmb3JtU2NyZWVuV2luLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxQb3B1cE1lbnVXaW4u
Y3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFJ1bkxvb3BX
aW4uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFNjcm9s
bGJhclRoZW1lU2FmYXJpLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXHdpblxTY3JvbGxiYXJUaGVtZVdpbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwbGF0Zm9ybVx3aW5cU2VhcmNoUG9wdXBNZW51V2luLmNwcCIgLz4KQEAgLTExNTYxLDcg
KzExNTU5LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFBvcHVwTWVu
dVN0eWxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxQdXJnZWFi
bGVCdWZmZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFJlZmVy
cmVyUG9saWN5LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxSdW5M
b29wLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3Jt
XFNjaGVtZVJlZ2lzdHJ5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxTY3JvbGxhYmxlQXJlYS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ2NjRkNTIwMWIwZDYxZDZhNjY0NTFjMmI4ZDUx
NWM4NzFlMjI3OTUuLmQ3MzY2NTdiNDVjOTI3NGI1MTYzZGE4N2ZmM2U4MjU1MDI2NTUxZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTc0MSw3ICs3NDEsNiBAQAogCQkyOTdCRTNENzE2QzAzQzBFMDAzMzE2QkQgLyogUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjlFNEQ4REYxNkIwOTQwRjAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXIuaCAqLzsgfTsKIAkJMjk3QkUzRDgxNkMwM0NDRTAwMzMxNkJEIC8qIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOUU0RDhFMDE2QjA5NTk4MDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1hYy5tbSAqLzsgfTsKIAkJMjk3QkUzREExNkMwNDNEODAwMzMxNkJEIC8qIFBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjk3QkUzRDkxNkMwNDNEODAwMzMxNkJEIC8qIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIuY3BwICovOyB9OwotCQkyOUEzMDlBQzE1NjFDOTlCMDBCQkQ4RTUgLyog
UnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5QTMwOUFCMTU2MUM5OUIwMEJCRDhFNSAvKiBSdW5Mb29wQ0YuY3BwICovOyB9OwogCQky
OUE4MTIyQjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwRDBGQkI5QzFEMDA1
MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmggKi87IH07CiAJCTI5QTgxMjJDMEZCQjlDMUQw
MDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMEUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2li
aWxpdHlMaXN0LmggKi87IH07CiAJCTI5QTgxMjJFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3Np
YmlsaXR5QVJJQUdyaWRDZWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyOUE4MTIxMDBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbC5oICovOyB9OwpAQCAtNDYxNiw5ICs0NjE1LDYgQEAKIAkJQkMwNkVFMDQwQkZENzFB
QTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA2RUUwMjBCRkQ3MUFBMDA4NTZFOUQgLyogSlNI
VE1MVGFibGVFbGVtZW50LmNwcCAqLzsgfTsKIAkJQkMwNkVFMDUwQkZENzFBQTAwODU2RTlEIC8q
IEpTSFRNTFRhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMwNkVFMDMwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVu
dC5oICovOyB9OwogCQlCQzA3M0JBQTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252ZXJzaW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA3M0JB
OTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252ZXJzaW9uLmggKi87IH07Ci0JCUJDMEIzNTgz
MTRDNEY5NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM1ODIxNEM0Rjk1NDAwNTVFMjJBIC8qIFJ1bkxv
b3BNYWMubW0gKi87IH07Ci0JCUJDMEIzNTg3MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTg1
MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLzsgfTsKLQkJQkMwQjM1ODgxNEM0Rjk4
MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMEIzNTg2MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMwQjM2QTQwQ0Qz
QzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMwQjM2QTEwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3Bw
ICovOyB9OwogCQlCQzBCMzZBNTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM2QTIwQ0QzQzY3QzAw
QUM3RUI1IC8qIENvbnNvbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCQzEyNEVFNzBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEyNEVFNDBDMjY0
MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5jcHAgKi87IH07CkBAIC03MDQ4LDcgKzcwNDQsNiBAQAog
CQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBWE9iamVjdENhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjk4NTcwOTIxNUNDNTMyRDAwNjM1NUNEIC8qIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjk4NTcwOTMxNUNDNTMyRDAwNjM1NUNEIC8qIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTI5QTMwOUFCMTU2MUM5OUIwMEJC
RDhFNSAvKiBSdW5Mb29wQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUnVuTG9vcENGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMEQw
RkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMjlBODEyMEUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlMaXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlMaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjEwMEZCQjlDMUQwMDUxMDI5MyAv
KiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTExMzEyLDkgKzExMzA3LDYgQEAKIAkJQkMwNkYyNEMwNkQxOEE3RTAwNEE2RkEz
IC8qIFhTTFRQcm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gWFNMVFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkMwNkYyNEQwNkQxOEE3RTAwNEE2RkEz
IC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJD
MDczQkE5MEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0Q29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCQzBCMzU4MjE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bkxvb3BNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMEIzNTg1MTRDNEY5ODMwMDU1RTIyQSAvKiBS
dW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3Au
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzBCMzU4NjE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSdW5Mb29w
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMEIzNkExMENEM0M2N0MwMEFDN0VC
NSAvKiBDb25zb2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
b25zb2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwQjM2QTIwQ0QzQzY3
QzAwQUM3RUI1IC8qIENvbnNvbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENvbnNvbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwQjM2QTMwQ0QzQzY3
QzAwQUM3RUI1IC8qIENvbnNvbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb25zb2xl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNDE2LDcgKzEzNDA4LDYgQEAK
IAkJCQk5MzgxOTIwNDBGODdFMUVDMDBENTM1MkEgLyogQmluYXJ5UHJvcGVydHlMaXN0LmggKi8s
CiAJCQkJNTE2MDMwNkIwQ0M0MzYyMzAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1DRi5jcHAgKi8sCiAJ
CQkJMUE5ODk1NkEwQUE3OEY4MDAwNUVGNUVGIC8qIEtVUkxDRk5ldC5jcHAgKi8sCi0JCQkJMjlB
MzA5QUIxNTYxQzk5QjAwQkJEOEU1IC8qIFJ1bkxvb3BDRi5jcHAgKi8sCiAJCQkJNTEyREQ4RTIw
RDkxRTJCNDAwMEY4OUVFIC8qIFNoYXJlZEJ1ZmZlckNGLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gY2Y7CkBAIC0xNDYzNCw3ICsxNDYyNSw2IEBACiAJCQkJMjlFNEQ4RTAxNkIwOTU5ODAwQzg0
NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gKi8sCiAJCQkJMDA4MUZFRkUx
NkIwQTJCNjAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeE1hYy5tbSAqLywKIAkJCQlFNEQ2ODc3NjBF
RDdBRTNEMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCAqLywKLQkJCQlCQzBCMzU4
MjE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSAqLywKIAkJCQlCQ0FFMUZBNTEyOTM5
REI3MDA0Q0IwMjYgLyogU2Nyb2xsQW5pbWF0b3JNYWMuaCAqLywKIAkJCQlCQzUxMTU2RDEyQjE3
NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gKi8sCiAJCQkJQkM4Qjg1M0MwRTdD
N0YxMTAwQUI2OTg0IC8qIFNjcm9sbGJhclRoZW1lTWFjLmggKi8sCkBAIC0xOTM4Miw4ICsxOTM3
Miw2IEBACiAJCQkJN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAq
LywKIAkJCQlBNzJFQTNCQTE1ODVDRjU1MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQu
aCAqLywKIAkJCQk5ODMxQUU0OTE1NDIyNUEyMDBGRTI2NDQgLyogUmVmZXJyZXJQb2xpY3kuaCAq
LywKLQkJCQlCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8sCi0JCQkJ
QkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkyOTNFQUUyMDEz
NTZCMzJFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAqLywKIAkJCQky
OTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8s
CiAJCQkJNTE2MkM3RjIxMUY3N0VGQTAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmNwcCAqLywK
QEAgLTIzMjg2LDcgKzIzMjc0LDYgQEAKIAkJCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFBRjkgLyog
Um91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OUJBREEyMTYxRTdGM0YwMEMyRTY1
MiAvKiBSdWxlRmVhdHVyZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc5QkFEQTQxNjFFN0YzRjAw
QzJFNjUyIC8qIFJ1bGVTZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMEIzNTg4MTRDNEY5ODMw
MDU1RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQxRjBEN0UyQjgy
MDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMjEw
RDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTU2OUQyMzBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9vYmplY3QuaCBpbiBIZWFkZXJzICov
LApAQCAtMjYzODcsOSArMjYzNzQsNiBAQAogCQkJCUE3M0Y5NUZFMTJDOTdCRkUwMDMxQUFGOSAv
KiBSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzlCQURBMTE2MUU3RjNGMDBD
MkU2NTIgLyogUnVsZUZlYXR1cmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc5QkFEQTMxNjFF
N0YzRjAwQzJFNjUyIC8qIFJ1bGVTZXQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMwQjM1ODcx
NEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMjlBMzA5
QUMxNTYxQzk5QjAwQkJEOEU1IC8qIFJ1bkxvb3BDRi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlC
QzBCMzU4MzE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTFBNTY5RDFFMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBNTY5RDIwMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX21ldGhvZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQyMjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGlt
ZV9vYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RocmVhZC5oCmluZGV4IDc1ODE4MmViOTcwZTNlN2FhYTFkNzIzNjU1
YTE3Zjc3NThhZDBhYTAuLmFjNGRkN2U0ZTg0ZjE0OTA1NzI2OTY5ODliZmRmZWFiZjdlMDIzZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVh
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5o
CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4g
PiBtX2Z1bmN0aW9uczsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIHVzZSBXZWJDb3JlOjpSdW5Mb29wIGhlcmUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1
c2UgV1RGOjpSdW5Mb29wIGhlcmUuCiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4gbV90aHJl
YWRSdW5Mb29wOwogICAgIFJldGFpblB0cjxDRlJ1bkxvb3BTb3VyY2VSZWY+IG1fdGhyZWFkUnVu
TG9vcFNvdXJjZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1LZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaAppbmRleCBhYzMyYWU0MDE4NDdkYmVhY2QxNjliODY3NjYwMzgwOWNj
MDhjYTFkLi5jODk2ZDg3MzAxN2I0MDljOGFkMjNmYjdkYTg0MjdmOGU2ODllZTE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaApAQCAtMjks
NyArMjksNyBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1FdmVudC5oIgogI2lmIE9TKFdJTkRPV1Mp
Ci0jaW5jbHVkZSAiV2luZG93c0V4dHJhcy5oIgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFz
Lmg+CiAjZW5kaWYKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAppbmRleCAwMzdiNWIxNTg4MDVi
MmVjNjdjNzc2ZWM5M2I5YTUxMWY5YzhkMTYyLi44YmQzMTIxZjIwZTVmMzNhNWY3YzRmYjI0MDA2
YzkxYmZhMTEwMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bU1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNl
RXZlbnQuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1FdmVudC5oIgogI2lmIE9TKFdJTkRPV1MpCi0jaW5jbHVkZSAiV2luZG93c0V4
dHJhcy5oIgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
V2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50
LmgKaW5kZXggNTNmMjFjZDBjOTdhNjA1MjdiMTIwNGZiZjk5OGVlYjAxZTZhOGI2ZC4uMmQxMDI4
OGI1MDBhYzliNWViZTQzNzAzZTAxZTI4NDk5ZGI2MTI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRl
ICJJbnRQb2ludC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtRXZlbnQuaCIKICNpZiBPUyhXSU5ET1dT
KQotI2luY2x1ZGUgIldpbmRvd3NFeHRyYXMuaCIKKyNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJh
cy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxv
b3AuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDFkMjU0MzZmNWM1NmJhYTBl
YmYyNDkxNWQ4MWQzZDBkOTA4YjFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgot
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LSNpZiAhUExBVEZPUk0oTUFDKQotdm9pZCBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxv
b3BPbk1haW5SdW5Mb29wKCkKLXsKLX0KLSNlbmRpZgotCi1zdGF0aWMgUnVuTG9vcCogc19tYWlu
UnVuTG9vcDsKLQotLy8gSGVscGVyIGNsYXNzIGZvciBUaHJlYWRTcGVjaWZpY0RhdGEuCi1jbGFz
cyBSdW5Mb29wOjpIb2xkZXIgewotcHVibGljOgotICAgIEhvbGRlcigpCi0gICAgICAgIDogbV9y
dW5Mb29wKGFkb3B0UmVmKG5ldyBSdW5Mb29wKSkKLSAgICB7Ci0gICAgfQotCi0gICAgUnVuTG9v
cCogcnVuTG9vcCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuTG9vcC5nZXQoKTsgfQotCi1wcml2YXRl
OgotICAgIFJlZlB0cjxSdW5Mb29wPiBtX3J1bkxvb3A7Ci19OwotCi12b2lkIFJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpCi17Ci0gICAgaWYgKHNfbWFpblJ1bkxvb3ApCi0gICAgICAg
IHJldHVybjsKLSAgICBzX21haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOwotfQotCi1S
dW5Mb29wKiBSdW5Mb29wOjpjdXJyZW50KCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdU
Rjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcDo6SG9sZGVyPiwgcnVuTG9vcEhvbGRlciwgKCkpOwot
ICAgIHJldHVybiBydW5Mb29wSG9sZGVyLT5ydW5Mb29wKCk7Ci19Ci0KLVJ1bkxvb3AqIFJ1bkxv
b3A6Om1haW4oKQotewotICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKLSAgICByZXR1cm4gc19t
YWluUnVuTG9vcDsKLX0KLQotdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCi17Ci0gICAgLy8g
SXQgaXMgaW1wb3J0YW50IHRvIGhhbmRsZSB0aGUgZnVuY3Rpb25zIGluIHRoZSBxdWV1ZSBvbmUg
YXQgYSB0aW1lIGJlY2F1c2Ugd2hpbGUgaW5zaWRlIG9uZSBvZiB0aGVzZQotICAgIC8vIGZ1bmN0
aW9ucyB3ZSBtaWdodCByZS1lbnRlciBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGFuZCB3ZSBuZWVk
IHRvIGJlIGFibGUgdG8gcGljayB1cCB3aGVyZSB3ZSBsZWZ0IG9mZi4KLSAgICAvLyBTZWUgaHR0
cDovL3dlYmtpdC5vcmcvYi84OTU5MCBmb3IgbW9yZSBkaXNjdXNzaW9uLgotCi0gICAgLy8gT25l
IHBvc3NpYmxlIHNjZW5hcmlvIHdoZW4gaGFuZGxpbmcgdGhlIGZ1bmN0aW9uIHF1ZXVlIGlzIGFz
IGZvbGxvd3M6Ci0gICAgLy8gLSBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGlzIGludm9rZWQgd2l0
aCAxIGZ1bmN0aW9uIG9uIHRoZSBxdWV1ZQotICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBmdW5jdGlv
biByZXN1bHRzIGluIDEgbW9yZSBmdW5jdGlvbiBiZWluZyBlbnF1ZXVlZAotICAgIC8vIC0gSGFu
ZGxpbmcgdGhhdCBvbmUgcmVzdWx0cyBpbiB5ZXQgYW5vdGhlciBiZWluZyBlbnF1ZXVlZAotICAg
IC8vIC0gQW5kIHNvIG9uCi0gICAgLy8KLSAgICAvLyBJbiB0aGlzIHNpdHVhdGlvbiBvbmUgaW52
b2NhdGlvbiBvZiBwZXJmb3JtV29yaygpIG5ldmVyIHJldHVybnMgc28gYWxsIG90aGVyIGV2ZW50
IHNvdXJjZXMgYXJlIGJsb2NrZWQuCi0gICAgLy8gQnkgb25seSBoYW5kbGluZyB1cCB0byB0aGUg
bnVtYmVyIG9mIGZ1bmN0aW9ucyB0aGF0IHdlcmUgaW4gdGhlIHF1ZXVlIHdoZW4gcGVyZm9ybVdv
cmsoKSBpcyBjYWxsZWQKLSAgICAvLyB3ZSBndWFyYW50ZWUgdG8gb2NjYXNpb25hbGx5IHJldHVy
biBmcm9tIHRoZSBydW4gbG9vcCBzbyBvdGhlciBldmVudCBzb3VyY2VzIHdpbGwgYmUgYWxsb3dl
ZCB0byBzcGluLgotCi0gICAgRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbjsKLSAgICBzaXplX3Qg
ZnVuY3Rpb25zVG9IYW5kbGUgPSAwOwotCi0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7Ci0gICAgICAgIGZ1bmN0aW9uc1RvSGFuZGxlID0gbV9m
dW5jdGlvblF1ZXVlLnNpemUoKTsKLQotICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVlLmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBmdW5jdGlvbiA9IG1fZnVuY3Rp
b25RdWV1ZS50YWtlRmlyc3QoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbigpOwotCi0gICAgZm9y
IChzaXplX3QgZnVuY3Rpb25zSGFuZGxlZCA9IDE7IGZ1bmN0aW9uc0hhbmRsZWQgPCBmdW5jdGlv
bnNUb0hhbmRsZTsgKytmdW5jdGlvbnNIYW5kbGVkKSB7Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKLQotICAgICAgICAgICAg
Ly8gRXZlbiBpZiB3ZSBzdGFydCBvZmYgd2l0aCBOIGZ1bmN0aW9ucyB0byBoYW5kbGUgYW5kIHdl
J3ZlIG9ubHkgaGFuZGxlZCBsZXNzIHRoYW4gTiBmdW5jdGlvbnMsIHRoZSBxdWV1ZQotICAgICAg
ICAgICAgLy8gc3RpbGwgbWlnaHQgYmUgZW1wdHkgYmVjYXVzZSB0aG9zZSBmdW5jdGlvbnMgbWln
aHQgaGF2ZSBiZWVuIGhhbmRsZWQgaW4gYW4gaW5uZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKS4K
LSAgICAgICAgICAgIC8vIEluIHRoYXQgY2FzZSB3ZSBzaG91bGQgYmFpbCBoZXJlLgotICAgICAg
ICAgICAgaWYgKG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uID0gbV9mdW5jdGlvblF1ZXVlLnRha2VGaXJzdCgp
OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBmdW5jdGlvbigpOwotICAgIH0KLX0KLQot
dm9pZCBSdW5Mb29wOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikK
LXsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7Ci0gICAgbV9m
dW5jdGlvblF1ZXVlLmFwcGVuZChmdW5jdGlvbik7Ci0KLSAgICB3YWtlVXAoKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiN2YwMWJjYWQ1Nzk2ZDEwYWNhYzVkNmU4ZDk0MWQzOTk1YzNl
MzkzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaAorKysgL2Rldi9udWxsCkBAIC0xLDE4NiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9s
YSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBSdW5Mb29wX2gKLSNkZWZpbmUgUnVuTG9vcF9oCi0KLSNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
LSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbkRpc3BhdGNo
ZXIuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KLQotI2lmIFBMQVRGT1JNKEdUSykKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+
Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKEVGTCkKLSNpbmNsdWRlIDxFY29yZS5oPgotI2VuZGlm
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlv
bkRpc3BhdGNoZXIgewotcHVibGljOgotICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1h
aW4gdGhyZWFkIChleGNlcHQgZm9yIHRoZSBNYWMgcGxhdGZvcm0sIHdoZXJlIGl0Ci0gICAgLy8g
Y2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQpLgotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxp
emVNYWluUnVuTG9vcCgpOwotCi0gICAgLy8gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGVudGVyaW5n
IG1haW4gcnVuIGxvb3AuIElmIGNhbGxlZCwgYXBwbGljYXRpb24gc3R5bGUgcnVuIGxvb3Agd2ls
bCBiZSB1c2VkLCBoYW5kbGluZyBldmVudHMuCi0gICAgc3RhdGljIHZvaWQgc2V0VXNlQXBwbGlj
YXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCgpOwotCi0gICAgc3RhdGljIFJ1bkxvb3AqIGN1cnJl
bnQoKTsKLSAgICBzdGF0aWMgUnVuTG9vcCogbWFpbigpOwotICAgIH5SdW5Mb29wKCk7Ci0KLSAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpIE9WRVJSSURF
OwotCi0gICAgc3RhdGljIHZvaWQgcnVuKCk7Ci0gICAgdm9pZCBzdG9wKCk7Ci0gICAgdm9pZCB3
YWtlVXAoKTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lkIHJ1bkZvckR1cmF0aW9uKGRv
dWJsZSBkdXJhdGlvbik7Ci0jZW5kaWYKLSAgICAKLSAgICBjbGFzcyBUaW1lckJhc2UgewotICAg
ICAgICBmcmllbmQgY2xhc3MgUnVuTG9vcDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0
IFRpbWVyQmFzZShSdW5Mb29wKik7Ci0gICAgICAgIHZpcnR1YWwgflRpbWVyQmFzZSgpOwotCi0g
ICAgICAgIHZvaWQgc3RhcnRSZXBlYXRpbmcoZG91YmxlIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0
KHJlcGVhdEludGVydmFsLCB0cnVlKTsgfQotICAgICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3Vi
bGUgaW50ZXJ2YWwpIHsgc3RhcnQoaW50ZXJ2YWwsIGZhbHNlKTsgfQotCi0gICAgICAgIHZvaWQg
c3RvcCgpOwotICAgICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Q7Ci0KLSAgICAgICAgdmlydHVh
bCB2b2lkIGZpcmVkKCkgPSAwOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBzdGFydChk
b3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpOwotCi0gICAgICAgIFJ1bkxvb3Aq
IG1fcnVuTG9vcDsKLQotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgc3RhdGljIHZvaWQgdGlt
ZXJGaXJlZChSdW5Mb29wKiwgdWludDY0X3QgSUQpOwotICAgICAgICB1aW50NjRfdCBtX0lEOwot
ICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7Ci0jZWxpZiBQTEFURk9STShNQUMpCi0gICAgICAg
IHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKLSAgICAg
ICAgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBtX3RpbWVyOwotI2VsaWYgUExBVEZPUk0o
UVQpCi0gICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIGludCBJRCk7Ci0g
ICAgICAgIGludCBtX0lEOwotICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7Ci0jZWxpZiBQTEFU
Rk9STShHVEspCi0gICAgICAgIHN0YXRpYyBnYm9vbGVhbiB0aW1lckZpcmVkQ2FsbGJhY2soUnVu
TG9vcDo6VGltZXJCYXNlKik7Ci0gICAgICAgIGdib29sZWFuIGlzUmVwZWF0aW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9pc1JlcGVhdGluZzsgfQotICAgICAgICB2b2lkIGNsZWFyVGltZXJTb3VyY2Uo
KTsKLSAgICAgICAgR1JlZlB0cjxHU291cmNlPiBtX3RpbWVyU291cmNlOwotICAgICAgICBnYm9v
bGVhbiBtX2lzUmVwZWF0aW5nOwotI2VsaWYgUExBVEZPUk0oRUZMKQotICAgICAgICBzdGF0aWMg
Ym9vbCB0aW1lckZpcmVkKHZvaWQqIGRhdGEpOwotICAgICAgICBFY29yZV9UaW1lciogbV90aW1l
cjsKLSAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOwotI2VuZGlmCi0gICAgfTsKLQotICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3M+Ci0gICAgY2xhc3MgVGltZXIgOiBwdWJs
aWMgVGltZXJCYXNlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVkZWYgdm9pZCAoVGltZXJG
aXJlZENsYXNzOjoqVGltZXJGaXJlZEZ1bmN0aW9uKSgpOwotCi0gICAgICAgIFRpbWVyKFJ1bkxv
b3AqIHJ1bkxvb3AsIFRpbWVyRmlyZWRDbGFzcyogbywgVGltZXJGaXJlZEZ1bmN0aW9uIGYpCi0g
ICAgICAgICAgICA6IFRpbWVyQmFzZShydW5Mb29wKQotICAgICAgICAgICAgLCBtX29iamVjdChv
KQotICAgICAgICAgICAgLCBtX2Z1bmN0aW9uKGYpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0g
ICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgeyAobV9vYmplY3QtPipt
X2Z1bmN0aW9uKSgpOyB9Ci0KLSAgICAgICAgVGltZXJGaXJlZENsYXNzKiBtX29iamVjdDsKLSAg
ICAgICAgVGltZXJGaXJlZEZ1bmN0aW9uIG1fZnVuY3Rpb247Ci0gICAgfTsKLQotICAgIGNsYXNz
IEhvbGRlcjsKLQotcHJpdmF0ZToKLSAgICBSdW5Mb29wKCk7Ci0KLSAgICB2b2lkIHBlcmZvcm1X
b3JrKCk7Ci0KLSAgICBNdXRleCBtX2Z1bmN0aW9uUXVldWVMb2NrOwotICAgIERlcXVlPEZ1bmN0
aW9uPHZvaWQoKT4gPiBtX2Z1bmN0aW9uUXVldWU7Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAg
c3RhdGljIGJvb2wgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7Ci0gICAgc3Rh
dGljIExSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcFduZFByb2MoSFdORCwgVUlOVCwgV1BBUkFNLCBM
UEFSQU0pOwotICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BB
UkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7Ci0gICAgSFdORCBtX3J1bkxvb3BNZXNzYWdlV2lu
ZG93OwotCi0gICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBUaW1lckJhc2UqPiBUaW1lck1h
cDsKLSAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKLSNlbGlmIFBMQVRGT1JNKE1BQykKLSAg
ICBzdGF0aWMgdm9pZCBwZXJmb3JtV29yayh2b2lkKik7Ci0gICAgUmV0YWluUHRyPENGUnVuTG9v
cFJlZj4gbV9ydW5Mb29wOwotICAgIFJldGFpblB0cjxDRlJ1bkxvb3BTb3VyY2VSZWY+IG1fcnVu
TG9vcFNvdXJjZTsKLSAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7Ci0jZWxpZiBQTEFURk9STShRVCkK
LSAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKLSAgICBUaW1l
ck1hcCBtX2FjdGl2ZVRpbWVyczsKLSAgICBjbGFzcyBUaW1lck9iamVjdDsKLSAgICBUaW1lck9i
amVjdCogbV90aW1lck9iamVjdDsKLSNlbGlmIFBMQVRGT1JNKEdUSykKLXB1YmxpYzoKLSAgICBz
dGF0aWMgZ2Jvb2xlYW4gcXVldWVXb3JrKFJ1bkxvb3AqKTsKLSAgICBHTWFpbkxvb3AqIGlubmVy
bW9zdExvb3AoKTsKLSAgICB2b2lkIHB1c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxvb3AqKTsKLSAg
ICB2b2lkIHBvcE5lc3RlZE1haW5Mb29wKCk7Ci1wcml2YXRlOgotICAgIEdSZWZQdHI8R01haW5D
b250ZXh0PiBtX3J1bkxvb3BDb250ZXh0OwotICAgIFZlY3RvcjxHUmVmUHRyPEdNYWluTG9vcD4g
PiBtX3J1bkxvb3BNYWluTG9vcHM7Ci0jZWxpZiBQTEFURk9STShFRkwpCi0gICAgYm9vbCBtX2lu
aXRFZmw7Ci0KLSAgICBNdXRleCBtX3BpcGVMb2NrOwotICAgIE93blB0cjxFY29yZV9QaXBlPiBt
X3BpcGU7Ci0KLSAgICBNdXRleCBtX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jazsKLSAgICBib29s
IG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQ7Ci0KLSAgICBzdGF0aWMgdm9pZCB3YWtlVXBFdmVudCh2
b2lkKiBkYXRhLCB2b2lkKiwgdW5zaWduZWQgaW50KTsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gUnVuTG9vcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODIwNzg4ZDZhYmIwOTM4MmU5ZTE4Y2NlZWRlNjc1
MzExMTE3NTYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgi
Ci0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LVJ1bkxvb3A6OlJ1bkxvb3AoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLVJ1bkxv
b3A6On5SdW5Mb29wKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFJ1bkxv
b3A6Ondha2VVcCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9v
cENGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1J1bkxvb3BDRi5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmZmI1NTYzNjZiNDljOGI0NzgxMTgxNTVjYmMzNGQ1
ODkyNTQ1MDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9vcENGLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDEzMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3Vu
ZGF0aW9uLmg+Ci0jaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KLSNpbmNsdWRlIDx3dGYv
QXV0b2RyYWluZWRQb29sLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBSdW5Mb29w
OjpwZXJmb3JtV29yayh2b2lkKiBjb250ZXh0KQotewotICAgIEF1dG9kcmFpbmVkUG9vbCBwb29s
OwotICAgIHN0YXRpY19jYXN0PFJ1bkxvb3AqPihjb250ZXh0KS0+cGVyZm9ybVdvcmsoKTsKLX0K
LQotUnVuTG9vcDo6UnVuTG9vcCgpCi0gICAgOiBtX3J1bkxvb3AoQ0ZSdW5Mb29wR2V0Q3VycmVu
dCgpKQotICAgICwgbV9uZXN0aW5nTGV2ZWwoMCkKLXsKLSAgICBDRlJ1bkxvb3BTb3VyY2VDb250
ZXh0IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIHBlcmZvcm1Xb3Jr
IH07Ci0gICAgbV9ydW5Mb29wU291cmNlID0gYWRvcHRDRihDRlJ1bkxvb3BTb3VyY2VDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmNvbnRleHQpKTsKLSAgICBDRlJ1bkxvb3BBZGRTb3Vy
Y2UobV9ydW5Mb29wLmdldCgpLCBtX3J1bkxvb3BTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BDb21t
b25Nb2Rlcyk7Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLSAgICBDRlJ1bkxvb3BTb3Vy
Y2VJbnZhbGlkYXRlKG1fcnVuTG9vcFNvdXJjZS5nZXQoKSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
cnVuRm9yRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQotewotICAgIENGUnVuTG9vcFJ1bkluTW9k
ZShrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUsIGR1cmF0aW9uLCB0cnVlKTsKLX0KLQotdm9pZCBSdW5M
b29wOjp3YWtlVXAoKQotewotICAgIENGUnVuTG9vcFNvdXJjZVNpZ25hbChtX3J1bkxvb3BTb3Vy
Y2UuZ2V0KCkpOwotICAgIENGUnVuTG9vcFdha2VVcChtX3J1bkxvb3AuZ2V0KCkpOwotfQotCi0j
aWYgIVBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQotdm9pZCBSdW5Mb29wOjpydW4oKQot
ewotICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwrKzsKLSAgICAKLSAgICB7Ci0gICAgICAg
IEF1dG9kcmFpbmVkUG9vbCBwb29sOwotICAgICAgICBDRlJ1bkxvb3BSdW4oKTsKLSAgICB9Ci0g
ICAgCi0gICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbC0tOwotfQotCi12b2lkIFJ1bkxvb3A6
OnN0b3AoKQotewotICAgIEFTU0VSVChtX3J1bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0Q3VycmVudCgp
KTsKLSAgICBDRlJ1bkxvb3BTdG9wKG1fcnVuTG9vcC5nZXQoKSk7Ci19Ci0jZW5kaWYKLQotLy8g
UnVuTG9vcDo6VGltZXIKLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoQ0ZS
dW5Mb29wVGltZXJSZWYsIHZvaWQqIGNvbnRleHQpCi17Ci0gICAgVGltZXJCYXNlKiB0aW1lciA9
IHN0YXRpY19jYXN0PFRpbWVyQmFzZSo+KGNvbnRleHQpOwotCi0gICAgQXV0b2RyYWluZWRQb29s
IHBvb2w7Ci0gICAgdGltZXItPmZpcmVkKCk7Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGlt
ZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKLXsKLX0K
LQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0K
LXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwg
Ym9vbCByZXBlYXQpCi17Ci0gICAgaWYgKG1fdGltZXIpCi0gICAgICAgIHN0b3AoKTsKLSAgICAK
LSAgICBDRlJ1bkxvb3BUaW1lckNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCB9
OwotICAgIENGVGltZUludGVydmFsIHJlcGVhdEludGVydmFsID0gcmVwZWF0ID8gbmV4dEZpcmVJ
bnRlcnZhbCA6IDA7Ci0gICAgbV90aW1lciA9IGFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBuZXh0Rmly
ZUludGVydmFsLCByZXBlYXRJbnRlcnZhbCwgMCwgMCwgdGltZXJGaXJlZCwgJmNvbnRleHQpKTsK
LSAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcC5nZXQoKSwgbV90aW1l
ci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1l
ckJhc2U6OnN0b3AoKQotewotICAgIGlmICghbV90aW1lcikKLSAgICAgICAgcmV0dXJuOwotICAg
IAotICAgIENGUnVuTG9vcFRpbWVySW52YWxpZGF0ZShtX3RpbWVyLmdldCgpKTsKLSAgICBtX3Rp
bWVyID0gbnVsbHB0cjsKLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV90aW1lciAmJiBDRlJ1bkxvb3BUaW1lcklzVmFsaWQobV90
aW1lci5nZXQoKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SdW5Mb29wRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9SdW5Mb29wRWZsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTM4MWIzNjdkMzM4MDdjZmZmOTM3M2JhNzMwOWZlZTJlNzY1YTE1Ni4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUnVuTG9vcEVmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMzYgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVu
TG9vcC5oIgotCi0jaW5jbHVkZSA8RWNvcmUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotc3RhdGljIGNvbnN0IGludCBlY29yZVBpcGVN
ZXNzYWdlU2l6ZSA9IDE7Ci1zdGF0aWMgY29uc3QgY2hhciB3YWt1cEVjb3JlUGlwZU1lc3NhZ2Vb
XSA9ICJXIjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLSAg
ICA6IG1faW5pdEVmbChmYWxzZSkKLSAgICAsIG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQoZmFsc2Up
Ci17Ci0gICAgbV9waXBlID0gYWRvcHRQdHIoZWNvcmVfcGlwZV9hZGQod2FrZVVwRXZlbnQsIHRo
aXMpKTsKLSAgICBtX2luaXRFZmwgPSB0cnVlOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17
Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAgICBlY29yZV9tYWluX2xvb3BfYmVnaW4o
KTsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAgICBlY29yZV9tYWluX2xvb3BfcXVp
dCgpOwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcEV2ZW50KHZvaWQqIGRhdGEsIHZvaWQqLCB1
bnNpZ25lZCBpbnQpCi17Ci0gICAgUnVuTG9vcCogbG9vcCA9IHN0YXRpY19jYXN0PFJ1bkxvb3Aq
PihkYXRhKTsKLQotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGxvb3AtPm1fd2Fr
ZVVwRXZlbnRSZXF1ZXN0ZWRMb2NrKTsKLSAgICAgICAgbG9vcC0+bV93YWtlVXBFdmVudFJlcXVl
c3RlZCA9IGZhbHNlOwotICAgIH0KLQotICAgIGxvb3AtPnBlcmZvcm1Xb3JrKCk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jayk7Ci0gICAgICAgIGlmIChtX3dha2VVcEV2ZW50
UmVxdWVzdGVkKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX3dha2VVcEV2ZW50UmVx
dWVzdGVkID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3BpcGVMb2NrKTsKLSAgICAgICAgZWNvcmVfcGlwZV93cml0ZShtX3BpcGUuZ2V0KCksIHdh
a3VwRWNvcmVQaXBlTWVzc2FnZSwgZWNvcmVQaXBlTWVzc2FnZVNpemUpOwotICAgIH0KLX0KLQot
UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCopCi0gICAgOiBtX3RpbWVyKDAp
Ci0gICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6
On5UaW1lckJhc2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJh
c2U6OnRpbWVyRmlyZWQodm9pZCogZGF0YSkKLXsKLSAgICBSdW5Mb29wOjpUaW1lckJhc2UqIHRp
bWVyID0gc3RhdGljX2Nhc3Q8UnVuTG9vcDo6VGltZXJCYXNlKj4oZGF0YSk7Ci0KLSAgICB0aW1l
ci0+ZmlyZWQoKTsKLQotICAgIGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpIHsKLSAgICAgICAg
dGltZXItPm1fdGltZXIgPSAwOwotICAgICAgICByZXR1cm4gRUNPUkVfQ0FMTEJBQ0tfQ0FOQ0VM
OwotICAgIH0KLQotICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19SRU5FVzsKLX0KLQotdm9pZCBS
dW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJl
cGVhdCkKLXsKLSAgICBpZiAoaXNBY3RpdmUoKSkKLSAgICAgICAgc3RvcCgpOwotCi0gICAgbV9p
c1JlcGVhdGluZyA9IHJlcGVhdDsKLSAgICBBU1NFUlQoIW1fdGltZXIpOwotICAgIG1fdGltZXIg
PSBlY29yZV90aW1lcl9hZGQobmV4dEZpcmVJbnRlcnZhbCwgcmVpbnRlcnByZXRfY2FzdDxFY29y
ZV9UYXNrX0NiPih0aW1lckZpcmVkKSwgdGhpcyk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJC
YXNlOjpzdG9wKCkKLXsKLSAgICBpZiAobV90aW1lcikgewotICAgICAgICBlY29yZV90aW1lcl9k
ZWwobV90aW1lcik7Ci0gICAgICAgIG1fdGltZXIgPSAwOwotICAgIH0KLX0KLQotYm9vbCBSdW5M
b29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gKG1fdGltZXIp
ID8gdHJ1ZSA6IGZhbHNlOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggNGQ3
MGNkMjZhNDdkMzFjMThjNzJiMzNhNjA4OTA0MGU4MmI5N2Q1Yi4uMzUzZDI4YmMxYTIzMGFlMzBm
YTM2MzIwYTA2MDRlNmU2MzhhNzRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtMzAsMTMgKzMwLDEzIEBACiAjaW5jbHVk
ZSAiR3JhcGhpY3NMYXllclRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVk
ZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tp
bmdTdG9yZS5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICNp
bmNsdWRlICJHcmFwaGljc1N1cmZhY2VUb2tlbi5oIgogI2VuZGlmCisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKICNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lLmgKaW5kZXggOWU4M2ZjNWJlMjU2ZWJlMjg2OTQwYjRlODlkOGU5
NWYyYzUwMzBlYS4uMDRlYTAxY2U3ODA2ZTA3ZTI3OTQzZDRhYjkxZTRhMTNlZDg0MGJmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUu
aApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzU3VyZmFjZS5oIgogI2luY2x1
ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5o
IgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyQmFj
a2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuaCIKQEAgLTM3
LDYgKzM2LDcgQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFs
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuaApp
bmRleCAyNjIyZmJhZDRmZGU1Mzc5OGJmZTc0MjIzYjk1YjFhMWQwMjRjNjA1Li4yZTRhZTY5NGIz
MTE2Y2ZkNjU5MWEzOGI3ZThjODhiYmQ0NmZkMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRv
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVGdWxsc2NyZWVuV2luZG93LmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgTWVk
aWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvd19oCiAKICNpZiBPUyhXSU5ET1dTKQotI2lu
Y2x1ZGUgIldpbmRvd3NFeHRyYXMuaCIKKyNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJhcy5oPgog
I2VuZGlmCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUnVuTG9vcEd0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5MGYz
NWNhNjZkMjIwYjQwZDRmNjNmN2Q5ZjZjOTg0Mjc1Nzc3MWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1
bkxvb3BHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTcwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogUG9ydGlv
bnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVu
TG9vcC5oIgotCi0jaW5jbHVkZSA8Z2RrL2dkay5oPgotI2luY2x1ZGUgPGdsaWIuaD4KLQotI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUnVuTG9v
cDo6UnVuTG9vcCgpCi17Ci0gICAgLy8gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpIGRvZXNuJ3Qg
YWRkIGFuIGV4dHJhIHJlZmVyZW5jZS4KLSAgICBtX3J1bkxvb3BDb250ZXh0ID0gaXNNYWluVGhy
ZWFkKCkgPyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgOiBhZG9wdEdSZWYoZ19tYWluX2NvbnRl
eHRfbmV3KCkpOwotICAgIEFTU0VSVChtX3J1bkxvb3BDb250ZXh0KTsKLSAgICBHUmVmUHRyPEdN
YWluTG9vcD4gaW5uZXJtb3N0TG9vcCA9IGFkb3B0R1JlZihnX21haW5fbG9vcF9uZXcobV9ydW5M
b29wQ29udGV4dC5nZXQoKSwgRkFMU0UpKTsKLSAgICBBU1NFUlQoaW5uZXJtb3N0TG9vcCk7Ci0g
ICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChpbm5lcm1vc3RMb29wKTsKLX0KLQotUnVuTG9v
cDo6flJ1bkxvb3AoKQotewotICAgIGZvciAoaW50IGkgPSBtX3J1bkxvb3BNYWluTG9vcHMuc2l6
ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgaWYgKCFnX21haW5fbG9vcF9pc19ydW5u
aW5nKG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSkpCi0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluTG9vcHNbaV0uZ2V0KCkpOwot
ICAgIH0KLX0KLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIFJ1bkxvb3AqIG1haW5SdW5M
b29wID0gUnVuTG9vcDo6Y3VycmVudCgpOwotICAgIEdNYWluTG9vcCogaW5uZXJtb3N0TG9vcCA9
IG1haW5SdW5Mb29wLT5pbm5lcm1vc3RMb29wKCk7Ci0gICAgaWYgKCFnX21haW5fbG9vcF9pc19y
dW5uaW5nKGlubmVybW9zdExvb3ApKSB7Ci0gICAgICAgIGdfbWFpbl9sb29wX3J1bihpbm5lcm1v
c3RMb29wKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIENyZWF0ZSBhbmQgcnVu
IGEgbmVzdGVkIGxvb3AgaWYgdGhlIGlubmVybW9zdCBvbmUgd2FzIGFscmVhZHkgcnVubmluZy4K
LSAgICBHTWFpbkxvb3AqIG5lc3RlZE1haW5Mb29wID0gZ19tYWluX2xvb3BfbmV3KDAsIEZBTFNF
KTsKLSAgICBtYWluUnVuTG9vcC0+cHVzaE5lc3RlZE1haW5Mb29wKG5lc3RlZE1haW5Mb29wKTsK
LSAgICBnX21haW5fbG9vcF9ydW4obmVzdGVkTWFpbkxvb3ApOwotICAgIG1haW5SdW5Mb29wLT5w
b3BOZXN0ZWRNYWluTG9vcCgpOwotfQotCi1HTWFpbkxvb3AqIFJ1bkxvb3A6OmlubmVybW9zdExv
b3AoKQotewotICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUg
dGhlcmUuCi0gICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKLSAgICBy
ZXR1cm4gbV9ydW5Mb29wTWFpbkxvb3BzWzBdLmdldCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OnB1
c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxvb3AqIG5lc3RlZExvb3ApCi17Ci0gICAgLy8gVGhlIGlu
bmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAgICBBU1NFUlQoIW1f
cnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwotICAgIG1fcnVuTG9vcE1haW5Mb29wcy5hcHBl
bmQoYWRvcHRHUmVmKG5lc3RlZExvb3ApKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpwb3BOZXN0ZWRN
YWluTG9vcCgpCi17Ci0gICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5
cyBiZSB0aGVyZS4KLSAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwot
ICAgIG1fcnVuTG9vcE1haW5Mb29wcy5yZW1vdmVMYXN0KCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
c3RvcCgpCi17Ci0gICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBi
ZSB0aGVyZS4KLSAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwotICAg
IEdSZWZQdHI8R01haW5Mb29wPiBsYXN0TWFpbkxvb3AgPSBtX3J1bkxvb3BNYWluTG9vcHMubGFz
dCgpOwotICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKGxhc3RNYWluTG9vcC5nZXQoKSkp
Ci0gICAgICAgIGdfbWFpbl9sb29wX3F1aXQobGFzdE1haW5Mb29wLmdldCgpKTsKLX0KLQotZ2Jv
b2xlYW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3ApCi17Ci0gICAgcnVuTG9v
cC0+cGVyZm9ybVdvcmsoKTsKLSAgICByZXR1cm4gRkFMU0U7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
d2FrZVVwKCkKLXsKLSAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFkb3B0R1JlZihnX2lk
bGVfc291cmNlX25ldygpKTsKLSAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkoc291cmNlLmdldCgp
LCBHX1BSSU9SSVRZX0RFRkFVTFQpOwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhzb3VyY2Uu
Z2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpxdWV1ZVdvcmsp
LCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgpLCBtX3J1bkxvb3BD
b250ZXh0LmdldCgpKTsKLQotICAgIGdfbWFpbl9jb250ZXh0X3dha2V1cChtX3J1bkxvb3BDb250
ZXh0LmdldCgpKTsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCog
cnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgICwgbV90aW1lclNvdXJjZSgw
KQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3Ao
KTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3VyY2UoKQotewot
ICAgIG1fdGltZXJTb3VyY2UgPSAwOwotfQotCi1nYm9vbGVhbiBSdW5Mb29wOjpUaW1lckJhc2U6
OnRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRpbWVyKQotewotICAgIEdT
b3VyY2UqIGN1cnJlbnRUaW1lclNvdXJjZSA9IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpOwot
ICAgIGJvb2wgaXNSZXBlYXRpbmcgPSB0aW1lci0+aXNSZXBlYXRpbmcoKTsKLSAgICAvLyBUaGlz
IGNhbiBjaGFuZ2UgdGhlIHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5nIGEgbmV3IHRpbWVyIHdpdGhp
biB0aGUgY2FsbGJhY2suCi0gICAgdGltZXItPmZpcmVkKCk7Ci0gICAgaWYgKCFpc1JlcGVhdGlu
ZyAmJiBjdXJyZW50VGltZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCi0g
ICAgICAgIHRpbWVyLT5jbGVhclRpbWVyU291cmNlKCk7Ci0gICAgcmV0dXJuIGlzUmVwZWF0aW5n
OwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIGZpcmVJbnRlcnZh
bCwgYm9vbCByZXBlYXQpCi17Ci0gICAgaWYgKG1fdGltZXJTb3VyY2UpCi0gICAgICAgIHN0b3Ao
KTsKLQotICAgIG1fdGltZXJTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXco
c3RhdGljX2Nhc3Q8Z3VpbnQ+KGZpcmVJbnRlcnZhbCAqIDEwMDApKSk7Ci0gICAgbV9pc1JlcGVh
dGluZyA9IHJlcGVhdDsKLSAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lclNvdXJjZS5n
ZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OlRpbWVyQmFzZTo6
dGltZXJGaXJlZENhbGxiYWNrKSwgdGhpcywgMCk7Ci0gICAgZ19zb3VyY2VfYXR0YWNoKG1fdGlt
ZXJTb3VyY2UuZ2V0KCksIG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7Ci19Ci0K
LXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKLXsKLSAgICBpZiAoIW1fdGltZXJTb3Vy
Y2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGdfc291cmNlX2Rlc3Ryb3kobV90aW1lclNvdXJj
ZS5nZXQoKSk7Ci0gICAgY2xlYXJUaW1lclNvdXJjZSgpOwotfQotCi1ib29sIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3RpbWVyU291cmNlOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9S
dW5Mb29wTWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzUwZGEwODkwNmQz
ZDRmZGY4NzdlZWYxYTcyOTA1N2ZiNmEwOWZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SdW5Mb29wTWFj
Lm1tCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
ImNvbmZpZy5oIgotI2ltcG9ydCAiUnVuTG9vcC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXN0YXRpYyBib29sIHNfdXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcDsKLQotdm9p
ZCBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wKCkKLXsKLSAg
ICBzX3VzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3AgPSB0cnVlOwotfQotCi12b2lk
IFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCsrOwotICAg
IGlmIChjdXJyZW50KCkgPT0gbWFpbigpICYmIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwgPT0g
MSAmJiBzX3VzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3ApIHsKLSAgICAgICAgLy8g
VXNlIC1bTlNBcHBsaWNhdGlvbiBydW5dIGZvciB0aGUgbWFpbiBydW4gbG9vcC4KLSAgICAgICAg
W05TQXBwIHJ1bl07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0g
ICAgICAgICAgICBDRlJ1bkxvb3BSdW4oKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBjdXJyZW50
KCktPm1fbmVzdGluZ0xldmVsLS07Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0gICAg
QVNTRVJUKG1fcnVuTG9vcCA9PSBDRlJ1bkxvb3BHZXRDdXJyZW50KCkpOwotCi0gICAgLy8gTmVz
dGluZyBsZXZlbCBjYW4gYmUgMCBpZiB0aGUgcnVuIGxvb3AgaXMgc3RhcnRlZCBleHRlcm5hbGx5
IChzdWNoIGFzIHRoZSBjYXNlIGZvciBYUEMgc2VydmljZXMpLgotICAgIGlmIChtX3J1bkxvb3Ag
PT0gbWFpbigpLT5tX3J1bkxvb3AgJiYgbV9uZXN0aW5nTGV2ZWwgPD0gMSAmJiBzX3VzZUFwcGxp
Y2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3ApIHsKLSAgICAgICAgQVNTRVJUKFtOU0FwcCBpc1J1
bm5pbmddKTsKLSAgICAgICAgW05TQXBwIHN0b3A6bmlsXTsKLSAgICAgICAgTlNFdmVudCAqZXZl
bnQgPSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBsaWNhdGlvbkRlZmluZWQKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtl
UG9pbnQoMCwgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlm
aWVyRmxhZ3M6MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp
bWVzdGFtcDowLjAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lu
ZG93TnVtYmVyOjAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnRleHQ6bmlsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdWJ0eXBlOiAwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRhdGExOjAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGF0YTI6MF07Ci0gICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZXZlbnQgYXRTdGFydDp0cnVl
XTsKLSAgICB9IGVsc2UKLSAgICAgICAgQ0ZSdW5Mb29wU3RvcChtX3J1bkxvb3AuZ2V0KCkpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVu
TG9vcFF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTAxYmQ1YzEyM2IwZjAz
Y2U5YTBjZjkwZTE3MjY5MWY1MDZkOWExYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSA8
UUFic3RyYWN0RXZlbnREaXNwYXRjaGVyPgotI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+Ci0j
aW5jbHVkZSA8UU1ldGFNZXRob2Q+Ci0jaW5jbHVkZSA8UU1ldGFPYmplY3Q+Ci0jaW5jbHVkZSA8
UU9iamVjdD4KLSNpbmNsdWRlIDxRVGltZXJFdmVudD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBSdW5Mb29wOjpUaW1lck9iamVjdCA6IHB1YmxpYyBRT2JqZWN0IHsKLSAgICBRX09C
SkVDVAotcHVibGljOgotICAgIFRpbWVyT2JqZWN0KFJ1bkxvb3AqIHJ1bkxvb3ApIDogbV9ydW5M
b29wKHJ1bkxvb3ApCi0gICAgewotICAgICAgICBpbnQgbWV0aG9kSW5kZXggPSBtZXRhT2JqZWN0
KCktPmluZGV4T2ZNZXRob2QoInBlcmZvcm1Xb3JrKCkiKTsKLSAgICAgICAgbV9tZXRob2QgPSBt
ZXRhT2JqZWN0KCktPm1ldGhvZChtZXRob2RJbmRleCk7Ci0gICAgfQotCi0gICAgUV9TTE9UIHZv
aWQgcGVyZm9ybVdvcmsoKSB7IG1fcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsgfQotICAgIGlubGlu
ZSB2b2lkIHdha2VVcCgpIHsgbV9tZXRob2QuaW52b2tlKHRoaXMsIFF0OjpRdWV1ZWRDb25uZWN0
aW9uKTsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIHRpbWVyRXZlbnQoUVRpbWVy
RXZlbnQqIGV2ZW50KQotICAgIHsKLSAgICAgICAgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZp
cmVkKG1fcnVuTG9vcCwgZXZlbnQtPnRpbWVySWQoKSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAg
IFJ1bkxvb3AqIG1fcnVuTG9vcDsKLSAgICBRTWV0YU1ldGhvZCBtX21ldGhvZDsKLX07Ci0KLXN0
YXRpYyBRRXZlbnRMb29wKiBjdXJyZW50RXZlbnRMb29wOwotCi12b2lkIFJ1bkxvb3A6OnJ1bigp
Ci17Ci0gICAgc3RhdGljIGJvb2wgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZhbHNlOwotICAg
IGlmICghbWFpbkV2ZW50TG9vcElzUnVubmluZykgewotICAgICAgICBtYWluRXZlbnRMb29wSXNS
dW5uaW5nID0gdHJ1ZTsKLSAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhlYygpOwotICAgICAg
ICBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gZmFsc2U7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
UUV2ZW50TG9vcCBldmVudExvb3A7Ci0KLSAgICAgICAgUUV2ZW50TG9vcCogcHJldmlvdXNFdmVu
dExvb3AgPSBjdXJyZW50RXZlbnRMb29wOwotICAgICAgICBjdXJyZW50RXZlbnRMb29wID0gJmV2
ZW50TG9vcDsKLQotICAgICAgICBldmVudExvb3AuZXhlYygpOwotCi0gICAgICAgIGN1cnJlbnRF
dmVudExvb3AgPSBwcmV2aW91c0V2ZW50TG9vcDsKLSAgICB9Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
c3RvcCgpCi17Ci0gICAgaWYgKGN1cnJlbnRFdmVudExvb3ApCi0gICAgICAgIGN1cnJlbnRFdmVu
dExvb3AtPmV4aXQoKTsKLSAgICBlbHNlCi0gICAgICAgIFFDb3JlQXBwbGljYXRpb246OmV4aXQo
KTsKLX0KLQotUnVuTG9vcDo6UnVuTG9vcCgpCi0gICAgOiBtX3RpbWVyT2JqZWN0KG5ldyBUaW1l
ck9iamVjdCh0aGlzKSkKLXsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIGRlbGV0
ZSBtX3RpbWVyT2JqZWN0OwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgbV90
aW1lck9iamVjdC0+d2FrZVVwKCk7Ci19Ci0KLS8vIFJ1bkxvb3A6OlRpbWVyCi0KLXZvaWQgUnVu
TG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIGludCBJRCkKLXsK
LSAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5k
KElEKTsKLSAgICBBU1NFUlQoaXQgIT0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpOwot
ICAgIFRpbWVyQmFzZSogdGltZXIgPSBpdC0+dmFsdWU7Ci0KLSAgICBpZiAoIXRpbWVyLT5tX2lz
UmVwZWF0aW5nKSB7Ci0gICAgICAgIC8vIFN0b3AgdGhlIHRpbWVyIChjYWxsaW5nIHN0b3Agd291
bGQgbmVlZCBhbm90aGVyIGhhc2ggdGFibGUgbG9va3VwKS4KLSAgICAgICAgcnVuTG9vcC0+bV9h
Y3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKLSAgICAgICAgcnVuTG9vcC0+bV90aW1lck9iamVjdC0+
a2lsbFRpbWVyKHRpbWVyLT5tX0lEKTsKLSAgICAgICAgdGltZXItPm1fSUQgPSAwOwotICAgIH0K
LQotICAgIHRpbWVyLT5maXJlZCgpOwotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFz
ZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX0lE
KDApCi0gICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJh
c2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1l
ckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAg
ICBzdG9wKCk7Ci0gICAgaW50IG1pbGxpcyA9IHN0YXRpY19jYXN0PGludD4obmV4dEZpcmVJbnRl
cnZhbCAqIDEwMDApOwotICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0gICAgbV9JRCA9IG1f
cnVuTG9vcC0+bV90aW1lck9iamVjdC0+c3RhcnRUaW1lcihtaWxsaXMpOwotICAgIEFTU0VSVCht
X0lEKTsKLSAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKLX0K
LQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIGlmICghbV9JRCkKLSAg
ICAgICAgcmV0dXJuOwotICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9h
Y3RpdmVUaW1lcnMuZmluZChtX0lEKTsKLSAgICBpZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9ydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5yZW1vdmUoaXQpOwotICAgIG1fcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRp
bWVyKG1fSUQpOwotICAgIG1fSUQgPSAwOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
aXNBY3RpdmUoKSBjb25zdAotewotICAgIHJldHVybiBtX0lEOwotfQotCi0jaW5jbHVkZSAiUnVu
TG9vcFF0Lm1vYyIKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL01JTUVUeXBlUmVnaXN0cnlXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL01JTUVUeXBlUmVnaXN0cnlXaW4uY3BwCmluZGV4IGVkN2I0MjUw
ZjRkY2MxZmVhNWE0ZDgwZjQ5YTEyNjY1YzUyZGM1YzkuLjg1MzI5MzRiMjYxMzg3OTIzMjc4Zjg3
OTVmNDQ2ZjY2MDhmNDFlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9NSU1FVHlwZVJlZ2lzdHJ5V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vTUlNRVR5cGVSZWdpc3RyeVdpbi5jcHAKQEAgLTI2LDEwICsyNiwxMCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKIAotI2luY2x1ZGUgIldp
bmRvd3NFeHRyYXMuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYv
V2luZG93c0V4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCBhYzcwNmM0YzUxMDA0Mjk1
MTUzZTE4NWI0MTQxZDJiYzYxMmZmMGEyLi42YmQ1YzE4YTU5YWQxMmUwMzc1NjE1MjJhMmE3ZjRm
ZWEwMTg5YmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRX
aW4uY3BwCkBAIC00NCw4ICs0NCw4IEBACiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNs
dWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlICJXZWJDb3JlSW5zdGFuY2VIYW5kbGUuaCIK
LSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVk
ZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVw
TWVudVdpbi5jcHAKaW5kZXggMjgwYzQ4NWE5Nzc0Y2MwYzMzNTIyNTkzMmY1YzdhNjU5OWY2MWVk
YS4uODdjNGM5YTkzYWQwNTY5ZGEyOTAyMzhhMDkzNjdlODRkYjJlM2MwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAK
ICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNs
dWRlICJXZWJDb3JlSW5zdGFuY2VIYW5kbGUuaCIKLSNpbmNsdWRlICJXaW5kb3dzRXh0cmFzLmgi
CisjaW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KIAogI2luY2x1ZGUgPHdpbmRvd3MuaD4K
ICNpbmNsdWRlIDx3aW5kb3dzeC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxv
b3BXaW4uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxN2Q2ODQ1ZTlmZmRjMzky
OGMwNjdjN2MxNTg4M2FhYjkwZDI5YTY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDE3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgIldpbmRvd3NFeHRy
YXMuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLQotdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgY29uc3QgVUlOVCBQZXJmb3JtV29y
a01lc3NhZ2UgPSBXTV9VU0VSICsgMTsKLXN0YXRpYyBjb25zdCBMUFdTVFIga1J1bkxvb3BNZXNz
YWdlV2luZG93Q2xhc3NOYW1lID0gTCJSdW5Mb29wTWVzc2FnZVdpbmRvdyI7Ci0KLUxSRVNVTFQg
Q0FMTEJBQ0sgUnVuTG9vcDo6UnVuTG9vcFduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2Us
IFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCi17Ci0gICAgaWYgKFJ1bkxvb3AqIHJ1bkxv
b3AgPSBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oZ2V0V2luZG93UG9pbnRlcihoV25kLCAwKSkpCi0g
ICAgICAgIHJldHVybiBydW5Mb29wLT53bmRQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBh
cmFtKTsKLQotICAgIGlmIChtZXNzYWdlID09IFdNX0NSRUFURSkgewotICAgICAgICBMUENSRUFU
RVNUUlVDVCBjcmVhdGVTdHJ1Y3QgPSByZWludGVycHJldF9jYXN0PExQQ1JFQVRFU1RSVUNUPihs
UGFyYW0pOwotCi0gICAgICAgIC8vIEFzc29jaWF0ZSB0aGUgUnVuTG9vcCB3aXRoIHRoZSB3aW5k
b3cuCi0gICAgICAgIHNldFdpbmRvd1BvaW50ZXIoaFduZCwgMCwgY3JlYXRlU3RydWN0LT5scENy
ZWF0ZVBhcmFtcyk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVybiA6OkRl
ZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwotfQotCi1MUkVTVUxU
IFJ1bkxvb3A6OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0s
IExQQVJBTSBsUGFyYW0pCi17Ci0gICAgc3dpdGNoIChtZXNzYWdlKSB7Ci0gICAgY2FzZSBQZXJm
b3JtV29ya01lc3NhZ2U6Ci0gICAgICAgIHBlcmZvcm1Xb3JrKCk7Ci0gICAgICAgIHJldHVybiAw
OwotICAgIGNhc2UgV01fVElNRVI6Ci0gICAgICAgIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJG
aXJlZCh0aGlzLCB3UGFyYW0pOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1
cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKLX0KLQot
dm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIE1TRyBtZXNzYWdlOwotICAgIHdoaWxlIChCT09M
IHJlc3VsdCA9IDo6R2V0TWVzc2FnZSgmbWVzc2FnZSwgMCwgMCwgMCkpIHsKLSAgICAgICAgaWYg
KHJlc3VsdCA9PSAtMSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICA6OlRyYW5zbGF0ZU1l
c3NhZ2UoJm1lc3NhZ2UpOwotICAgICAgICA6OkRpc3BhdGNoTWVzc2FnZSgmbWVzc2FnZSk7Ci0g
ICAgfQotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIDo6UG9zdFF1aXRNZXNzYWdl
KDApOwotfQotCi1ib29sIFJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFz
cygpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgcmVhbGx5IG9ubHkgbmVlZHMgdG8gYmUgY2FsbGVk
IG9uY2UuCi0KLSAgICBXTkRDTEFTUyB3aW5kb3dDbGFzcyA9IHsgMCB9OwotICAgIHdpbmRvd0Ns
YXNzLmxwZm5XbmRQcm9jICAgICA9IFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jOwotICAgIHdpbmRv
d0NsYXNzLmNiV25kRXh0cmEgICAgICA9IHNpemVvZihSdW5Mb29wKik7Ci0gICAgd2luZG93Q2xh
c3MubHBzekNsYXNzTmFtZSAgID0ga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lOwotCi0g
ICAgcmV0dXJuICEhOjpSZWdpc3RlckNsYXNzKCZ3aW5kb3dDbGFzcyk7Ci19Ci0KLVJ1bkxvb3A6
OlJ1bkxvb3AoKQotewotICAgIHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcygpOwot
Ci0gICAgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdyA9IDo6Q3JlYXRlV2luZG93KGtSdW5Mb29wTWVz
c2FnZVdpbmRvd0NsYXNzTmFtZSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1dfVVNFREVGQVVMVCwgMCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFdORF9NRVNTQUdFLCAwLCAw
LCB0aGlzKTsKLSAgICBBU1NFUlQoOjpJc1dpbmRvdyhtX3J1bkxvb3BNZXNzYWdlV2luZG93KSk7
Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLSAgICAvLyBGSVhNRTogVGVhciBkb3duIHRo
ZSB3b3JrIGl0ZW0gcXVldWUgaGVyZS4KLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewot
ICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIHdha2UgdXAgdGhlIHJ1biBsb29wIGlmIHdlJ3ZlIGFs
cmVhZHkgY2FsbGVkIGRpc3BhdGNoCi0gICAgLy8gYmVmb3JlIHRoZSBydW4gbG9vcCBoYXMgaGFk
IHRoZSB0aW1lIHRvIHJlc3BvbmQuCi0gICAgOjpQb3N0TWVzc2FnZShtX3J1bkxvb3BNZXNzYWdl
V2luZG93LCBQZXJmb3JtV29ya01lc3NhZ2UsIHJlaW50ZXJwcmV0X2Nhc3Q8V1BBUkFNPih0aGlz
KSwgMCk7Ci19Ci0KLS8vIFJ1bkxvb3A6OlRpbWVyCi0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
Ojp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIHVpbnQ2NF90IElEKQotewotICAgIFRpbWVy
TWFwOjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQoSUQpOwotICAg
IGlmIChpdCA9PSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkgewotICAgICAgICAvLyBU
aGUgdGltZXIgbXVzdCBoYXZlIGJlZW4gc3RvcHBlZCBhZnRlciB0aGUgV01fVElNRVIgbWVzc2Fn
ZSB3YXMgcG9zdGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlLgotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgVGltZXJCYXNlKiB0aW1lciA9IGl0LT52YWx1ZTsKLQotICAgIGlmICghdGltZXIt
Pm1faXNSZXBlYXRpbmcpIHsKLSAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3Zl
KGl0KTsKLSAgICAgICAgOjpLaWxsVGltZXIocnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRv
dywgSUQpOwotICAgIH0KLQotICAgIHRpbWVyLT5maXJlZCgpOwotfQotCi1zdGF0aWMgdWludDY0
X3QgZ2VuZXJhdGVUaW1lcklEKCkKLXsKLSAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlVGltZXJJ
RCA9IDE7Ci0gICAgcmV0dXJuIHVuaXF1ZVRpbWVySUQrKzsKLX0KLQotUnVuTG9vcDo6VGltZXJC
YXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29w
KQotICAgICwgbV9JRChnZW5lcmF0ZVRpbWVySUQoKSkKLSAgICAsIG1faXNSZXBlYXRpbmcoZmFs
c2UpCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3Rv
cCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJl
SW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0g
ICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5zZXQobV9JRCwgdGhpcyk7Ci0gICAgOjpTZXRU
aW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQsIG5leHRGaXJlSW50
ZXJ2YWwgKiAxMDAwLCAwKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQot
ewotICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMu
ZmluZChtX0lEKTsKLSAgICBpZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1v
dmUoaXQpOwotICAgIDo6S2lsbFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRv
dywgbV9JRCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9TaGFyZWRUaW1lcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU2hhcmVkVGltZXJXaW4uY3BwCmluZGV4IDc3MDY5YmM5M2EzMjY0ZmNmZjliYzgxMGNk
ZGExMmM3YTc5OTAyOTQuLjM5N2Q2ZGMzNGI3YmNkM2ZmOTlkYzNkY2YyMzZhNTEwM2NmNmM1OTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TaGFyZWRUaW1lcldpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NoYXJlZFRpbWVyV2luLmNwcApA
QCAtMzIsOCArMzIsOCBAQAogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dp
bmRvd3NFeHRyYXMuaD4KIAotI2luY2x1ZGUgIldpbmRvd3NFeHRyYXMuaCIKICNpbmNsdWRlIDxt
bXN5c3RlbS5oPgogCiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1dpbmRvd01lc3NhZ2VMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1dpbmRvd01lc3NhZ2VMaXN0ZW5lci5oCmluZGV4IDFkNDEwZjIyYzI1Njc0
ZTMwMTEzYTNjNzBhZTZhZTdiOGZkZjFjODUuLmEzMmFmOGU2NDIwZDlhZTZhMjY2NTczOGY4YTcw
OWI1MjcwMzFiYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaW5k
b3dNZXNzYWdlTGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2lu
ZG93TWVzc2FnZUxpc3RlbmVyLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNkZWZpbmUgV2luZG93TWVz
c2FnZUxpc3RlbmVyX2gKIAogI2lmIE9TKFdJTkRPV1MpCi0jaW5jbHVkZSAiV2luZG93c0V4dHJh
cy5oIgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dpbmRv
d3NFeHRyYXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaW5kb3dzRXh0cmFzLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4M2Q5ZDk0MzJmOWFkNjIxOWRjYWQyNTMz
YTlmMDgxNTcwZDUwNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dpbmRvd3NFeHRyYXMuaAorKysgL2Rl
di9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgUGF0cmlj
ayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2luZG93c0V4dHJhc19oCi0jZGVm
aW5lIFdpbmRvd3NFeHRyYXNfaAotCi0jaW5jbHVkZSA8d2luZG93cy5oPgotI2luY2x1ZGUgPG9i
amJhc2UuaD4KLSNpbmNsdWRlIDxzaGx3YXBpLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
I2lmbmRlZiBIV05EX01FU1NBR0UKLWNvbnN0IEhXTkQgSFdORF9NRVNTQUdFID0gMDsKLSNlbmRp
ZgotCi1pbmxpbmUgSFJFU1VMVCBnZXRSZWdpc3RyeVZhbHVlKEhLRVkgaGtleSwgTFBDV1NUUiBw
c3pTdWJLZXksIExQQ1dTVFIgcHN6VmFsdWUsIExQRFdPUkQgcGR3VHlwZSwgTFBWT0lEIHB2RGF0
YSwgTFBEV09SRCBwY2JEYXRhKQotewotI2lmIE9TKFdJTkNFKQotICAgIEhLRVkga2V5OwotICAg
IGlmICg6OlJlZ09wZW5LZXlFeFcoaGtleSwgcHN6U3ViS2V5LCAwLCAwLCAma2V5KSAhPSBFUlJP
Ul9TVUNDRVNTKQotICAgICAgICByZXR1cm4gRVJST1JfSU5WQUxJRF9OQU1FOwotICAgIEhSRVNV
TFQgcmVzdWx0ID0gOjpSZWdRdWVyeVZhbHVlRXhXKGtleSwgcHN6VmFsdWUsIDAsIHBkd1R5cGUs
IHN0YXRpY19jYXN0PExQQllURT4ocHZEYXRhKSwgcGNiRGF0YSk7Ci0gICAgOjpSZWdDbG9zZUtl
eShrZXkpOwotICAgIHJldHVybiByZXN1bHQ7Ci0jZWxzZQotICAgIHJldHVybiA6OlNIR2V0VmFs
dWVXKGhrZXksIHBzelN1YktleSwgcHN6VmFsdWUsIHBkd1R5cGUsIHB2RGF0YSwgcGNiRGF0YSk7
Ci0jZW5kaWYKLX0KLQotaW5saW5lIHZvaWQqIGdldFdpbmRvd1BvaW50ZXIoSFdORCBoV25kLCBp
bnQgaW5kZXgpCi17Ci0jaWYgT1MoV0lOQ0UpCi0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KDo6R2V0V2luZG93TG9uZyhoV25kLCBpbmRleCkpOwotI2Vsc2UKLSAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oOjpHZXRXaW5kb3dMb25nUHRyKGhXbmQsIGluZGV4KSk7
Ci0jZW5kaWYKLX0KLQotaW5saW5lIHZvaWQqIHNldFdpbmRvd1BvaW50ZXIoSFdORCBoV25kLCBp
bnQgaW5kZXgsIHZvaWQqIHZhbHVlKQotewotI2lmIE9TKFdJTkNFKQotICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PHZvaWQqPig6OlNldFdpbmRvd0xvbmcoaFduZCwgaW5kZXgsIHJlaW50ZXJw
cmV0X2Nhc3Q8TE9ORz4odmFsdWUpKSk7Ci0jZWxzZQotICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PHZvaWQqPig6OlNldFdpbmRvd0xvbmdQdHIoaFduZCwgaW5kZXgsIHJlaW50ZXJwcmV0X2Nh
c3Q8TE9OR19QVFI+KHZhbHVlKSkpOwotI2VuZGlmCi19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIFdpbmRvd3NFeHRyYXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwCmluZGV4IGViMzBmZjg4NTI5NzJiMTI2M2I3
MGZiNzQyMjJlZDY1YjExMDhiMjQuLmVmOTJjMWFkNzJhNWZmOTcyZjQ1M2I3MWMzZGQ5MGQ2YmM5
Y2VlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFi
YXNlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5EYXRhYmFz
ZVdpbi5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IktVUkwuaCIKICNpbmNsdWRlICJQbHVnaW5QYWNrYWdlLmgiCi0jaW5jbHVkZSAiV2luZG93c0V4
dHJhcy5oIgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+CiAKICNpZiBPUyhXSU5DRSkK
IC8vIFdJTkNFIGRvZXNuJ3Qgc3VwcG9ydCBSZWdpc3RyeSBLZXkgQWNjZXNzIFJpZ2h0cy4gVGhl
IHBhcmFtZXRlciBzaG91bGQgYWx3YXlzIGJlIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvQ2Fy
Ym9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXggMzhmMTM0N2EzNGJhNGMyMDQxNDYxZmVj
NGZlNDRhOGVkZjBhMjYyMi4uZTExMjg3NWMxZDdhMjI5ZDA3YTA0YWZjMGNjOTA2YmVhYWE2NzFl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIu
bW0KQEAgLTczLDkgKzczLDkgQEAKICNpbXBvcnQgPGFzc2VydC5oPgogCiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNp
bXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpbXBvcnQgIldlYktpdExvZ2dp
bmcuaCIKICNpbXBvcnQgIldlYk5TT2JqZWN0RXh0cmFzLmgiCkBAIC0yNzIsNyArMjcyLDcgQEAg
c3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2Fs
bFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmco
KTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwot
ICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxv
b3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1h
aW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3Rv
cnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJC
YWNrRm9yd2FyZExpc3QubW0KaW5kZXggNjgzYjlhODVkMGNjM2U2NTk5ZTBlNmQ3YzEzNmVhOTA3
YzJlOWQ1Ny4uZTFlODBhNzcyNjlhYTI3MDNjZGM0OTgxMDAzMTkyMDY1ZTUzMTNlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KQEAgLTQy
LDcgKzQyLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9UaHJlYWRDaGVjay5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJh
cy5oPgpAQCAtNTAsNiArNDksNyBAQAogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBv
cnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0
IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKQEAgLTEwNSw3ICsxMDUsNyBAQCBXZWJCYWNrRm9yd2FyZExpc3Qg
KmtpdChCYWNrRm9yd2FyZExpc3RJbXBsKiBiYWNrRm9yd2FyZExpc3QpCiB7CiAgICAgSlNDOjpp
bml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJv
Y2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1
bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJD
b3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQppbmRleCAyODI3OGY4Yjc1YTA5ZTEwNTdjZjdl
NDFmOTE0OTExZTU3Y2UxNDc5Li42MGU5OWZhMjYwZDc1MzU4MmYyMWJlYWJiYTc3MjQwMGNhZjY0
ODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVt
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KQEAg
LTQ3LDEyICs0NywxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9JbWFnZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9LVVJMLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgotI2ltcG9ydCA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxp
emVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYv
TWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC05OCw3ICs5
OCw3IEBAIHZvaWQgV0tOb3RpZnlIaXN0b3J5SXRlbUNoYW5nZWQoSGlzdG9yeUl0ZW0qKQogewog
ICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5U
aHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViQ2FjaGUubW0KaW5kZXggNTI2MGU3ZmEwMmM0MDc4MDdkNGRhZGNmMDkzNjdk
MTIxODljZjYwNC4uZWJkYzgxMDJlNGM3YTE0NDgwYzExMmNlMjUyNWQzYzc5NGJlZDgyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCkBAIC0zMyw5ICszMyw5IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Nyb3Nz
T3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5Q2Fj
aGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8
d3RmL1J1bkxvb3AuaD4KIAogQGltcGxlbWVudGF0aW9uIFdlYkNhY2hlCiAKQEAgLTQzLDcgKzQz
LDcgQEAKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRp
YWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxv
b3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWlu
UnVuTG9vcCgpOwogICAgIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKCk7ICAgCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkVsZW1lbnREaWN0aW9uYXJ5Lm1tCmluZGV4IDE3
ZjIyMDE5MDcwYzQwMTE2NTU3YmUwY2E2M2Y3YzRkOGQyZGVmZjYuLjkwOTRhMzhiMjZkOWE4MmY2
NTc2NTYxODE1ZjgxNDQxMmY5N2UwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9X
ZWJFbGVtZW50RGljdGlvbmFyeS5tbQpAQCAtMzksMTIgKzM5LDEyIEBACiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvSW1hZ2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTUNvcmUuaD4K
ICNpbXBvcnQgPFdlYktpdC9ET01FeHRlbnNpb25zLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRp
YWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjcsNyArNjcs
NyBAQCBzdGF0aWMgdm9pZCBjYWNoZVZhbHVlRm9yS2V5KGNvbnN0IHZvaWQgKmtleSwgY29uc3Qg
dm9pZCAqdmFsdWUsIHZvaWQgKnNlbGYpCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5n
KCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsK
LSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5M
b29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25N
YWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNj
L1dlYkljb25EYXRhYmFzZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFi
YXNlLm1tCmluZGV4IGJiZjZlYzNkMGEyMmI2MjIzMmM2OGZhYzk1MWI1MDA0ZDc4ZjM1YzguLmQ0
ZDg5ODc0Zjg3ODAxZGUzYTRmZTkwMjczYzI4Y2U0OWY3Yjk3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCkBAIC00MCwxMSArNDAsMTEgQEAKICNpbXBvcnQg
PFdlYkNvcmUvSWNvbkRhdGFiYXNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ltYWdlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hl
Y2suaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8
d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyBXZWJJY29uRGF0YWJhc2VD
bGllbnQqIGRlZmF1bHRDbGllbnQoKQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygp
OwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0g
ICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiB9CiAKICsgKFdlYkljb25EYXRhYmFzZSAqKXNo
YXJlZEljb25EYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDFjMjI2
MzE5ZjMzZTljMmVjNjg4NjE2MGZkNGE2ZDcyMGQ4Yjg3ZDEuLjU1NGFhNzViYzhmZmFjOTRkMjQz
ZjM0MjNkYTg4OWVjZTMwODQyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAg
LTQ2LDExICs0NiwxMSBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVPYmpDRXh0cmFzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQg
PFdlYkNvcmUvcnVudGltZV9yb290Lmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJl
YWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRo
cmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNjYsNyArNjYsNyBAQCBleHRlcm4gIkMi
IHsKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxp
emVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVu
TG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiAgICAg
V0tTZW5kVXNlckNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCBiMjNi
ZDliNTg3ZjIyZmMzNjJlNmM0YzI1OGI5ZGIyNjE0ZDIwMmQ4Li5mMzVlN2EzOWFmZmRkNGZlYWEw
NmE3Njg5NDk5MTdiMjcyZTdmNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC01NSwxMyArNTUsMTMgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jl
bmRlclZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdC9ET01Q
cml2YXRlLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBv
cnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2RlZmlu
ZSBMb2dpbldpbmRvd0RpZFN3aXRjaEZyb21Vc2VyTm90aWZpY2F0aW9uICAgIEAiV2ViTG9naW5X
aW5kb3dEaWRTd2l0Y2hGcm9tVXNlck5vdGlmaWNhdGlvbiIKQEAgLTc3LDcgKzc3LDcgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7
CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAg
ICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29w
Ojppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWlu
VGhyZWFkKHNlbGYpOwogICAgIFdLU2VuZFVzZXJDaGFuZ2VOb3RpZmljYXRpb25zKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdl
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbQpp
bmRleCAxOTg0YTBiNTE1Y2Q2YTA0MjA5MjdjNmE2YmZiMzJmNzlkNmM1MzcxLi5jNDIxMGY1MzMz
OWZjMGFlNTA5NTYxOTA4NjExYjgwMjVjZmQ3NDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0KQEAgLTI5LDcgKzI5LDYgQEAKICNp
bXBvcnQgPFdlYktpdC9XZWJCYXNlUGx1Z2luUGFja2FnZS5oPgogCiAjaW1wb3J0IDxhbGdvcml0
aG0+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29y
ZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXROU1N0cmluZ0V4dHJhcy5oPgog
I2ltcG9ydCA8V2ViS2l0L1dlYk5TT2JqZWN0RXh0cmFzLmg+CkBAIC0zOCw2ICszNyw3IEBACiAj
aW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9Bc3Nl
cnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxv
b3AuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIApAQCAtNjksNyArNjksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHsKICAgICBK
U0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFk
VG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVN
YWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAg
IFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggZmQ3
YzRiYmVjMWM2YzlhNDhjM2M5YjdiNTg4MzZkZDY5MzkzOWYzMi4uNTU2NDQzYWUyOWYxNzdmMzVk
MTE1ZDI5OTZjZWQ2NjIxNTkyYzFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTY3LDcgKzY3LDYgQEAKICNpbXBvcnQg
PFdlYkNvcmUvUGFnZS5oPiAKICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qcm94eVNlcnZlci5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtp
bmcuaD4gCkBAIC04Miw2ICs4MSw3IEBACiAjaW1wb3J0IDxydW50aW1lL0pTTG9jay5oPgogI2lt
cG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1w
b3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVm
aW5lIExvZ2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24gICAgQCJXZWJMb2dp
bldpbmRvd0RpZFN3aXRjaEZyb21Vc2VyTm90aWZpY2F0aW9uIgpAQCAtMTk1LDcgKzE5NSw3IEBA
IHR5cGVkZWYgc3RydWN0IHsKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAg
ICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJl
YWQoc2VsZik7CiAgICAgV0tTZW5kVXNlckNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpp
bmRleCAyMDQ1ZDhlYWY3MzJmZDJjMDY0ZmRiMWM2NTNiNDA0OTU5MWNkMDE3Li5kMjhmNzkxZjQz
NDE5NTAwMGVlZTlmYjM4OTAwM2I0N2M5ZGI3ODI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02MSw3ICs2MSw2IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KLSNpbXBv
cnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9w
ZXJ0eVNldC5oPgpAQCAtNzEsNiArNzAsNyBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXpl
VGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMTIsNyArMTEyLDcg
QEAgc3RhdGljIGNvbnN0IGludCBJbnZhbGlkQ29ycmVjdGlvblBhbmVsVGFnID0gMDsKIHsKICAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwog
ICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW0KaW5kZXggODhkZTYwZTFmMGRmYjRhYjdmMjIxYjlhMTY1MWEyZjkxNjE5Zjg5MC4uMTRj
OGM3NjEyOGJlZDIzYTJhM2FmYzRmMjBjNDhkMzg0YzExNjIxNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0K
QEAgLTExNSw3ICsxMTUsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgpAQCAtMTI3LDYgKzEyNiw3
IEBACiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgorI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxF
KFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCkBAIC0yMDAyLDcgKzIwMDIsNyBAQCBQYXNzUmVmUHRy
PEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3
b3JraW5nQ29udGV4dAogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdU
Rjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChz
ZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNo
aXZlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCmluZGV4IGFl
ZWJkOTcyY2M1ODdlNTFlMzY0ODFkNjEyZTJjZDViMjYxM2MzOTUuLmNkOWY2YjZhM2M1M2I2OTlh
NjI5ZDYwMmQ3MTc1OTA2NDNkYjhjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViQXJjaGl2ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFy
Y2hpdmUubW0KQEAgLTM2LDEwICszNiwxMCBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSW5p
dGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9S
dW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2lt
cG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTY5
LDcgKzY5LDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViU3ViZnJhbWVBcmNoaXZlc0tl
eSA9IEAiV2ViU3ViZnJhbWVBcmNoaXZlcyI7CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFk
aW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQo
KTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBS
dW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXpl
T25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRh
dGFTb3VyY2UubW0KaW5kZXggZWMwNWRkMmU2Mzg4ZGE0Y2RiYzc2NjJkMjczODAyZWQ2OTljODI3
Ni4uMzBiYzQ2YTdkMWY2MjZlODk1ZWQ0NjEzZDE2Y2E2ZWM3YmJlYWQ0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQpAQCAtNTQsNyArNTQsNiBAQAogI2lt
cG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291
cmNlQnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2ltcG9y
dCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9X
ZWJDb3JlVVJMUmVzcG9uc2UuaD4KQEAgLTY1LDYgKzY0LDcgQEAKICNpbXBvcnQgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtMTM0LDcgKzEzNCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFz
cyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgaWYgKHNl
bGYgPT0gW1dlYkRhdGFTb3VyY2UgY2xhc3NdKSB7CiAgICAgICAgIEpTQzo6aW5pdGlhbGl6ZVRo
cmVhZGluZygpOwogICAgICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFp
blRocmVhZCgpOwotICAgICAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKKyAgICAgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgICAg
IFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggYjY1NjZjOWZkMThlNzVjMGJi
YjU4MGQyNTU2NmNhYTRmY2Y4ZjI1Ni4uMWNlZGIxNTY0NzM1ZTQ1OWU3NThmMTE5MTQ3MGZmMjcw
ZGE4ZWE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0x
MTAsNyArMTEwLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SZW5kZXJXaWRnZXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1NpbXBsZUZvbnREYXRhLmg+CkBAIC0xMzAsNiArMTI5LDcgQEAKICNp
bXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbXBvcnQg
PFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgpAQCAtNTYzLDcgKzU2Myw3IEBAIHN0YXRpYyBOU0Nl
bGxTdGF0ZVZhbHVlIGtpdChUcmlTdGF0ZSBzdGF0ZSkKIHsKICAgICBKU0M6OmluaXRpYWxpemVU
aHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRo
cmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwor
ICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmlu
YWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiAgICAgCiAgICAgaWYgKCFvbGRTZXRDdXJzb3JGb3JN
b3VzZUxvY2F0aW9uSU1QKSB7CkBAIC0yMjYwLDcgKzIyNjAsNyBAQCBzdGF0aWMgYm9vbCBtb3Vz
ZUV2ZW50SXNQYXJ0T2ZDbGlja09yRHJhZyhOU0V2ZW50ICpldmVudCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuVHlwZXM6W1tzZWxmIGNsYXNzXSBfaW5zZXJ0YWJsZVBhc3Rl
Ym9hcmRUeXBlc11dOwogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6
aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6
UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6
ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxm
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5k
ZXggMWYzMzMwZmU1MjgxZTU3ZDg4ZWUyMzZiODg1Yjg5NzViYjJjZWU1OS4uYTBlYWU3MTcwMzY4
NGVhMjk0NTE0MTU4MjJiMzE4OGM1NWMwZDhjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC00MywxMCArNDMsMTAgQEAKICNpbXBvcnQgPFdlYkNv
cmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCkBAIC0zMDksNyArMzA5LDcgQEAgcHVibGljOgogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRo
cmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhy
ZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7Cisg
ICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAKICAgICBOU0RpY3Rpb25hcnkg
KmRpY3QgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6CiAgICAg
ICAgIEAiVGltZXMiLCAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0U3RhbmRhcmRGb250UHJl
ZmVyZW5jZUtleSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVz
b3VyY2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCmluZGV4
IDM5NjRmNmY3OWNjMjNlZTEyZWEwYjJlMDc5MzkwNjkzZmQ4ZDE5MGIuLjhjNjQwMzA3ODUzYzMy
OTRjYjhhNTQ2M2VlNDU0NzJmYjcyYThlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJSZXNvdXJjZS5tbQpAQCAtMzgsMTMgKzM4LDEzIEBACiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9UZXh0RW5jb2RpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29y
ZVVSTFJlc3BvbnNlLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTY4LDcgKzY4LDcg
QEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViUmVzb3VyY2VSZXNwb25zZUtleSA9ICAgICAg
ICAgIEAiV2ViUmVzb3VyY2VSZXNwb25zZSIKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRp
bmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgp
OwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1
bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVP
bk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJU
ZXh0SXRlcmF0b3IubW0KaW5kZXggOWIxYmQ4ZmViNTUzZmQ4ZDExMGFkZTJjZjYzNjVkYTQyNDEw
NTc2Yy4uMmEwYjgyNWYxZjk3MjI4ZGJjYjdhNjlmZGNkMTY3MThhMDE0YzRhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0SXRlcmF0b3IubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0SXRlcmF0b3IubW0KQEAgLTI5LDExICsyOSwx
MSBAQAogI2ltcG9ydCAiRE9NUmFuZ2VJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViVHlwZXNJbnRl
cm5hbC5oIgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9X
ZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTAs
NyArNTAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHsKICAgICBKU0M6OmluaXRpYWxp
emVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFp
blRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpD
RmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCA2ZDYzYzhjM2Q2MTM2NzhiMTIxYTc2MWRhZTI0MzllY2QxZDNhNTA3Li43
MjA0NDc5NmYzMDY4MjRiNzM2Mzc3NDE3MWVmMjMyZDY2MjlkYmI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNjIsNyArMTYyLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUv
UmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU2NoZWR1bGVy
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CkBAIC0xOTYsNiArMTk1LDcgQEAKICNpbXBvcnQgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAj
aW1wb3J0IDx3dGYvUmVmUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpAQCAt
MzEzNiw3ICszMTM2LDcgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHRvU3RyaW5nVmVjdG9yKE5T
QXJyYXkqIHBhdHRlcm5zKQogICAgIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKCk7CiAgICAg
SlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVh
ZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXpl
TWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAog
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2Vs
ZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSkgbmFtZTpOU0Fw
cGxpY2F0aW9uV2lsbFRlcm1pbmF0ZU5vdGlmaWNhdGlvbiBvYmplY3Q6TlNBcHBdOwogICAgIFtb
TlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxl
Y3RvcjpAc2VsZWN0b3IoX2NhY2hlTW9kZWxDaGFuZ2VkTm90aWZpY2F0aW9uOikgbmFtZTpXZWJQ
cmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gb2JqZWN0Om5p
bF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQppbmRleCA0ZDEwOGYw
YWM2ZDUxMjMwYmJlOWYxNTRlZGYxMzkwMjg2NjAyZGJlLi4wZTA2OWE0OGY4YjQxN2E1N2U1YWY2
NzE3YjZiODg1MWI1ZTQzYmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdEYXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEubW0KQEAgLTM0LDEwICszNCwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRl
eHRVSUNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9v
cC5oPgogI2ltcG9ydCA8b2JqYy9vYmpjLWF1dG8uaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0
Zi9SdW5Mb29wLmg+CiAKIEJPT0wgYXBwbGljYXRpb25Jc1Rlcm1pbmF0aW5nID0gTk87CiBpbnQg
cGx1Z2luRGF0YWJhc2VDbGllbnRDb3VudCA9IDA7CkBAIC02Nyw3ICs2Nyw3IEBAIExheWVyRmx1
c2hDb250cm9sbGVyOjpMYXllckZsdXNoQ29udHJvbGxlcihXZWJWaWV3KiB3ZWJWaWV3KQogewog
ICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5U
aHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGJlMDkyN2RiZTBhOTIwNDVlOTgwNTk0NTkzNTQ3
ZTAyZDBmMGNiOGQuLjgxMzMyMTVmNWM4Yjk4OGFjZGYwYTJhMzhhMTliOGMwZTQwMjc4ZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQwLDcgKzQwLDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAK
ICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOTE3ZGRjNWMxNTdkNDZmYTk5MGM2
YTkwYmM0NjhmYzcyZGIzNWJlZC4uOTViZmFjYWU4NDkzZTNkNzdhNzEwODM0N2U5ODQ0YzJiOGU3
M2IzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtNDQsNyArNDQsNyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0luaXRpYWxpemVMb2dnaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lm
IFVTRShTRUNVUklUWV9GUkFNRVdPUkspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAwMGY0MDY4Y2Y4MDEyODNhMmI4NmYwNWRmYmI1YTU0
Nzk1YjMxYWRhLi5kZjVlYmY3MDA3MDdiNTM3YWY2ZGQxMTNmZjE5ZTMxZGViZWM5NTkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTM1
LDcgKzM1LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNl
IFdURiB7CiAgICAgY2xhc3MgUnVuTG9vcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA0MTQwMmI1NGFj
ZmQwYzY1NGY4NTRjYWIwNjJjMzlhMTQ3YmNiMjg5Li44ZjhhN2Y1MTRmNDcxMDRmZTQ1ZGYyYjRl
MTFlZTRkZjRlZTM4ODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUg
IlNjaGVkdWxhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgX0NGQ2FjaGVkVVJMUmVzcG9uc2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25p
dG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRv
ci5oCmluZGV4IGQ3YTAzNzVjNzg1MTVhMjg4NDIxYWZiNmVlYTQyZTU1MDRmZDdiNjUuLjhmYmVl
ZmMwNjEwMDkzNzFlZjE2NTgzMmRmMTI1YTM4NDdhZGRiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaApAQCAtMjgsNyAr
MjgsNyBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGQ2FjaGVkVVJMUmVz
cG9uc2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5j
cHAKaW5kZXggNTVkZjZjNWZlNmY0ZjM2N2Q3YTc0N2E2ZTA5NjM4NGVmMjM4NDBiYS4uYzg4MTg1
YzE0NDZiYzZlMGUwYzhkNzgzMTIxZjgxYjNkMTRlMWFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJv
Y2Vzcy5jcHAKQEAgLTI3LDkgKzI3LDcgQEAKICNpbmNsdWRlICJPZmZsaW5lU3RvcmFnZVByb2Nl
c3MuaCIKIAogI2luY2x1ZGUgIk9mZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXgg
NzY3OTI2MDljMDUxZDI5MzVjZmVjZmY3MmNkMTJhNTc3OTI3YTk5ZC4uNTVhMGI0N2JkYTNiMjdj
MWEzZjhhZGM1YTk5MjcwYmZkNjA2OWMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0yNiwxNCArMjYsMTIgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKLXVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKIGNsYXNzIENv
bm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
Q29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAppbmRleCBjNThkNGExMjY5MzliYWNlZmZjNjdiNGI2MDAy
OTRiMDQ3YjFhY2E5Li5hOTAzNmM1ODExZTdjNjllOWYyMjg1MjMwMTQ0Mzg5NjQ3ZmYyMDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaApAQCAtNTUs
NyArNTUsNyBAQCBRVF9FTkRfTkFNRVNQQUNFCiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNzSWRl
bnRpZmllci5oIgogI2VuZGlmCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXVEYg
ewogY2xhc3MgUnVuTG9vcDsKIH0KIApAQCAtMTM1LDggKzEzNSw4IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBpZGVudGlmaWVySXNOdWxsKElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1
cm4gIWlkZW50aWZpZXI7IH0KICNlbmRpZgogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVj
dGlvbj4gY3JlYXRlU2VydmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBXZWJDb3Jl
OjpSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0
aW9uPiBjcmVhdGVDbGllbnRDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVudCosIFdlYkNvcmU6
OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rp
b24+IGNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV1RGOjpSdW5M
b29wKiBjbGllbnRSdW5Mb29wKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBj
cmVhdGVDbGllbnRDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVudCosIFdURjo6UnVuTG9vcCog
Y2xpZW50UnVuTG9vcCk7CiAgICAgfkNvbm5lY3Rpb24oKTsKIAogICAgIENsaWVudCogY2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KQEAgLTE4NSw3ICsxODUsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkZWNyZW1lbnREaXNwYXRjaE1lc3NhZ2VNYXJrZWREaXNwYXRjaFdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5Q291bnQoKSB7IC0tbV9pbkRpc3BhdGNoTWVzc2FnZU1hcmtlZERpc3Bh
dGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudDsgfQogCiBwcml2YXRlOgotICAgIENvbm5l
Y3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50KiwgV2ViQ29yZTo6UnVuTG9v
cCogY2xpZW50UnVuTG9vcCk7CisgICAgQ29ubmVjdGlvbihJZGVudGlmaWVyLCBib29sIGlzU2Vy
dmVyLCBDbGllbnQqLCBXVEY6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwogICAgIHZvaWQgcGxh
dGZvcm1Jbml0aWFsaXplKElkZW50aWZpZXIpOwogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRl
KCk7CiAgICAgCkBAIC0yMzEsNyArMjMxLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pc0Nv
bm5lY3RlZDsKICAgICBSZWZQdHI8V29ya1F1ZXVlPiBtX2Nvbm5lY3Rpb25RdWV1ZTsKLSAgICBX
ZWJDb3JlOjpSdW5Mb29wKiBtX2NsaWVudFJ1bkxvb3A7CisgICAgV1RGOjpSdW5Mb29wKiBtX2Ns
aWVudFJ1bkxvb3A7CiAKICAgICBIYXNoTWFwPFN0cmluZ1JlZmVyZW5jZSwgc3RkOjpwYWlyPFJl
ZlB0cjxXb3JrUXVldWU+LCBSZWZQdHI8V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyPj4+IG1fd29y
a1F1ZXVlTWVzc2FnZVJlY2VpdmVyczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcAppbmRleCBiYTU2NmY2NDBhMDU3NTcz
YzUzNGE3ZDczNjA4Y2E3MmVkMTBmNjg1Li41ZjNiNWQ5ZDAzNDA3MmRlOTkzMGJjN2ZhZmU3ZDFh
M2ZjNGRhMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL21h
Yy9Db25uZWN0aW9uTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L21hYy9Db25uZWN0aW9uTWFjLmNwcApAQCAtMjksMTYgKzI5LDE0IEBACiAjaW5jbHVkZSAiRGF0
YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjaW5jbHVkZSAiTWFjaFV0aWxp
dGllcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPG1hY2gvbWFj
aF9lcnJvci5oPgogI2luY2x1ZGUgPG1hY2gvdm1fbWFwLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxv
b3AuaD4KIAogI2lmIEhBVkUoWFBDKQogI2luY2x1ZGUgPHhwYy94cGMuaD4KICNlbmRpZgogCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIENvcmVJUEMgewogCiBzdGF0aWMg
Y29uc3Qgc2l6ZV90IGlubGluZU1lc3NhZ2VNYXhTaXplID0gNDA5NjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9Q
bHVnaW5Qcm9jZXNzTWFpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQppbmRleCA3MzA0NWQz
OTFjY2I4NDc5ZmIxYjJkNTZkYTY1ZDY2NTU1ZjUxODRmLi41NDdiYWEwZmMzMzRlZDM2YTNjY2U4
OWJmMmE5ZmEzNGEyYTY5ZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW0KKysr
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9j
ZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0ICJOZXRz
Y2FwZVBsdWdpbk1vZHVsZS5oIgogI2ltcG9ydCAiUGx1Z2luUHJvY2Vzcy5oIgogI2ltcG9ydCAi
V0tCYXNlLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9SdW5M
b29wLmg+CiAKICNpZiBVU0UoQVBQS0lUKQogQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChXZWJO
U0FwcGxpY2F0aW9uRGV0YWlscykKQEAgLTQwLDggKzQwLDYgQEAKIEBlbmQKICNlbmRpZgogCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFBs
dWdpblByb2Nlc3NNYWluRGVsZWdhdGUgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9t
YWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50
cnlQb2ludC5tbQppbmRleCA4N2ZjYzRmZDNmZjRlMDUwMmUyOTNkODBlODUyMzk0M2E0OTEyMDli
Li4xMjQxODJkZWQ5OGJhNGI5YjU0NWUwNDA4YTNlODk4YzIzNmExNDBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1
Z2luU2VydmljZUVudHJ5UG9pbnQubW0KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCkBA
IC0zMSw3ICszMSw3IEBACiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCiAjaW1wb3J0ICJXS0Jh
c2UuaCIKICNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCi0jaW1wb3J0IDxXZWJDb3Jl
L1J1bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogZXh0
ZXJuICJDIiBXS19FWFBPUlQgdm9pZCBQbHVnaW5TZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5l
Y3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5oCmluZGV4IDA1MGM1N2NhNTI2YTVlNWYzMjI5NmI1NTZiZGJkM2ZiZWFmOTQ0YmEuLmUyYTE1
YjdlNWFkZGNjNTFjNjBhOGIyMDU0ODk4YWUxY2I5YjI3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtMzQsOSAr
MzQsOSBAQAogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAgICAgY2xhc3MgRGF0
YVJlZmVyZW5jZTsKQEAgLTE4NCwxNCArMTg0LDE0IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6
SW50UmVjdCBtX2RpcnR5UmVjdDsKIAogICAgIC8vIFRoZSBwYWludCB0aW1lciwgdXNlZCBmb3Ig
Y29hbGVzY2luZyBwYWludGluZy4KLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5D
b250cm9sbGVyUHJveHk+IG1fcGFpbnRUaW1lcjsKLSAgICAKKyAgICBSdW5Mb29wOjpUaW1lcjxQ
bHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGFpbnRUaW1lcjsKKwogICAgIC8vIEEgY291bnRlciB1
c2VkIHRvIHByZXZlbnQgdGhlIHBsdWctaW4gZnJvbSBiZWluZyBkZXN0cm95ZWQuCiAgICAgdW5z
aWduZWQgbV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RDb3VudDsKIAogICAgIC8vIEEgdGltZXIg
dGhhdCB3ZSB1c2UgdG8gcHJldmVudCBkZXN0cnVjdGlvbiBvZiB0aGUgcGx1Zy1pbiB3aGlsZSBw
bHVnLWluCiAgICAgLy8gY29kZSBpcyBvbiB0aGUgc3RhY2suCi0gICAgV2ViQ29yZTo6UnVuTG9v
cDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BsdWdpbkRlc3Ryb3lUaW1lcjsKKyAg
ICBSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1Z2luRGVzdHJveVRp
bWVyOwogCiAgICAgLy8gV2hldGhlciB3ZSdyZSB3YWl0aW5nIGZvciB0aGUgcGx1Zy1pbiBwcm94
eSBpbiB0aGUgd2ViIHByb2Nlc3MgdG8gZHJhdyB0aGUgY29udGVudHMgb2YgaXRzCiAgICAgLy8g
YmFja2luZyBzdG9yZSBpbnRvIHRoZSB3ZWIgcHJvY2VzcyBiYWNraW5nIHN0b3JlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKaW5kZXggMWExYWVk
NmVjYzQwNmE4N2ZhZjEzODMzZTdhMWZkY2YxZDE4OTBhNC4uM2I2MDE2MTRmODQyMmZjMjRhNzg4
OGNhODgyZDRiOTQ3MmUzODU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L1BsdWdpblByb2Nlc3MuY3BwCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgUExBVEZPUk0oTUFD
KQogI2luY2x1ZGUgPGNydF9leHRlcm5zLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IDBhODdiMmQ5ZmFhODBmN2VlNjE3NjQ3MGY2YjU1NDc5
NDIwYzhkOGUuLjdkNjA3ZTQ4NjY1ZDU5MTZmMWZhYjFkNDhhZGJhNzdhZTMyMWZkOGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCkBAIC0xMDAsNyAr
MTAwLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fc3VwcG9ydHNBc3luY2hyb25vdXNQ
bHVnaW5Jbml0aWFsaXphdGlvbjsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBsdWdp
blByb2Nlc3M+IG1fbWluaW11bUxpZmV0aW1lVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8UGx1
Z2luUHJvY2Vzcz4gbV9taW5pbXVtTGlmZXRpbWVUaW1lcjsKIAogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oTUFDKQogICAgIC8vIFRoZSBNYWNoIHBvcnQgdXNl
ZCBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDA0MmU1M2IyMTIw
YzI2ODhhOTE1OThkMTMxY2UwOTdlNTliM2RjMmYuLjIwYzhmMDhiOTUwZDQxNTAwNDYwNDk5N2Ew
NzA5YjZlMGYxODVjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zOCw4ICszOCw4IEBACiAjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQu
Y3BwCmluZGV4IDhkZTY1MjE2YjVlNjEwNDZhMjVkNGNiZWQzZmEzY2I2MjZhYTEwYzkuLmQ5NDU0
ZDlhNmI5MzE3ZmZlYmYzNjllZmRiZTAxYmNlZWJlZmJlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcApAQCAt
MzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPFFHdWlBcHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRU3Ry
aW5nTGlzdD4KICNpbmNsdWRlIDxRdEdsb2JhbD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3Au
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblBy
b2Nlc3NNYWluVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3VuaXgvUGx1
Z2luUHJvY2Vzc01haW5Vbml4LmNwcAppbmRleCA3M2ZhZjBhMzM1NzI4M2E2MWE3ZmI5M2RmODM2
MTZhMmZlYTFhNGYzLi44Zjk5Mzc3OThhZWNlMDNkZDdmNjUzYmVlODczM2M1OTNkMDNmYThlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vz
c01haW5Vbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3VuaXgvUGx1
Z2luUHJvY2Vzc01haW5Vbml4LmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIk5ldHNj
YXBlUGx1Z2luLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYktp
dDJJbml0aWFsaXplLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8Z2RrL2dka3guaD4K
ICNpbmNsdWRlIDxndGsvZ3RrLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3Bw
CmluZGV4IGU3MmEzNzM5ZTVkMDQ5NjIyNGZlMDQ0NDNhYzYwOGM3ZDg2NWU2NzUuLjQ3YTRiNzYy
MThhZjkyYmFmMzFhZDIyMjQwZjU3MDVlOWMzMzI3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
aGlsZFByb2Nlc3MuY3BwCkBAIC0zMiw4ICszMiw2IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAj
ZW5kaWYKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBDaGlsZFByb2Nlc3M6OkNoaWxkUHJvY2VzcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzLmgKaW5kZXggODc4ZDViZDM2YzMxZjY1YmMzNWM1NmZlNWJhY2QxYWVlYTIxMDY4OC4uNTQ0
MjMwZmI4ZjczYWQxNGY4ZDA2NmFjYzc4NDczODE2YzgwYjI0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuaApAQCAtMjksOSArMjksOSBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKICNpbmNsdWRlICJNZXNzYWdlU2Vu
ZGVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTEwMyw3ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIC8vIGFmdGVy
IGEgZ2l2ZW4gcGVyaW9kIG9mIHRpbWUuCiAgICAgdW5zaWduZWQgbV90ZXJtaW5hdGlvbkNvdW50
ZXI7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxDaGlsZFByb2Nlc3M+IG1fdGVybWlu
YXRpb25UaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxDaGlsZFByb2Nlc3M+IG1fdGVybWluYXRp
b25UaW1lcjsKIAogICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
CiAgICAgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKaW5kZXggMDU0NjBm
YTJkZWRkYWY1OTNlZDczYWQ3ODBkM2YyZmZiZjJmNDM0Ni4uYWVmMWE0NzVhOWExYjEyMDY5NTZk
YzFjYTkwYWY5OTdjZTRjYWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0No
aWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzUHJveHkuY3BwCkBAIC0yNiw5ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQ2hpbGRQcm9jZXNzUHJveHkuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQ
b2ludC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xl
Z2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oCmluZGV4IGEzZDJmOTYwZjgxNjE2
ZWE3NjBkNzc3NDcwYzFkNzkxMzg1ZmI4MmEuLmYzMjVjY2QwOWYxODM3OGZmMTAxNjM4ZWMzMGQ3
ZTE4ZDhmZDhiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJv
Y2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50LmgKQEAgLTI5LDkgKzI5LDkgQEAKICNpbXBvcnQg
IkNoaWxkUHJvY2Vzcy5oIgogI2ltcG9ydCAiQ29tbWFuZExpbmUuaCIKICNpbXBvcnQgIldlYktp
dDJJbml0aWFsaXplLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdl
YktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KKyNpbXBvcnQgPHd0
Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC05NSw3ICs5NSw3IEBAIGlu
dCBDaGlsZFByb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgQ2hpbGRQ
cm9jZXNzVHlwZTo6c2hhcmVkKCkuaW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKICAgICB9CiAKLSAg
ICBXZWJDb3JlOjpSdW5Mb29wOjpydW4oKTsKKyAgICBSdW5Mb29wOjpydW4oKTsKIAogICAgIEBh
dXRvcmVsZWFzZXBvb2wgewogICAgICAgICBkZWxlZ2F0ZS5kb1Bvc3RSdW5Xb3JrKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAppbmRleCA4NGY3MzZmMmZh
NmI1OTRiMjVmYjZiOWI1YzM3ZGVhZDc1NTYxM2JkLi5iYzIwMjFmYTQ4ZDMwMzA2YjhjNjliNWQ3
ZWMxZjVlNTE3MjdhMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2l0
MkluaXRpYWxpemUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlh
bGl6ZS5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0luaXRpYWxpemVMb2dnaW5nLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgUExB
VEZPUk0oTUFDKQogI2luY2x1ZGUgIldlYlN5c3RlbUludGVyZmFjZS5oIgpAQCAtNDYsNyArNDYs
NyBAQCB2b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKIAogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVh
ZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpS
dW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXpl
TWFpblJ1bkxvb3AoKTsKIAogI2lmICFMT0dfRElTQUJMRUQKICAgICBXZWJDb3JlOjppbml0aWFs
aXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwCmluZGV4
IGQ0MmFiNGU3ZTFhNjJiZTBhZmEzOGNlYzBjMTBmMTQ0NTg0ZjZmNWQuLjg2NDY0ZjA0ZDY4ZTM0
NmM1YTYyZjBiM2Q5YzNhNGRlMzZlNzZiOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmNwcApAQCAtMzQs
NyArMzQsNyBAQAogI2luY2x1ZGUgIlNoYXJlZFdvcmtlclByb2Nlc3NQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDxjcnRfZXh0ZXJu
cy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFy
ZWRXb3JrZXJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1No
YXJlZFdvcmtlclByb2Nlc3MuaAppbmRleCA4MmM1OWMwNjE1MGJhOWNiODJkMmViMGU2YzU4MmI4
NTRkODY5ODQ5Li4wNTBmNWRlN2NhMzRhZDVkNTJkMDZhMjdhMTgwNDcxNTQyMDg0YmQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclBy
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdv
cmtlclByb2Nlc3MuaApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIC8vIE91ciB3ZWIg
cHJvY2VzcyBjb25uZWN0aW9ucy4KICAgICBWZWN0b3I8UmVmUHRyPFdlYlByb2Nlc3NDb25uZWN0
aW9uPj4gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnM7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpU
aW1lcjxTaGFyZWRXb3JrZXJQcm9jZXNzPiBtX21pbmltdW1MaWZldGltZVRpbWVyOworICAgIFJ1
bkxvb3A6OlRpbWVyPFNoYXJlZFdvcmtlclByb2Nlc3M+IG1fbWluaW11bUxpZmV0aW1lVGltZXI7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCBjYmUzNGExYTkw
ZmI5YmE5YTViZjc5MzY1YmIxN2QyMzRhOWQ4YTQzLi5iYjdlMjA4NTJhZGY5NGFkMDYwYzU3YTlj
ZjhjOTE0NjA2YzVjNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCkBAIC0yNywxMSArMjcsMTEgQEAKICNkZWZp
bmUgRmluZEluZGljYXRvcldpbmRvd19oCiAKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFj
ZS5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbXBvcnQgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiBA
Y2xhc3MgV0tGaW5kSW5kaWNhdG9yV2luZG93QW5pbWF0aW9uOwogQGNsYXNzIFdLVmlldzsKQEAg
LTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBXS1dpbmRvd0JvdW5jZUFuaW1hdGlvbkNvbnRl
eHRSZWYgbV9ib3VuY2VBbmltYXRpb25Db250ZXh0OwogICAgIFJldGFpblB0cjxXS0ZpbmRJbmRp
Y2F0b3JXaW5kb3dBbmltYXRpb24+IG1fYm91bmNlQW5pbWF0aW9uOwogCi0gICAgV2ViQ29yZTo6
UnVuTG9vcDo6VGltZXI8RmluZEluZGljYXRvcldpbmRvdz4gbV9zdGFydEZhZGVPdXRUaW1lcjsK
KyAgICBSdW5Mb29wOjpUaW1lcjxGaW5kSW5kaWNhdG9yV2luZG93PiBtX3N0YXJ0RmFkZU91dFRp
bWVyOwogICAgIFJldGFpblB0cjxXS0ZpbmRJbmRpY2F0b3JXaW5kb3dBbmltYXRpb24+IG1fZmFk
ZU91dEFuaW1hdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbQppbmRleCBjNzZlNjU5MzVhZjVhZmVkN2M2Yjk0YThmMjFhMDc4NjkyOTY3N2MwLi4y
OGQ5NTg3ZWEzODk2NjNlZGZiYzlkNGZhYzY0MTAyYmM2Y2ZlNTdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC03OCw3ICs3OCw2IEBACiAjaW1wb3J0
IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bs
YXRmb3JtU2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlZ2lvbi5oPgotI2ltcG9ydCA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V2ViQ29yZU5TU3RyaW5nRXh0cmFzLmg+CkBAIC04OSw2ICs4OCw3IEBACiAjaW1wb3J0IDxzeXMv
c3RhdC5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogLyogQVBJIGludGVybmFscy4gKi8KICNpbXBv
cnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExh
eWVyVHJlZUhvc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaAppbmRleCA0NjZkZWE0NTRj
YTljNWVkODZhNTQxYjc0OGE1MTEyOGZiNmQ4MTJhLi4yYjRlZTRhYWI2ZDg4OGI5YTFjNjQ3ZWE1
MmQyMDJkMmVlNTY2YTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdFByb3h5LmgKQEAgLTM0LDEwICszNCwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
R3JhcGhpY3NTdXJmYWNlVG9rZW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCmluZGV4IGU1ZDE2NjM5N2Ix
ZGFlZTg4Yzk2ZDA5YmFkMTg2ZDliZTcyNzI5NGEuLjFjYTgwZDhiN2QxN2Y2NmE5YjRlZTdhZmE3
M2VkYmE5OGFmYjE3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5SW1wbC5oCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5jbHVkZSAiQmFja2luZ1N0b3Jl
LmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNv
bnRleHQuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZWdpb247CkBAIC0xMTgsNyArMTE4
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNCYWNraW5nU3RvcmVEaXNjYXJkYWJsZTsKICAg
ICBPd25QdHI8QmFja2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsKIAotICAgIFdlYkNvcmU6OlJ1
bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhUHJveHlJbXBsPiBtX2Rpc2NhcmRCYWNraW5nU3RvcmVU
aW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5SW1wbD4gbV9kaXNjYXJk
QmFja2luZ1N0b3JlVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVy
RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xh
dW5jaGVyRWZsLmNwcAppbmRleCAzYTM2MzM0N2Y4ZWNhYmMzNTI3NWZlYzBiNjUxM2IwYTM0YzIy
ODgxLi43ODEyZTY2NTUyYzY3MmRjNmM0NTc0MTkxM2ZjZjg5ZDRhYmM5OGIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNz
TGF1bmNoZXJFZmwuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxl
U3lzdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3Au
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsu
Y3BwCmluZGV4IGY2NWM3ZWQwYjJiODM5MGNhOGE1YzY0YjllNWE5ZWM5NDYyMWI0ZDAuLmNiNjVk
YjRjOTRkYjcyNDEzY2ZiZTA1NjI0Y2Y3OWJjMDhmMDI5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0
ay5jcHAKQEAgLTMzLDkgKzMzLDkgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUhhbmRsZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1
ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8bG9jYWxlLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbQppbmRleCA3Yzk1MTY2OGNkY2VkOWEzYTZlZDA0NzMwYTRlNGZlYTg0OGM3MTMwLi5k
YWZhZWM0NTA2MjkwNTI3OWQ4Y2MzMWIyMjJhYTNjMGM0NTZjM2Q5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbQpAQCAtMjksNyArMjksNiBAQAogI2ltcG9ydCAiRHluYW1pY0xpbmtlckVudmlyb25t
ZW50RXh0cmFjdG9yLmgiCiAjaW1wb3J0ICJFbnZpcm9ubWVudFZhcmlhYmxlcy5oIgogI2ltcG9y
dCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPGNydF9leHRlcm5zLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9y
dCA8bWFjaC9tYWNoaW5lLmg+CkBAIC00MCw2ICszOSw3IEBACiAjaW1wb3J0IDxzeXMvc3RhdC5o
PgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAjaW1w
b3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
QEAgLTQ4LDggKzQ4LDYgQEAKICNpbXBvcnQgPHhwYy94cGMuaD4KICNlbmRpZgogCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQogLy8gRklYTUU6IFdlIHNob3VsZCBiZSBkb2luZyB0aGlzIGFu
b3RoZXIgd2F5LgogZXh0ZXJuICJDIiBrZXJuX3JldHVybl90IGJvb3RzdHJhcF9yZWdpc3RlcjIo
bWFjaF9wb3J0X3QsIG5hbWVfdCwgbWFjaF9wb3J0X3QsIHVpbnQ2NF90KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNo
ZXJRdC5jcHAKaW5kZXggM2FmYzY2ZDQ2MGQ0NmU5ZWU4M2VjZmQxZDUzOWYzMzdiYWRjMWQyNy4u
ZjAxMzZhMTkzNDU2OWIxNmVkMjcwNjg2NjI5Y2Y1MDdkMmMxYmM1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVy
UXQuY3BwCkBAIC0zNiw5ICszNiw5IEBACiAjaW5jbHVkZSA8UVByb2Nlc3M+CiAjaW5jbHVkZSA8
UVN0cmluZz4KICNpbmNsdWRlIDxRdENvcmUvcWdsb2JhbC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
UnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRp
bmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCBmMTViZGI0NDJmMGQwODUwNTM4MTU0NjI4MzIxZTdkYjRiNzU1MzU2Li5jZGVhM2M2MTU1
NzQ5OGM1NzdiZDg3ZThjYjc4OGFkNWQ5NjcwMGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzUs
NyArMzUsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFVT
RShTRUNVUklUWV9GUkFNRVdPUkspCiAjaW5jbHVkZSAiU2VjSXRlbVNoaW1Qcm94eS5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggY2E4YWM4Nzk1NzgwZWExNzE4Y2FmY2Q1YWM1NzQxZjNkMWY2MWUyMS4u
OThkOWY5MjBjZjg4NTJkNGVmM2JhYjdjZTM1Y2NkZmUwNDQxZmU2NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3Bw
CkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSAiV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAppbmRl
eCA3NjZhZTBlMjBjMjdlZGI0OTE3ZTc2ZmIxNTYyMWQ2NzE0ZjViYWJiLi45NzM5ZmEzYTExZjU0
MDhhNjEwMGIwNjM4ZWJiMTAzYTU5ODQ2ZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzcG9uc2l2ZW5lc3NUaW1lci5oIgogCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBjb25zdCBk
b3VibGUgcmVzcG9uc2l2ZW5lc3NUaW1lb3V0ID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCmluZGV4IDhkYjI4NzJmZGVhZmU3OTdjOWFmNGU3
ZWM3MTI5MTZlMjZiN2VlZWMuLmY3NWMwYTk5OGZmNDY3ZGFjOTNiYTczYWJjMGUyYTU2YjZjODE1
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1Rp
bWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIu
aApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBSZXNwb25zaXZlbmVzc1RpbWVyX2gKICNkZWZp
bmUgUmVzcG9uc2l2ZW5lc3NUaW1lcl9oCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
KyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTYs
NyArNTYsNyBAQCBwcml2YXRlOgogICAgIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCogbV9j
bGllbnQ7CiAgICAgYm9vbCBtX2lzUmVzcG9uc2l2ZTsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyPFJlc3BvbnNpdmVuZXNzVGltZXI+IG1fdGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8
UmVzcG9uc2l2ZW5lc3NUaW1lcj4gbV90aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hh
cmVkV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFy
ZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5jcHAKaW5kZXggNjM2MDg1YjE3YzYz
YWIwM2YwN2Y3OWE5ZWMyYWQ3NDRhYmQ1NjU2ZS4uODkwYTlhMjRlNTM3YzA5Y2M2NDQwZmUzYzc5
ZDIyNGI4NzNjODg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJl
ZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBA
IC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oCmluZGV4IGUwZTUzMTAyNWIx
ZGE3MDIzYTU4ZDIzMzE5ZGVhYzFiODQyZGM2YTkuLmMwZDRlYzk2MzcxMDI0ZmVmY2UxOGYyNDkz
NzY2YjBjODZiYjhmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNp
dGVkTGlua1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRM
aW5rUHJvdmlkZXIuaApAQCAtMjgsOSArMjgsOSBAQAogCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtU
YWJsZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
QEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICBWaXNpdGVkTGlua1RhYmxlIG1fdGFibGU7
CiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OkxpbmtIYXNoLCBXZWJDb3JlOjpMaW5rSGFzaEhhc2g+
IG1fcGVuZGluZ1Zpc2l0ZWRMaW5rczsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxWaXNp
dGVkTGlua1Byb3ZpZGVyPiBtX3BlbmRpbmdWaXNpdGVkTGlua3NUaW1lcjsKKyAgICBSdW5Mb29w
OjpUaW1lcjxWaXNpdGVkTGlua1Byb3ZpZGVyPiBtX3BlbmRpbmdWaXNpdGVkTGlua3NUaW1lcjsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuY3BwCmluZGV4IDMzNWYxNTE1ZWFhOTViMTUxM2RmZTNmYzhlZDZlNGJjMjZmZmUzYjQu
LjQ5OTg2NTBhOTM5MjA2YjI0NjQyNDZkZTBmZDMwNjZiN2Y3ZTYzMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTU5LDExICs1OSwxMSBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRl
IDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNp
ZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCiAjaW5jbHVkZSAiV2ViQmF0dGVyeU1hbmFnZXJQcm94
eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vz
c01haW4ubW0KaW5kZXggZmU3ODQwZDllMGE4MTk0YjYxNWI5ZmMyMWIxNzUzMGVkMDIzZDFjZi4u
MzQzMGEzODM3Nzk1ZDYwYmZkOTFhZTFiZDM3ODZiOTQ3YjQ0MTU2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNv
bnRlbnRQcm9jZXNzTWFpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5
UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCkBAIC0zMSwx
MiArMzEsMTIgQEAKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiV0tCYXNl
LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPG1hY2gvbWFjaF9lcnJvci5oPgogI2ltcG9ydCA8c2VydmVycy9ib290c3RyYXAu
aD4KICNpbXBvcnQgPHNwYXduLmg+CiAjaW1wb3J0IDxzdGRpby5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00OCw4ICs0OCw2
IEBACiAKIGV4dGVybiAiQyIga2Vybl9yZXR1cm5fdCBib290c3RyYXBfcmVnaXN0ZXIyKG1hY2hf
cG9ydF90LCBuYW1lX3QsIG1hY2hfcG9ydF90LCB1aW50NjRfdCk7CiAKLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGVudFByb2Nl
c3NNYWluRGVsZWdhdGUgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vydmlj
ZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50
Lm1tCmluZGV4IDk5NTkwN2ViZmUyODUwYzNjM2FjMWZmNWQ2NTc1NDRiZGZhZjg0MTEuLmM4NWI4
NGI1YTExM2EwMzhlNTk0MjJiMWRjZmQ0NmM3NTMzNDFjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2Vy
dmljZUVudHJ5UG9pbnQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtMzEs
OSArMzEsOCBAQAogI2ltcG9ydCAiV0tCYXNlLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAj
aW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29w
Lmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIGV4dGVybiAiQyIgV0tfRVhQT1JUIHZvaWQgV2Vi
Q29udGVudFNlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhw
Y19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCmlu
ZGV4IDU1ZjZlMzE3ZDNhZDQ5MjE2MGZiMzA4YWUxYTkzOGU0OTNlYmMxOGQuLjA2ODAxYzkwNDFh
OWU1ZTk2MTYwMzg2Y2FiNjJmNWIzNWVjODlmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgK
QEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFByaW9yaXR5
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CiAKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludGVybmFsbHlGYWlsZWRM
b2FkVGltZXJGaXJlZCgpOwogICAgIAogICAgIEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyPj4gbV9pbnRlcm5hbGx5RmFpbGVkUmVzb3VyY2VMb2FkZXJzOwotICAgIFdlYkNv
cmU6OlJ1bkxvb3A6OlRpbWVyPFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcj4gbV9pbnRlcm5hbGx5
RmFpbGVkTG9hZFRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlJlc291cmNlTG9hZFNjaGVk
dWxlcj4gbV9pbnRlcm5hbGx5RmFpbGVkTG9hZFRpbWVyOwogICAgIAogICAgIEhhc2hNYXA8dW5z
aWduZWQgbG9uZywgUmVmUHRyPFdlYlJlc291cmNlTG9hZGVyPj4gbV93ZWJSZXNvdXJjZUxvYWRl
cnM7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmgKaW5kZXggODc0NDI4OWZjYmFj
OWNmYzc1ZDVhZDQxYTUxZGE3NzIwOGY5ZWVmZi4uOTZlYTY1NDA2YjNhZjIxOTlmMWEyOTliOWY5
NGM4NTUwNzNiYzY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaApAQCAtMjgsMTEg
KzI4LDExIEBACiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAotI2luY2x1ZGUg
PFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgogI2luY2x1ZGUgPGhl
YXAvV2Vha0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogc3RydWN0IE5QT2JqZWN0
OwogdHlwZWRlZiBzdHJ1Y3QgX05QVmFyaWFudCBOUFZhcmlhbnQ7CkBAIC05OSw3ICs5OSw3IEBA
IHByaXZhdGU6CiAgICAgSGFzaE1hcDxKU0M6OkpTT2JqZWN0KiwgTlBKU09iamVjdCo+IG1fbnBK
U09iamVjdHM7CiAgICAgSGFzaE1hcDxOUE9iamVjdCosIEpTQzo6V2VhazxKU05QT2JqZWN0Pj4g
bV9qc05QT2JqZWN0czsKICAgICBWZWN0b3I8TlBPYmplY3QqPiBtX25wT2JqZWN0c1RvRmluYWxp
emU7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8TlBSdW50aW1lT2JqZWN0TWFwPiBtX2Zp
bmFsaXphdGlvblRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPE5QUnVudGltZU9iamVjdE1hcD4g
bV9maW5hbGl6YXRpb25UaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uaAppbmRleCAwZWU0ZjM0OGM2MzQ0MWZiYzU0YTAxMzJmMDExYzIxYmViZjYy
ZGEzLi5lNmMyYjdjZDkzNTE5MzFlMDRkNzBiNGZiNGMzOTRmODVjZGVlNTQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVn
aW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uaApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5l
VHJhbnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JbnRSZWN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAK
QEAgLTMzMiw3ICszMzIsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIG1fcmVwZWF0OwogICAg
ICAgICBUaW1lckZ1bmMgbV90aW1lckZ1bmM7CiAKLSAgICAgICAgV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXI8VGltZXI+IG1fdGltZXI7CisgICAgICAgIFJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBtX3Rp
bWVyOwogICAgIH07CiAgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBPd25QdHI8VGltZXI+
PiBUaW1lck1hcDsKICAgICBUaW1lck1hcCBtX3RpbWVyczsKQEAgLTM3OSw3ICszNzksNyBAQCBw
cml2YXRlOgogCiAgICAgLy8gRklYTUU6IEl0J3MgYSBiaXQgd2FzdGVmdWwgdG8gaGF2ZSBvbmUg
bnVsbCBldmVudCB0aW1lciBwZXIgcGx1Zy1pbi4KICAgICAvLyBXZSBzaG91bGQgaW52ZXN0aWdh
dGUgaGF2aW5nIG9uZSBwZXIgd2luZG93LgotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5l
dHNjYXBlUGx1Z2luPiBtX251bGxFdmVudFRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPE5ldHNj
YXBlUGx1Z2luPiBtX251bGxFdmVudFRpbWVyOwogICAgIE5QX0NHQ29udGV4dCBtX25wQ0dDb250
ZXh0OwogI2VuZGlmCiAjZWxpZiBQTFVHSU5fQVJDSElURUNUVVJFKFdJTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdp
blN0cmVhbS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luU3RyZWFtLmgKaW5kZXggZmZhNTVjYjI1ZDhjZDg3NDQ2YmE4MzdmZDM5MGU4
M2I4YzRhN2I3Mi4uZGQ1OWIwNTViOWZlYzlhODM4ZTI5OWIzZmFkYjA1ODJkMGQzZDk4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKQEAgLTI5LDEyICsyOSwxMiBAQAogI2lm
IEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lz
dGVtLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9u
cHJ1bnRpbWVfaW50ZXJuYWwuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwNSw3ICsxMDUsNyBA
QCBwcml2YXRlOgogICAgIENTdHJpbmcgbV9taW1lVHlwZTsKICAgICBDU3RyaW5nIG1faGVhZGVy
czsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBt
X2RlbGl2ZXJ5RGF0YVRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3Ry
ZWFtPiBtX2RlbGl2ZXJ5RGF0YVRpbWVyOwogICAgIE93blB0cjwgVmVjdG9yPHVpbnQ4X3Q+PiBt
X2RlbGl2ZXJ5RGF0YTsKICAgICBib29sIG1fc3RvcFN0cmVhbVdoZW5Eb25lRGVsaXZlcmluZzsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaApp
bmRleCBjNmNkNTg4OWFiYWU2MzQxZTkzZjJiYmZjYTc0M2UxYjEzYjA2Y2EyLi42YTA3Mzc5Yjdk
OTYyMGM2OWY2Nzg2ZWVkYTBmNzIwZTVkMDY5YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTM2LDkgKzM2LDkgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1BsdWdpblZpZXdCYXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVy
cm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIC8vIEZJWE1FOiBFdmVu
dHVhbGx5IHRoaXMgc2hvdWxkIG1vdmUgdG8gV2ViQ29yZS4KIApAQCAtMjMxLDcgKzIzMSw3IEBA
IHByaXZhdGU6CiAKICAgICAvLyBQZW5kaW5nIFVSTFJlcXVlc3RzIHRoYXQgdGhlIHBsdWctaW4g
aGFzIG1hZGUuCiAgICAgRGVxdWU8UmVmUHRyPFVSTFJlcXVlc3Q+PiBtX3BlbmRpbmdVUkxSZXF1
ZXN0czsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5WaWV3PiBtX3BlbmRpbmdV
UkxSZXF1ZXN0c1RpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpblZpZXc+IG1fcGVuZGlu
Z1VSTFJlcXVlc3RzVGltZXI7CiAKICAgICAvLyBQZW5kaW5nIGZyYW1lIGxvYWRzIHRoYXQgdGhl
IHBsdWctaW4gaGFzIG1hZGUuCiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxXZWJGcmFtZT4s
IFJlZlB0cjxVUkxSZXF1ZXN0Pj4gRnJhbWVMb2FkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCmluZGV4IDc4OTMwMDlmNzRh
MjA4ZmZmOGM1NmQ5YWU5OTg3ZDEwOGE2N2U0ZWUuLjQxYTBiZTUyNDg4NzZiYzc0ODVmM2E3YTNh
ZTZkNjU3N2Q2NjY5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJEcmF3
aW5nQXJlYS5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L1JlZ2lvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CkBAIC0xNDAsOCArMTQwLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQYWludGluZ1N1
c3BlbmRlZDsKICAgICBib29sIG1fYWx3YXlzVXNlQ29tcG9zaXRpbmc7CiAKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZGlzcGxheVRpbWVyOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9leGl0Q29tcG9zaXRpbmdU
aW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZGlzcGxheVRpbWVy
OworICAgIFJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9leGl0Q29tcG9zaXRpbmdU
aW1lcjsKIAogICAgIC8vIFRoZSBsYXllciB0cmVlIGhvc3QgdGhhdCBoYW5kbGVzIGFjY2VsZXJh
dGVkIGNvbXBvc2l0aW5nLgogICAgIFJlZlB0cjxMYXllclRyZWVIb3N0PiBtX2xheWVyVHJlZUhv
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIuY3BwCmluZGV4IGQ3OWMyOTcwZjI2YmQ4ZmY1MTgyZWY5YTg2MjkyNThmN2RhZTQw
NmMuLmFkNDA0MDA4ODVlM2EwZTA5ZWU0NzgxZWI4NDE5YzNhYmExNzYxZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3Bw
CkBAIC0zMyw4ICszMyw4IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKICNp
bmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oCmluZGV4IDBmYTA1OGFhNDZmMzc0
NWQ3MTM5ZTFkZDVkNjA4MDYxMmUzMWIxOWIuLmJjMTgyZGEwNjUyOGVmNzdhMWQwYTg2NWRiNWMw
YmFmZDZhZTA4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9QYWdlT3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Q
YWdlT3ZlcmxheS5oCkBAIC0yNyw4ICsyNyw4IEBACiAjZGVmaW5lIFBhZ2VPdmVybGF5X2gKIAog
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKQEAgLTgyLDcgKzgy
LDcgQEAgcHJpdmF0ZToKICAgICBDbGllbnQqIG1fY2xpZW50OwogICAgIFdlYlBhZ2UqIG1fd2Vi
UGFnZTsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBhZ2VPdmVybGF5PiBtX2ZhZGVB
bmltYXRpb25UaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxQYWdlT3ZlcmxheT4gbV9mYWRlQW5p
bWF0aW9uVGltZXI7CiAgICAgZG91YmxlIG1fZmFkZUFuaW1hdGlvblN0YXJ0VGltZTsKICAgICBk
b3VibGUgbV9mYWRlQW5pbWF0aW9uRHVyYXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3YWRkOTZiMzhjM2RmNzY1NzczNDllZDEz
MjBmOTc1MjEwNmZhNTA2Li5kYzM1YmI0NmQ5MzZiNjQ2NzBmODJjYTQ1ZGFjZjEyYmE2ZGE4Y2I3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0xMjAsNyArMTIwLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nj
aGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CkBA
IC0xMzUsNiArMTM0LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KICNpbmNs
dWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgor
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoTUhUTUwpCiAjaW5jbHVkZSA8
V2ViQ29yZS9NSFRNTEFyY2hpdmUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IGFjOTUzYjk3MzBiNDhlYmYxMzVlZjRmODc0ZTVkM2I1NDVjODY0
NDguLjA4NjZlMmE1NzQ5OWJmYmE2YmYzODg2MjhiZGQzNGNiMWRjMmIyZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtODgzLDcgKzg4Myw3IEBA
IHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcHJpbWFyeVBsdWdJblBhZ2VPcmlnaW47CiAgICAgU3Ry
aW5nIG1fcHJpbWFyeVBsdWdJbk9yaWdpbjsKICAgICBTdHJpbmcgbV9wcmltYXJ5UGx1Z0luTWlt
ZVR5cGU7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9kZXRlcm1pbmVQ
cmltYXJ5U25hcHNob3R0ZWRQbHVnSW5UaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdl
PiBtX2RldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblRpbWVyOwogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShNQUMpCkBAIC05MjUsOCArOTI1LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
UGFnZUJhbm5lcj4gbV9oZWFkZXJCYW5uZXI7CiAgICAgUmVmUHRyPFBhZ2VCYW5uZXI+IG1fZm9v
dGVyQmFubmVyOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZXRD
YW5TdGFydE1lZGlhVGltZXI7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2ViUGFnZT4g
bV9zZW5kRGlkVXBkYXRlSW5XaW5kb3dTdGF0ZVRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFdl
YlBhZ2U+IG1fc2V0Q2FuU3RhcnRNZWRpYVRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBh
Z2U+IG1fc2VuZERpZFVwZGF0ZUluV2luZG93U3RhdGVUaW1lcjsKICAgICBib29sIG1fbWF5U3Rh
cnRNZWRpYVdoZW5JbldpbmRvdzsKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJV
bmRvU3RlcD4+IG1fdW5kb1N0ZXBNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCA5OWRlYmE1ZTFlNGU1MTJiMzhkZWI0OWY0MWEwZmY5MzRmOGQ3MzAwLi45
ZjY1MjhlZWU1ZDg5Zjc1MTA2YjM5ZTA0ZDE4M2Q0NTVmZTJiMzgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTc0LDcgKzc0LDYgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpAQCAt
ODIsNiArODEsNyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKICNp
ZiBFTkFCTEUoTkVUV09SS19JTkZPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCmluZGV4IDViMzQ4MGRhNGZkYTNiZDNjODRiMDFm
MzdhZjVmZWQwM2FkZDBlMDIuLjRkMjQ5ZGJkMjM4YTI4MjI4N2YxMTdlYjdlYzMzMWE2YWY0MDcz
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NN
YWluRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNz
TWFpbkVmbC5jcHAKQEAgLTM2LDExICszNiwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV2ViUHJvY2Vzcy5oPgogI2luY2x1ZGUg
PGxpYnNvdXAvc291cC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1
ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCiAjaWZkZWYgSEFWRV9FQ09SRV9YCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKaW5kZXggNTRjOGRmM2Uw
Y2JjZWM3NWQ3MDkyYzJiMjQyNmFjN2ZmNTFjNGVmOC4uYjQ4MWVlMzRmMjNlM2FiOGFmZWU0ZWJi
NTJhZWI1MGUwMjM3NTMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9n
dGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Z3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcApAQCAtMzIsMTIgKzMyLDEyIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya2luZ0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJQcm9jZXNz
Lmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPGxpYmludGwuaD4KICNpbmNsdWRl
IDxsaWJzb3VwL3NvdXAuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
Z29iamVjdC9HUmVmUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0
L1dlYlByb2Nlc3NNYWluUXQuY3BwCmluZGV4IGYwYjUxYzE5OTE5NDI1NDczMGExY2E4ZTBjNDhk
ODUwMDU5MGU5YjAuLmQzNjJkMWI1YWM2MDI4MGIwZjFjYmFjMDgwMmM4YzM4NTA3YWUyYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzTWFpblF0LmNw
cApAQCAtMzYsOCArMzYsOCBAQAogI2luY2x1ZGUgPFFTdHJpbmc+CiAjaW5jbHVkZSA8UVN0cmlu
Z0xpc3Q+CiAjaW5jbHVkZSA8UVVybD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBVU0UoUVRL
SVQpCiAjaW5jbHVkZSAiV2ViU3lzdGVtSW50ZXJmYWNlLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214708</attachid>
            <date>2013-10-21 00:37:48 -0700</date>
            <delta_ts>2013-10-21 00:45:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116606-20131021093745.patch</filename>
            <type>text/plain</type>
            <size>166365</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI5ZmE5NzdkMTlkODc4NDc0OTVhYzdi
OTg0MmRlYzExYzY1OTYzN2YuLjI3ODkwZDI1Zjc0OGNjMGZkZmY1NDM4MTk1OTk2M2VkYzlhMjgz
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTAwIEBACisyMDEzLTEwLTIxICBQYXRyaWNrIEdhbnN0ZXJlciAg
PHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgUnVuTG9vcCBmcm9tIFdlYkNvcmUg
dG8gV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY2MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aXRoIHRoaXMgY2hhbmdlIFJ1bkxvb3AgY2FuIGJlIHVzZWQgaW4gSmF2YVNjcmlwdENvcmUgdG9v
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYudmN4cHJv
ai9XVEYudmN4cHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL1BsYXRmb3JtQmxh
Y2tCZXJyeS5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAg
ICogd3RmL1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVdpbi5jbWFr
ZToKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6SG9sZGVyOjpI
b2xkZXIpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpIb2xkZXI6OnJ1bkxvb3ApOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpjdXJyZW50KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6bWFpbik6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OmlzTWFpbik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnBlcmZvcm1X
b3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2gpOgorICAgICAgICAqIHd0Zi9S
dW5Mb29wLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmgu
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnRSZXBlYXRpbmcpOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0T25lU2hvdCk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNSZXBlYXRpbmcpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lcjo6VGltZXIpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lcjo6ZmlyZWQp
OgorICAgICAgICAqIHd0Zi9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVy
cnkuY3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAg
ICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2YvUnVuTG9vcENGLmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cGVyZm9y
bVdvcmspOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpydW5Gb3JEdXJhdGlv
bik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXVEY6OlJ1bkxv
b3A6OnJ1bik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnN0b3ApOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpU
aW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQpOgor
ICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYvZWZsL1J1bkxvb3BF
ZmwuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1J1bkxvb3BF
ZmwuY3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpydW4pOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwRXZl
bnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGlt
ZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQpOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYvZ3RrL1J1bkxvb3BHdGsu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsu
Y3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpydW4pOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjppbm5lcm1vc3RMb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cHVz
aE5lc3RlZE1haW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cG9wTmVzdGVkTWFpbkxv
b3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6cXVldWVXb3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1l
ckJhc2U6OmNsZWFyVGltZXJTb3VyY2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJh
c2U6OnRpbWVyRmlyZWRDYWxsYmFjayk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFz
ZTo6c3RhcnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYv
d2luL1J1bkxvb3BXaW4uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1J1bkxvb3BXaW4uY3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wV25kUHJv
Yyk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnduZFByb2MpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpydW4pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKToKKyAgICAgICAgKFdU
Rjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6On5SdW5Mb29wKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdURjo6Z2VuZXJhdGVUaW1lcklEKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UpOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNl
OjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisK
IDIwMTMtMTAtMTggIEJyZW5kYW4gTG9uZyAgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgogCiAgICAg
ICAgIFtHU3RyZWFtZXJdW0dUS10gQWRkIEdSZWZQdHI6Om91dFB0cigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTM1NDQ2OWRiOWZlZDNlODNjMmZlMThkM2Y3MDNlYzA0YzIzMjIwYy4uYzUyOTE4Y2JiYjI2NWI3
MjE0Y2E3NzE3Mjk2NTQ2ZTZlMjI5Mjc5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisy
MDEzLTEwLTIxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAg
ICAgIE1vdmUgUnVuTG9vcCBmcm9tIFdlYkNvcmUgdG8gV1RGCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY2MDYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtl
OgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNt
YWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lLmg6CisKIDIwMTMtMTAtMTggIERlbmlzIE5vbWl5YW1hICA8ZC5ub21p
eWFtYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbQVRLXSBGaXggaW52YWxpZCBzaWduYWwgdG8g
c2V0IG9iamVjdHMgdG8gYW4gdW5rbm93biBzdGF0ZSAibGF5b3V0LWNvbXBsZXRlIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCmluZGV4IDBlZTNiZWQ1MWYxZjczZWE3ZDE2ZGVjNWQyYWYxOTk5NDk4YjA4ODkuLjdj
ZDBkNGI5YTdkNGFlOGY1OTlhZGU4MTFlZmQ5M2E1ODk5YzkzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0OSBAQAorMjAxMy0xMC0yMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
d2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDYXJib24v
Q2FyYm9uV2luZG93QWRhcHRlci5tbToKKyAgICAgICAgKCtbQ2FyYm9uV2luZG93QWRhcHRlciBp
bml0aWFsaXplXSk6CisgICAgICAgICogSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW06Cisg
ICAgICAgICgrW1dlYkJhY2tGb3J3YXJkTGlzdCBpbml0aWFsaXplXSk6CisgICAgICAgICogSGlz
dG9yeS9XZWJIaXN0b3J5SXRlbS5tbToKKyAgICAgICAgKCtbV2ViSGlzdG9yeUl0ZW0gaW5pdGlh
bGl6ZV0pOgorICAgICAgICAqIE1pc2MvV2ViQ2FjaGUubW06CisgICAgICAgICgrW1dlYkNhY2hl
IGluaXRpYWxpemVdKToKKyAgICAgICAgKiBNaXNjL1dlYkVsZW1lbnREaWN0aW9uYXJ5Lm1tOgor
ICAgICAgICAoK1tXZWJFbGVtZW50RGljdGlvbmFyeSBpbml0aWFsaXplXSk6CisgICAgICAgICog
TWlzYy9XZWJJY29uRGF0YWJhc2UubW06CisgICAgICAgICgrW1dlYkljb25EYXRhYmFzZSBpbml0
aWFsaXplXSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tOgorICAgICAgICAoK1tXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcgaW5pdGlh
bGl6ZV0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbToK
KyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tOgorICAgICAgICAqIFBs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoK1tXZWJOZXRzY2FwZVBs
dWdpblZpZXcgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbToKKyAgICAgICAgKCtbV2ViVW5kb1N0ZXAgaW5pdGlhbGl6ZV0pOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAqIFdl
YlZpZXcvV2ViQXJjaGl2ZS5tbToKKyAgICAgICAgKCtbV2ViQXJjaGl2ZVByaXZhdGUgaW5pdGlh
bGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbToKKyAgICAgICAgKCtb
V2ViRGF0YVNvdXJjZSBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmll
dy5tbToKKyAgICAgICAgKCtbV2ViSFRNTFZpZXdQcml2YXRlIGluaXRpYWxpemVdKToKKyAgICAg
ICAgKCtbV2ViSFRNTFZpZXcgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlJlc291cmNlLm1tOgorICAgICAgICAoK1tXZWJSZXNvdXJjZVBy
aXZhdGUgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1t
OgorICAgICAgICAoK1tXZWJUZXh0SXRlcmF0b3JQcml2YXRlIGluaXRpYWxpemVdKToKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgrW1dlYlZpZXcgaW5pdGlhbGl6ZV0p
OgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgICgrW1dlYlZpZXdQ
cml2YXRlIGluaXRpYWxpemVdKToKKwogMjAxMy0xMC0xNiAgSm9jaGVuIEVpc2luZ2VyICA8am9j
aGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBIHBhZ2Ugc2hvdWxkIGV4aXQgZnVsbHNjcmVl
biBtb2RlIGlmIGl0IG9wZW5zIGEgbmV3IHBvcHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2Y4ZjE0MzZjYWM4
Yzg4ZGRiOTYwZjRjZGEzYjNiNTQxNzE5NDBlNi4uY2I4OTcwNzBjNmRmZWFiMjMwMDZiNDVjYWNk
YjU5MmE3NGNkYTE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEzLTEwLTIxICBQ
YXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgUnVu
TG9vcCBmcm9tIFdlYkNvcmUgdG8gV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTY2MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgor
ICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3Vu
aXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5jcHA6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQ
Qy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24u
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcDoKKyAg
ICAgICAgKiBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2lu
UHJvY2Vzc01haW4ubW06CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9Y
UENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAqIFBsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3Mu
aDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKiBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNwcDoKKyAg
ICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQ
cm9jZXNzLmg6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFBy
b2Nlc3NFbnRyeVBvaW50Lmg6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
bWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5tbToKKyAgICAgICAgKiBT
aGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViS2l0
MkluaXRpYWxpemUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0Mik6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9l
ZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIv
Z3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVy
L21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NU
aW1lci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVn
YWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW06CisgICAgICAgICogV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5t
bToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVj
dE1hcC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBs
dWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBs
dWdpblN0cmVhbS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWREcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYUltcGwuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHA6CisKIDIwMTMtMTAtMTcg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Rl
IExheWVyIFRyZWU6IFByb3h5IGxheWVyIGNvbnRlbnRzIHRvIHRoZSBVSSBwcm9jZXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggNTA2OWZiZTdkODY1YTNiM2Y0OTIxMDI3MDEyYzRhYTE3YjMy
MjU4Mi4uZDBkNjVmYmJhNWJmN2Q2NGQwNDcxYmQ5ZTRkZTAyODk1Nzg4YTI2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMTM3LDYgKzEzNyw4IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBT
b3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBcCiAgICAgU291cmNlL1dURi93dGYvUmVmUHRySGFzaE1h
cC5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaCBcCisgICAgU291cmNlL1dURi93
dGYvUnVuTG9vcC5jcHAgXAorICAgIFNvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaCBcCiAgICAgU291
cmNlL1dURi93dGYvU0hBMS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL1NIQTEuaCBcCiAgICAg
U291cmNlL1dURi93dGYvU2F0dXJhdGVkQXJpdGhtZXRpYy5oIFwKQEAgLTIxNiw2ICsyMTgsNyBA
QCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvZ29iamVjdC9HbGliVXRpbGl0
aWVzLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvZ29iamVjdC9HbGliVXRpbGl0aWVzLmggXAog
ICAgIFNvdXJjZS9XVEYvd3RmL2d0ay9NYWluVGhyZWFkR3RrLmNwcCBcCisgICAgU291cmNlL1dU
Ri93dGYvZ3RrL1J1bkxvb3BHdGsuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJ
RmFzdFBhdGguaCBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwIFwK
ICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5oIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9q
L1dURi52Y3hwcm9qCmluZGV4IGFhZWZjZWI1MTIxZTU4Y2NjYWMzYzNjMzBkMmNiY2QwN2IzY2Ni
ODkuLjYxMjljOWYxZGIwMmRmYjg3NzJhMWQyMmFlMmVhNDlhOWU1NGU4ODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oKKysrIGIvU291cmNlL1dURi9XVEYu
dmN4cHJvai9XVEYudmN4cHJvagpAQCAtODksNiArODksNyBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cd3RmXFJBTVNpemUuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHd0ZlxSYW5kb21OdW1iZXIuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0
ZlxSZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwIiAvPg0KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHd0ZlxSdW5Mb29wLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZc
U0hBMS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFNpeENoYXJhY3Rl
ckhhc2guY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxTaXplTGltaXRz
LmNwcCIgLz4NCkBAIC0xMTEsNiArMTEyLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHd0Zlx1bmljb2RlXGljdVxDb2xsYXRvcklDVS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cd3RmXHVuaWNvZGVcVVRGOC5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cd3RmXHdpblxNYWluVGhyZWFkV2luLmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlx3dGZcd2luXFJ1bkxvb3BXaW4uY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHd0ZlxXVEZUaHJlYWREYXRhLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlx3dGZcU2NoZWR1bGVQYWlyQ0YuY3BwIiAvPg0KICAgPC9JdGVtR3JvdXA+DQpAQCAtMjE3
LDYgKzIxOSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUmVmUHRyLmgiIC8+
DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJlZlB0ckhhc2hNYXAuaCIgLz4NCiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUmV0YWluUHRyLmgiIC8+DQorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJ1bkxvb3AuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlx3dGZcU2F0dXJhdGVkQXJpdGhtZXRpYy5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHd0ZlxTY2hlZHVsZVBhaXIuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlx3dGZcU2VnbWVudGVkVmVjdG9yLmgiIC8+DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZjZhMjVjNWZjNGJlNWQ3YTBmNWY5NWEwYzZiYmZhN2FhOTcw
MjQyZi4uNTU2YTRjNDk1NjMzNTg0ZDM4NmVhM2UwMmM1ZTA4ZjUyODNjM2M4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OSw2ICs1OSw5IEBACiAJCTI2
Mjk5QjZFMTdBOUU1QjgwMEFERUJFNSAvKiBSZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2Mjk5QjZEMTdBOUU1QjgwMEFERUJFNSAvKiBSZWYuaCAq
LzsgfTsKIAkJMkMwNTM4NTQxNUJDODE5MDAwRjIxQjk2IC8qIEdyZWdvcmlhbkRhdGVUaW1lLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA1Mzg1MzE1
QkM4MTkwMDBGMjFCOTYgLyogR3JlZ29yaWFuRGF0ZVRpbWUuaCAqLzsgfTsKIAkJMkNDRDg5MkEx
NUMwMzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRhdGVUaW1lLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQ0Q4OTI5MTVDMDM5MDIwMDI4NTA4MyAv
KiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgKi87IH07CisJCTJDREVEMEVGMTgxMTVDMzgwMDREQkE3
MCAvKiBSdW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkNERUQwRUUxODExNUMzODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAgKi87IH07
CisJCTJDREVEMEYzMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDREVEMEYxMTgxMTVDODUwMDREQkE3
MCAvKiBSdW5Mb29wLmNwcCAqLzsgfTsKKwkJMkNERUQwRjQxODExNUM4NTAwNERCQTcwIC8qIFJ1
bkxvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJD
REVEMEYyMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmggKi87IH07CiAJCTQ0RjY2MDA4MTcx
QUZBRTYwMEU0QUQxOSAvKiBFbnVtQ2xhc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RjY2MDA3MTcxQUZBQTkwMEU0QUQxOSAvKiBFbnVtQ2xhc3Mu
aCAqLzsgfTsKIAkJNEYwMzIxQkMxNTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjAzMjFCQjE1NkFBOEQx
MDA2RUJBRjYgLyogQml0QXJyYXkuaCAqLzsgfTsKIAkJN0UyOUMzM0UxNUZGRDc5QjAwNTE2RDYx
IC8qIE9iamNSdW50aW1lRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3RTI5QzMzRDE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRpbWVFeHRy
YXMuaCAqLzsgfTsKQEAgLTMxNyw2ICszMjAsOSBAQAogCQkyNjI5OUI2RDE3QTlFNUI4MDBBREVC
RTUgLyogUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzA1Mzg1MzE1QkM4MTkwMDBGMjFCOTYgLyogR3Jl
Z29yaWFuRGF0ZVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JlZ29y
aWFuRGF0ZVRpbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkNDRDg5MjkxNUMw
MzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRhdGVUaW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEdyZWdvcmlhbkRhdGVUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkNERUQwRUUxODExNUMzODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSdW5Mb29wQ0YuY3BwOyBwYXRo
ID0gY2YvUnVuTG9vcENGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNERUQw
RjExODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUnVuTG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJDREVEMEYyMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJ1bkxvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDRERUU3NEExNTIyNzRCQjAwQzZFQzM3IC8qIGlPUy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
eGNjb25maWc7IHBhdGggPSBpT1MueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0RjY2MDA3MTcxQUZBQTkwMEU0QUQxOSAvKiBFbnVtQ2xhc3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRW51bUNsYXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMDMyMUJCMTU2
QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBCaXRBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTUzLDYgKzU1
OSwxNCBAQAogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
CisJCTJDREVEMEYwMTgxMTVDM0YwMDREQkE3MCAvKiBjZiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkNERUQwRUUxODExNUMzODAwNERCQTcwIC8qIFJ1
bkxvb3BDRi5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9IGNmOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJNUQyNDdCNTcxNDY4OUI4NjAwRTc4Qjc2ID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTU5NCw2ICs2MDgsNyBAQAogCQlBODc2REJE
NjE1MTgxNkU1MDBEQURCOTUgLyogd3RmICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQkyQ0RFRDBGMDE4MTE1QzNGMDA0REJBNzAgLyogY2YgKi8sCiAJCQkJ
QThBNDcyODExNTFBODI1QTAwNDEyM0ZGIC8qIGR0b2EgKi8sCiAJCQkJMUZBNDdDODcxNTI1MDJE
QTAwNTY4RDFCIC8qIGlvcyAqLywKIAkJCQlBOEE0NzJDNDE1MUE4MjVBMDA0MTIzRkYgLyogbWFj
ICovLApAQCAtNzMzLDYgKzc0OCw4IEBACiAJCQkJQThBNDczMDMxNTFBODI1QjAwNDEyM0ZGIC8q
IFJlZlB0ci5oICovLAogCQkJCUE4QTQ3MzA0MTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZQdHJIYXNo
TWFwLmggKi8sCiAJCQkJQThBNDczMDUxNTFBODI1QjAwNDEyM0ZGIC8qIFJldGFpblB0ci5oICov
LAorCQkJCTJDREVEMEYxMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmNwcCAqLywKKwkJCQky
Q0RFRDBGMjE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovLAogCQkJCTE0Njk0MTkwMTZF
QUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCAqLywKIAkJCQkxNDY5NDE5MTE2RUFBRjZE
MDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyQ0YuY3BwICovLAogCQkJCTE0RjNCMEY2MTVFNDVFNDYw
MDIxMDA2OSAvKiBTYXR1cmF0ZWRBcml0aG1ldGljLmggKi8sCkBAIC0xMDIxLDYgKzEwMzgsNyBA
QAogCQkJCUE4QTQ3NDFDMTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZQdHIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3NDFEMTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZQdHJIYXNoTWFwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOEE0NzQxRTE1MUE4MjVCMDA0MTIzRkYgLyogUmV0YWluUHRyLmggaW4g
SGVhZGVycyAqLywKKwkJCQkyQ0RFRDBGNDE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTQ2OTQxOTIxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRGM0IwRjcxNUU0NUU0NjAwMjEwMDY5IC8qIFNhdHVy
YXRlZEFyaXRobWV0aWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0Njk0MTk2MTZFQUFGRjgwMDI0
RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTE5Myw2ICsxMjExLDgg
QEAKIAkJCQkxNDNGNjExRjE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDFBMTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZDb3VudGVk
TGVha0NvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkNERUQwRjMxODExNUM4NTAwNERC
QTcwIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkNERUQwRUYxODExNUMzODAw
NERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDY5NDE5MzE2RUFB
RjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ2
OTQxOTkxNkVBQjA0MTAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpckNGLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0Njk0MTk3MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXJNYWMubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggZTM5YjVkYjIyYzI4NDliMTkxYTQz
ODU3ZmE4NmY5YjhjZjExYTVlMi4uMjI2NTY3NTlmNjYyNGFlYTc3NDczMzVkMWU5OTM3NzFhZDJi
NDIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTg1LDYgKzg1LDcgQEAgc2V0KFdURl9IRUFE
RVJTCiAgICAgUmVmUHRyLmgKICAgICBSZWZQdHJIYXNoTWFwLmgKICAgICBSZXRhaW5QdHIuaAor
ICAgIFJ1bkxvb3AuaAogICAgIFNIQTEuaAogICAgIFNhdHVyYXRlZEFyaXRobWV0aWMuaAogICAg
IFNlZ21lbnRlZFZlY3Rvci5oCkBAIC0xNzIsNiArMTczLDcgQEAgc2V0KFdURl9TT1VSQ0VTCiAg
ICAgUkFNU2l6ZS5jcHAKICAgICBSYW5kb21OdW1iZXIuY3BwCiAgICAgUmVmQ291bnRlZExlYWtD
b3VudGVyLmNwcAorICAgIFJ1bkxvb3AuY3BwCiAgICAgU0hBMS5jcHAKICAgICBTaXhDaGFyYWN0
ZXJIYXNoLmNwcAogICAgIFN0YWNrQm91bmRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFj
a0JlcnJ5LmNtYWtlCmluZGV4IGI1ZGUzMDUyMzM2ZDk1MTM1NzQxNzgwZjFhMzhlNGQwYmNmMDVj
MmIuLjA4NTc2NmM0NmMxMmU5ZWY1YjI3MWJmZGRhNmI2NTNhMjU3Mjc4YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTEsMyArMSw0IEBACiBsaXN0KEFQUEVO
RCBXVEZfU09VUkNFUwogICAgIGJsYWNrYmVycnkvTWFpblRocmVhZEJsYWNrQmVycnkuY3BwCisg
ICAgYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKICkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwu
Y21ha2UKaW5kZXggNzcxYzgyZTI0YmM0YmYxOGUzMmVjMzRlN2IwYjQ5ZjY5MjgzOWY2Ni4uZTEw
YTQ0MjM4Yzk1MjlkOWQwNTE4YjRhMWYwOWM0N2FjMTQ0MmY1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1F
ZmwuY21ha2UKQEAgLTIsNiArMiw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgZWZs
L01haW5UaHJlYWRFZmwuY3BwCiAgICAgZWZsL093blB0ckVmbC5jcHAKICAgICBlZmwvUmVmUHRy
RWZsLmNwcAorICAgIGVmbC9SdW5Mb29wRWZsLmNwcAogCiAgICAgZ29iamVjdC9HT3duUHRyLmNw
cAogICAgIGdvYmplY3QvR1JlZlB0ci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXgg
Njg5NDBmZjI0Y2U4Yzc2YmQzYjJhOWQ3MWQxYjYxZDFhZjA1YzMwYS4uNDNkYTcwOTU2ZjA5Mjc0
NmZjNjE1YzQxNWViZDQ0ZjBhMDBhNTgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UKQEAg
LTQsNiArNCw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgZ29iamVjdC9HbGliVXRp
bGl0aWVzLmNwcAogCiAgICAgZ3RrL01haW5UaHJlYWRHdGsuY3BwCisgICAgZ3RrL1J1bkxvb3BH
dGsuY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1XaW4u
Y21ha2UKaW5kZXggODhiZGFmNzEzZTUyOGMxNDg4ZThiOWFhZmQ3MTk5NzNhMDhmZjA4Yy4uODgz
NGQyNTJmNGMwNDljOWRkZmIzMzU2ODg0ODQyOTM4NDUxMDlhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1X
aW4uY21ha2UKQEAgLTIsNiArMiw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdGhy
ZWFkcy93aW4vQmluYXJ5U2VtYXBob3JlV2luLmNwcAogCiAgICAgd2luL01haW5UaHJlYWRXaW4u
Y3BwCisgICAgd2luL1J1bkxvb3BXaW4uY3BwCiApCiAKIGlmIChXSU5DRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTk3ODY1ZDdiOWE2YjM5ZDc5YjcyNDhjMzc0Y2E3Njc0NGNiMzU0MgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCkBAIC0wLDAgKzEsMTMx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3Au
aCIKKworI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFk
U3BlY2lmaWMuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3N0YXRpYyBSdW5Mb29wKiBzX21haW5S
dW5Mb29wOworCisvLyBIZWxwZXIgY2xhc3MgZm9yIFRocmVhZFNwZWNpZmljRGF0YS4KK2NsYXNz
IFJ1bkxvb3A6OkhvbGRlciB7CitwdWJsaWM6CisgICAgSG9sZGVyKCkKKyAgICAgICAgOiBtX3J1
bkxvb3AoYWRvcHRSZWYobmV3IFJ1bkxvb3ApKQorICAgIHsKKyAgICB9CisKKyAgICBSdW5Mb29w
KiBydW5Mb29wKCkgY29uc3QgeyByZXR1cm4gbV9ydW5Mb29wLmdldCgpOyB9CisKK3ByaXZhdGU6
CisgICAgUmVmUHRyPFJ1bkxvb3A+IG1fcnVuTG9vcDsKK307CisKK3ZvaWQgUnVuTG9vcDo6aW5p
dGlhbGl6ZU1haW5SdW5Mb29wKCkKK3sKKyAgICBpZiAoc19tYWluUnVuTG9vcCkKKyAgICAgICAg
cmV0dXJuOworICAgIHNfbWFpblJ1bkxvb3AgPSBSdW5Mb29wOjpjdXJyZW50KCk7Cit9CisKK1J1
bkxvb3AqIFJ1bkxvb3A6OmN1cnJlbnQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoV1RG
OjpUaHJlYWRTcGVjaWZpYzxSdW5Mb29wOjpIb2xkZXI+LCBydW5Mb29wSG9sZGVyLCAoKSk7Cisg
ICAgcmV0dXJuIHJ1bkxvb3BIb2xkZXItPnJ1bkxvb3AoKTsKK30KKworUnVuTG9vcCogUnVuTG9v
cDo6bWFpbigpCit7CisgICAgQVNTRVJUKHNfbWFpblJ1bkxvb3ApOworICAgIHJldHVybiBzX21h
aW5SdW5Mb29wOworfQorCitib29sIFJ1bkxvb3A6OmlzTWFpbigpCit7CisgICAgQVNTRVJUKHNf
bWFpblJ1bkxvb3ApOworICAgIHJldHVybiBzX21haW5SdW5Mb29wID09IFJ1bkxvb3A6OmN1cnJl
bnQoKTsKK30KKwordm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCit7CisgICAgLy8gSXQgaXMg
aW1wb3J0YW50IHRvIGhhbmRsZSB0aGUgZnVuY3Rpb25zIGluIHRoZSBxdWV1ZSBvbmUgYXQgYSB0
aW1lIGJlY2F1c2Ugd2hpbGUgaW5zaWRlIG9uZSBvZiB0aGVzZQorICAgIC8vIGZ1bmN0aW9ucyB3
ZSBtaWdodCByZS1lbnRlciBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGFuZCB3ZSBuZWVkIHRvIGJl
IGFibGUgdG8gcGljayB1cCB3aGVyZSB3ZSBsZWZ0IG9mZi4KKyAgICAvLyBTZWUgaHR0cDovL3dl
YmtpdC5vcmcvYi84OTU5MCBmb3IgbW9yZSBkaXNjdXNzaW9uLgorCisgICAgLy8gT25lIHBvc3Np
YmxlIHNjZW5hcmlvIHdoZW4gaGFuZGxpbmcgdGhlIGZ1bmN0aW9uIHF1ZXVlIGlzIGFzIGZvbGxv
d3M6CisgICAgLy8gLSBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGlzIGludm9rZWQgd2l0aCAxIGZ1
bmN0aW9uIG9uIHRoZSBxdWV1ZQorICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBmdW5jdGlvbiByZXN1
bHRzIGluIDEgbW9yZSBmdW5jdGlvbiBiZWluZyBlbnF1ZXVlZAorICAgIC8vIC0gSGFuZGxpbmcg
dGhhdCBvbmUgcmVzdWx0cyBpbiB5ZXQgYW5vdGhlciBiZWluZyBlbnF1ZXVlZAorICAgIC8vIC0g
QW5kIHNvIG9uCisgICAgLy8KKyAgICAvLyBJbiB0aGlzIHNpdHVhdGlvbiBvbmUgaW52b2NhdGlv
biBvZiBwZXJmb3JtV29yaygpIG5ldmVyIHJldHVybnMgc28gYWxsIG90aGVyIGV2ZW50IHNvdXJj
ZXMgYXJlIGJsb2NrZWQuCisgICAgLy8gQnkgb25seSBoYW5kbGluZyB1cCB0byB0aGUgbnVtYmVy
IG9mIGZ1bmN0aW9ucyB0aGF0IHdlcmUgaW4gdGhlIHF1ZXVlIHdoZW4gcGVyZm9ybVdvcmsoKSBp
cyBjYWxsZWQKKyAgICAvLyB3ZSBndWFyYW50ZWUgdG8gb2NjYXNpb25hbGx5IHJldHVybiBmcm9t
IHRoZSBydW4gbG9vcCBzbyBvdGhlciBldmVudCBzb3VyY2VzIHdpbGwgYmUgYWxsb3dlZCB0byBz
cGluLgorCisgICAgRnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbjsKKyAgICBzaXplX3QgZnVuY3Rp
b25zVG9IYW5kbGUgPSAwOworCisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9m
dW5jdGlvblF1ZXVlTG9jayk7CisgICAgICAgIGZ1bmN0aW9uc1RvSGFuZGxlID0gbV9mdW5jdGlv
blF1ZXVlLnNpemUoKTsKKworICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmdW5jdGlvbiA9IG1fZnVuY3Rpb25RdWV1
ZS50YWtlRmlyc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbigpOworCisgICAgZm9yIChzaXpl
X3QgZnVuY3Rpb25zSGFuZGxlZCA9IDE7IGZ1bmN0aW9uc0hhbmRsZWQgPCBmdW5jdGlvbnNUb0hh
bmRsZTsgKytmdW5jdGlvbnNIYW5kbGVkKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKKworICAgICAgICAgICAgLy8gRXZl
biBpZiB3ZSBzdGFydCBvZmYgd2l0aCBOIGZ1bmN0aW9ucyB0byBoYW5kbGUgYW5kIHdlJ3ZlIG9u
bHkgaGFuZGxlZCBsZXNzIHRoYW4gTiBmdW5jdGlvbnMsIHRoZSBxdWV1ZQorICAgICAgICAgICAg
Ly8gc3RpbGwgbWlnaHQgYmUgZW1wdHkgYmVjYXVzZSB0aG9zZSBmdW5jdGlvbnMgbWlnaHQgaGF2
ZSBiZWVuIGhhbmRsZWQgaW4gYW4gaW5uZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKS4KKyAgICAg
ICAgICAgIC8vIEluIHRoYXQgY2FzZSB3ZSBzaG91bGQgYmFpbCBoZXJlLgorICAgICAgICAgICAg
aWYgKG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgICAgIGZ1bmN0aW9uID0gbV9mdW5jdGlvblF1ZXVlLnRha2VGaXJzdCgpOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbigpOworICAgIH0KK30KKwordm9pZCBS
dW5Mb29wOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7CisgICAgbV9mdW5jdGlv
blF1ZXVlLmFwcGVuZChmdW5jdGlvbik7CisKKyAgICB3YWtlVXAoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9SdW5Mb29wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDkzNjVkYmFkMDlmMTQzNTc3NTdkNTU3NDZm
NDIyODk5NGZlYTIxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
aApAQCAtMCwwICsxLDE3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg
KGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgUnVuTG9vcF9oCisjZGVmaW5lIFJ1bkxvb3BfaAorCisjaW5jbHVk
ZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYv
RnVuY3Rpb25EaXNwYXRjaGVyLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HUmVmUHRyLmg+CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEVGTCkKKyNpbmNsdWRlIDxFY29y
ZS5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBSdW5Mb29wIDogcHVibGlj
IEZ1bmN0aW9uRGlzcGF0Y2hlciB7CitwdWJsaWM6CisgICAgLy8gTXVzdCBiZSBjYWxsZWQgZnJv
bSB0aGUgbWFpbiB0aHJlYWQgKGV4Y2VwdCBmb3IgdGhlIE1hYyBwbGF0Zm9ybSwgd2hlcmUgaXQK
KyAgICAvLyBjYW4gYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZCkuCisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHN0YXRpYyB2b2lkIGluaXRpYWxpemVNYWluUnVuTG9vcCgpOworCisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBSdW5Mb29wKiBjdXJyZW50KCk7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHN0YXRpYyBSdW5Mb29wKiBtYWluKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyBib29sIGlzTWFpbigpOworICAgIH5SdW5Mb29wKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpIE9WRVJSSURFOworCisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHJ1bigpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIHN0b3AoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB3YWtlVXAoKTsKKworI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBydW5Gb3JEdXJhdGlv
bihkb3VibGUgZHVyYXRpb24pOworI2VuZGlmCisgICAgCisgICAgY2xhc3MgVGltZXJCYXNlIHsK
KyAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3A7CisgICAgcHVibGljOgorICAgICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgVGltZXJCYXNlKFJ1bkxvb3AqKTsKKyAgICAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgflRpbWVyQmFzZSgpOworCisgICAgICAgIHZvaWQgc3Rh
cnRSZXBlYXRpbmcoZG91YmxlIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0KHJlcGVhdEludGVydmFs
LCB0cnVlKTsgfQorICAgICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50ZXJ2YWwpIHsg
c3RhcnQoaW50ZXJ2YWwsIGZhbHNlKTsgfQorCisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIHN0b3AoKTsKKyAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNBY3RpdmUoKSBj
b25zdDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7CisKKyAgICBwcml2YXRl
OgorICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydChkb3VibGUgbmV4dEZpcmVJ
bnRlcnZhbCwgYm9vbCByZXBlYXQpOworCisgICAgICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKKwor
I2lmIFBMQVRGT1JNKFdJTikKKyAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29w
KiwgdWludDY0X3QgSUQpOworICAgICAgICB1aW50NjRfdCBtX0lEOworICAgICAgICBib29sIG1f
aXNSZXBlYXRpbmc7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgICAgIHN0YXRpYyB2b2lkIHRp
bWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKKyAgICAgICAgUmV0YWluUHRyPENG
UnVuTG9vcFRpbWVyUmVmPiBtX3RpbWVyOworI2VsaWYgUExBVEZPUk0oRUZMKQorICAgICAgICBz
dGF0aWMgYm9vbCB0aW1lckZpcmVkKHZvaWQqIGRhdGEpOworICAgICAgICBFY29yZV9UaW1lciog
bV90aW1lcjsKKyAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOworI2VsaWYgVVNFKEdMSUIpCisg
ICAgICAgIHN0YXRpYyBnYm9vbGVhbiB0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJC
YXNlKik7CisgICAgICAgIGdib29sZWFuIGlzUmVwZWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9p
c1JlcGVhdGluZzsgfQorICAgICAgICB2b2lkIGNsZWFyVGltZXJTb3VyY2UoKTsKKyAgICAgICAg
R1JlZlB0cjxHU291cmNlPiBtX3RpbWVyU291cmNlOworICAgICAgICBnYm9vbGVhbiBtX2lzUmVw
ZWF0aW5nOworI2VuZGlmCisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUaW1lckZp
cmVkQ2xhc3M+CisgICAgY2xhc3MgVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKKyAgICBwdWJs
aWM6CisgICAgICAgIHR5cGVkZWYgdm9pZCAoVGltZXJGaXJlZENsYXNzOjoqVGltZXJGaXJlZEZ1
bmN0aW9uKSgpOworCisgICAgICAgIFRpbWVyKFJ1bkxvb3AqIHJ1bkxvb3AsIFRpbWVyRmlyZWRD
bGFzcyogbywgVGltZXJGaXJlZEZ1bmN0aW9uIGYpCisgICAgICAgICAgICA6IFRpbWVyQmFzZShy
dW5Mb29wKQorICAgICAgICAgICAgLCBtX29iamVjdChvKQorICAgICAgICAgICAgLCBtX2Z1bmN0
aW9uKGYpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmly
dHVhbCB2b2lkIGZpcmVkKCkgeyAobV9vYmplY3QtPiptX2Z1bmN0aW9uKSgpOyB9CisKKyAgICAg
ICAgVGltZXJGaXJlZENsYXNzKiBtX29iamVjdDsKKyAgICAgICAgVGltZXJGaXJlZEZ1bmN0aW9u
IG1fZnVuY3Rpb247CisgICAgfTsKKworICAgIGNsYXNzIEhvbGRlcjsKKworcHJpdmF0ZToKKyAg
ICBSdW5Mb29wKCk7CisKKyAgICB2b2lkIHBlcmZvcm1Xb3JrKCk7CisKKyAgICBNdXRleCBtX2Z1
bmN0aW9uUXVldWVMb2NrOworICAgIERlcXVlPEZ1bmN0aW9uPHZvaWQoKT4gPiBtX2Z1bmN0aW9u
UXVldWU7CisKKyNpZiBQTEFURk9STShXSU4pCisgICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJSdW5M
b29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7CisgICAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgUnVu
TG9vcFduZFByb2MoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOworICAgIExSRVNVTFQgd25k
UHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJh
bSk7CisgICAgSFdORCBtX3J1bkxvb3BNZXNzYWdlV2luZG93OworCisgICAgdHlwZWRlZiBIYXNo
TWFwPHVpbnQ2NF90LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKKyAgICBUaW1lck1hcCBtX2FjdGl2
ZVRpbWVyczsKKyNlbGlmIFBMQVRGT1JNKE1BQykKKyAgICBzdGF0aWMgdm9pZCBwZXJmb3JtV29y
ayh2b2lkKik7CisgICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4gbV9ydW5Mb29wOworICAgIFJl
dGFpblB0cjxDRlJ1bkxvb3BTb3VyY2VSZWY+IG1fcnVuTG9vcFNvdXJjZTsKKyAgICBpbnQgbV9u
ZXN0aW5nTGV2ZWw7CisjZWxpZiBQTEFURk9STShFRkwpCisgICAgYm9vbCBtX2luaXRFZmw7CisK
KyAgICBNdXRleCBtX3BpcGVMb2NrOworICAgIE93blB0cjxFY29yZV9QaXBlPiBtX3BpcGU7CisK
KyAgICBNdXRleCBtX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jazsKKyAgICBib29sIG1fd2FrZVVw
RXZlbnRSZXF1ZXN0ZWQ7CisKKyAgICBzdGF0aWMgdm9pZCB3YWtlVXBFdmVudCh2b2lkKiBkYXRh
LCB2b2lkKiwgdW5zaWduZWQpOworI2VsaWYgVVNFKEdMSUIpCitwdWJsaWM6CisgICAgc3RhdGlj
IGdib29sZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7CisgICAgR01haW5Mb29wKiBpbm5lcm1vc3RM
b29wKCk7CisgICAgdm9pZCBwdXNoTmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKik7CisgICAgdm9p
ZCBwb3BOZXN0ZWRNYWluTG9vcCgpOworcHJpdmF0ZToKKyAgICBHUmVmUHRyPEdNYWluQ29udGV4
dD4gbV9ydW5Mb29wQ29udGV4dDsKKyAgICBWZWN0b3I8R1JlZlB0cjxHTWFpbkxvb3A+ID4gbV9y
dW5Mb29wTWFpbkxvb3BzOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNp
bmcgV1RGOjpSdW5Mb29wOworCisjZW5kaWYgLy8gUnVuTG9vcF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XVEYv
d3RmL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyYjg2YjVi
NTExODUxNzcwNDI1ZjRkOTI4ZjNkZjg1ZGYxZGU0NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcApAQCAtMCwwICsxLDQ4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1z
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisKK25hbWVzcGFjZSBXVEYgeworCitSdW5Mb29wOjpSdW5Mb29wKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvY2YvUnVuTG9vcENGLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2NmL1J1bkxvb3BDRi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTY3NTg2NzAyNjExNGMyNTgyYTcxMTliZjNkNjM1OTQyOTg2MzFjYQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NmL1J1bkxvb3BDRi5jcHAKQEAgLTAsMCArMSwx
MjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UnVuTG9vcC5oIgorCisjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4K
KyNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgorI2luY2x1ZGUgPHd0Zi9BdXRvZHJhaW5l
ZFBvb2wuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3ZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmso
dm9pZCogY29udGV4dCkKK3sKKyAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKKyAgICBzdGF0aWNf
Y2FzdDxSdW5Mb29wKj4oY29udGV4dCktPnBlcmZvcm1Xb3JrKCk7Cit9CisKK1J1bkxvb3A6OlJ1
bkxvb3AoKQorICAgIDogbV9ydW5Mb29wKENGUnVuTG9vcEdldEN1cnJlbnQoKSkKKyAgICAsIG1f
bmVzdGluZ0xldmVsKDApCit7CisgICAgQ0ZSdW5Mb29wU291cmNlQ29udGV4dCBjb250ZXh0ID0g
eyAwLCB0aGlzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCBwZXJmb3JtV29yayB9OworICAgIG1fcnVu
TG9vcFNvdXJjZSA9IGFkb3B0Q0YoQ0ZSdW5Mb29wU291cmNlQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIDAsICZjb250ZXh0KSk7CisgICAgQ0ZSdW5Mb29wQWRkU291cmNlKG1fcnVuTG9vcC5n
ZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworfQor
CitSdW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgQ0ZSdW5Mb29wU291cmNlSW52YWxpZGF0ZSht
X3J1bkxvb3BTb3VyY2UuZ2V0KCkpOworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9u
KGRvdWJsZSBkdXJhdGlvbikKK3sKKyAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERl
ZmF1bHRNb2RlLCBkdXJhdGlvbiwgdHJ1ZSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkK
K3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VTaWduYWwobV9ydW5Mb29wU291cmNlLmdldCgpKTsKKyAg
ICBDRlJ1bkxvb3BXYWtlVXAobV9ydW5Mb29wLmdldCgpKTsKK30KKwordm9pZCBSdW5Mb29wOjpy
dW4oKQoreworICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwrKzsKKyAgICAKKyAgICB7Cisg
ICAgICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOworICAgICAgICBDRlJ1bkxvb3BSdW4oKTsKKyAg
ICB9CisgICAgCisgICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbC0tOworfQorCit2b2lkIFJ1
bkxvb3A6OnN0b3AoKQoreworICAgIEFTU0VSVChtX3J1bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0Q3Vy
cmVudCgpKTsKKyAgICBDRlJ1bkxvb3BTdG9wKG1fcnVuTG9vcC5nZXQoKSk7Cit9CisKKy8vIFJ1
bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKENGUnVu
TG9vcFRpbWVyUmVmLCB2b2lkKiBjb250ZXh0KQoreworICAgIFRpbWVyQmFzZSogdGltZXIgPSBz
dGF0aWNfY2FzdDxUaW1lckJhc2UqPihjb250ZXh0KTsKKworICAgIEF1dG9kcmFpbmVkUG9vbCBw
b29sOworICAgIHRpbWVyLT5maXJlZCgpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVy
QmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCit7Cit9CisK
K1J1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCit2
b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJv
b2wgcmVwZWF0KQoreworICAgIGlmIChtX3RpbWVyKQorICAgICAgICBzdG9wKCk7CisgICAgCisg
ICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAgfTsK
KyAgICBDRlRpbWVJbnRlcnZhbCByZXBlYXRJbnRlcnZhbCA9IHJlcGVhdCA/IG5leHRGaXJlSW50
ZXJ2YWwgOiAwOworICAgIG1fdGltZXIgPSBhZG9wdENGKENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgbmV4dEZpcmVJ
bnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWwsIDAsIDAsIHRpbWVyRmlyZWQsICZjb250ZXh0KSk7Cisg
ICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3AuZ2V0KCksIG1fdGltZXIu
Z2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJC
YXNlOjpzdG9wKCkKK3sKKyAgICBpZiAoIW1fdGltZXIpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBDRlJ1bkxvb3BUaW1lckludmFsaWRhdGUobV90aW1lci5nZXQoKSk7CisgICAgbV90aW1l
ciA9IG51bGxwdHI7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5Mb29wVGltZXJJc1ZhbGlkKG1fdGlt
ZXIuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL2VmbC9SdW5Mb29wRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9SdW5Mb29wRWZs
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40YTM4NDk3ZWIzNTU0YzJlNjAwYTM2ZmViNDg5MzFmNWRmYzFhZThh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3BwCkBA
IC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJl
ZGRlZCBzeXN0ZW1zLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEy
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCitzdGF0aWMg
Y29uc3QgaW50IGVjb3JlUGlwZU1lc3NhZ2VTaXplID0gMTsKK3N0YXRpYyBjb25zdCBjaGFyIHdh
a3VwRWNvcmVQaXBlTWVzc2FnZVtdID0gIlciOworCituYW1lc3BhY2UgV1RGIHsKKworUnVuTG9v
cDo6UnVuTG9vcCgpCisgICAgOiBtX2luaXRFZmwoZmFsc2UpCisgICAgLCBtX3dha2VVcEV2ZW50
UmVxdWVzdGVkKGZhbHNlKQoreworICAgIG1fcGlwZSA9IGFkb3B0UHRyKGVjb3JlX3BpcGVfYWRk
KHdha2VVcEV2ZW50LCB0aGlzKSk7CisgICAgbV9pbml0RWZsID0gdHJ1ZTsKK30KKworUnVuTG9v
cDo6flJ1bkxvb3AoKQoreworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7CisgICAgZWNvcmVf
bWFpbl9sb29wX2JlZ2luKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgZWNv
cmVfbWFpbl9sb29wX3F1aXQoKTsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXBFdmVudCh2b2lk
KiBkYXRhLCB2b2lkKiwgdW5zaWduZWQpCit7CisgICAgUnVuTG9vcCogbG9vcCA9IHN0YXRpY19j
YXN0PFJ1bkxvb3AqPihkYXRhKTsKKworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KGxvb3AtPm1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWRMb2NrKTsKKyAgICAgICAgbG9vcC0+bV93YWtl
VXBFdmVudFJlcXVlc3RlZCA9IGZhbHNlOworICAgIH0KKworICAgIGxvb3AtPnBlcmZvcm1Xb3Jr
KCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICB7CisgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jayk7CisgICAgICAgIGlmICht
X3dha2VVcEV2ZW50UmVxdWVzdGVkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3dh
a2VVcEV2ZW50UmVxdWVzdGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3BpcGVMb2NrKTsKKyAgICAgICAgZWNvcmVfcGlwZV93cml0ZShtX3Bp
cGUuZ2V0KCksIHdha3VwRWNvcmVQaXBlTWVzc2FnZSwgZWNvcmVQaXBlTWVzc2FnZVNpemUpOwor
ICAgIH0KK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCopCisgICAg
OiBtX3RpbWVyKDApCisgICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQoreworfQorCitSdW5Mb29w
OjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKworYm9vbCBSdW5M
b29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQodm9pZCogZGF0YSkKK3sKKyAgICBSdW5Mb29wOjpU
aW1lckJhc2UqIHRpbWVyID0gc3RhdGljX2Nhc3Q8UnVuTG9vcDo6VGltZXJCYXNlKj4oZGF0YSk7
CisKKyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKQorICAgICAgICB0aW1lci0+bV90aW1l
ciA9IDA7CisKKyAgICB0aW1lci0+ZmlyZWQoKTsKKworICAgIHJldHVybiB0aW1lci0+bV9pc1Jl
cGVhdGluZyA/IEVDT1JFX0NBTExCQUNLX1JFTkVXIDogRUNPUkVfQ0FMTEJBQ0tfQ0FOQ0VMOwor
fQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2
YWwsIGJvb2wgcmVwZWF0KQoreworICAgIGlmIChpc0FjdGl2ZSgpKQorICAgICAgICBzdG9wKCk7
CisKKyAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OworICAgIEFTU0VSVCghbV90aW1lcik7Cisg
ICAgbV90aW1lciA9IGVjb3JlX3RpbWVyX2FkZChuZXh0RmlyZUludGVydmFsLCByZWludGVycHJl
dF9jYXN0PEVjb3JlX1Rhc2tfQ2I+KHRpbWVyRmlyZWQpLCB0aGlzKTsKK30KKwordm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnN0b3AoKQoreworICAgIGlmIChtX3RpbWVyKSB7CisgICAgICAgIGVj
b3JlX3RpbWVyX2RlbChtX3RpbWVyKTsKKyAgICAgICAgbV90aW1lciA9IDA7CisgICAgfQorfQor
Citib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVy
biAobV90aW1lcikgPyB0cnVlIDogZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ3RrL1J1bkxvb3BHdGsuY3BwIGIvU291cmNlL1dURi93
dGYvZ3RrL1J1bkxvb3BHdGsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMjdhYWZiOTU2Yjk3MjdjOTU1Yjdm
YWE4MjQ0NGE0OTI2NDU5M2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9ndGsv
UnVuTG9vcEd0ay5jcHAKQEAgLTAsMCArMSwxNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0
IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisj
aW5jbHVkZSA8Z2RrL2dkay5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKworI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitSdW5Mb29wOjpSdW5Mb29wKCkKK3sK
KyAgICAvLyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgZG9lc24ndCBhZGQgYW4gZXh0cmEgcmVm
ZXJlbmNlLgorICAgIG1fcnVuTG9vcENvbnRleHQgPSBpc01haW5UaHJlYWQoKSA/IGdfbWFpbl9j
b250ZXh0X2RlZmF1bHQoKSA6IGFkb3B0R1JlZihnX21haW5fY29udGV4dF9uZXcoKSk7CisgICAg
QVNTRVJUKG1fcnVuTG9vcENvbnRleHQpOworICAgIEdSZWZQdHI8R01haW5Mb29wPiBpbm5lcm1v
c3RMb29wID0gYWRvcHRHUmVmKGdfbWFpbl9sb29wX25ldyhtX3J1bkxvb3BDb250ZXh0LmdldCgp
LCBGQUxTRSkpOworICAgIEFTU0VSVChpbm5lcm1vc3RMb29wKTsKKyAgICBtX3J1bkxvb3BNYWlu
TG9vcHMuYXBwZW5kKGlubmVybW9zdExvb3ApOworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgpCit7
CisgICAgZm9yIChpbnQgaSA9IG1fcnVuTG9vcE1haW5Mb29wcy5zaXplKCkgLSAxOyBpID49IDA7
IC0taSkgeworICAgICAgICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29wTWFp
bkxvb3BzW2ldLmdldCgpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBnX21haW5f
bG9vcF9xdWl0KG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSk7CisgICAgfQorfQorCit2b2lk
IFJ1bkxvb3A6OnJ1bigpCit7CisgICAgUnVuTG9vcCogbWFpblJ1bkxvb3AgPSBSdW5Mb29wOjpj
dXJyZW50KCk7CisgICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wID0gbWFpblJ1bkxvb3AtPmlu
bmVybW9zdExvb3AoKTsKKyAgICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcoaW5uZXJtb3N0
TG9vcCkpIHsKKyAgICAgICAgZ19tYWluX2xvb3BfcnVuKGlubmVybW9zdExvb3ApOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgLy8gQ3JlYXRlIGFuZCBydW4gYSBuZXN0ZWQgbG9vcCBp
ZiB0aGUgaW5uZXJtb3N0IG9uZSB3YXMgYWxyZWFkeSBydW5uaW5nLgorICAgIEdNYWluTG9vcCog
bmVzdGVkTWFpbkxvb3AgPSBnX21haW5fbG9vcF9uZXcoMCwgRkFMU0UpOworICAgIG1haW5SdW5M
b29wLT5wdXNoTmVzdGVkTWFpbkxvb3AobmVzdGVkTWFpbkxvb3ApOworICAgIGdfbWFpbl9sb29w
X3J1bihuZXN0ZWRNYWluTG9vcCk7CisgICAgbWFpblJ1bkxvb3AtPnBvcE5lc3RlZE1haW5Mb29w
KCk7Cit9CisKK0dNYWluTG9vcCogUnVuTG9vcDo6aW5uZXJtb3N0TG9vcCgpCit7CisgICAgLy8g
VGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NF
UlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOworICAgIHJldHVybiBtX3J1bkxvb3BN
YWluTG9vcHNbMF0uZ2V0KCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cHVzaE5lc3RlZE1haW5Mb29w
KEdNYWluTG9vcCogbmVzdGVkTG9vcCkKK3sKKyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9v
cCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3Bz
LmlzRW1wdHkoKSk7CisgICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChhZG9wdEdSZWYobmVz
dGVkTG9vcCkpOworfQorCit2b2lkIFJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKCkKK3sKKyAg
ICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAg
IEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgbV9ydW5Mb29wTWFp
bkxvb3BzLnJlbW92ZUxhc3QoKTsKK30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAgICAv
LyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFT
U0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgR1JlZlB0cjxHTWFpbkxv
b3A+IGxhc3RNYWluTG9vcCA9IG1fcnVuTG9vcE1haW5Mb29wcy5sYXN0KCk7CisgICAgaWYgKGdf
bWFpbl9sb29wX2lzX3J1bm5pbmcobGFzdE1haW5Mb29wLmdldCgpKSkKKyAgICAgICAgZ19tYWlu
X2xvb3BfcXVpdChsYXN0TWFpbkxvb3AuZ2V0KCkpOworfQorCitnYm9vbGVhbiBSdW5Mb29wOjpx
dWV1ZVdvcmsoUnVuTG9vcCogcnVuTG9vcCkKK3sKKyAgICBydW5Mb29wLT5wZXJmb3JtV29yaygp
OworICAgIHJldHVybiBGQUxTRTsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAg
IEdSZWZQdHI8R1NvdXJjZT4gc291cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3KCkp
OworICAgIGdfc291cmNlX3NldF9wcmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfREVG
QVVMVCk7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRlcnBy
ZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOworICAg
IGdfc291cmNlX2F0dGFjaChzb3VyY2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOwor
CisgICAgZ19tYWluX2NvbnRleHRfd2FrZXVwKG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOworfQor
CitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDog
bV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBtX3RpbWVyU291cmNlKDApCit7Cit9CisKK1J1bkxv
b3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6Y2xlYXJUaW1lclNvdXJjZSgpCit7CisgICAgbV90aW1lclNvdXJj
ZSA9IDA7Cit9CisKK2dib29sZWFuIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxi
YWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIpCit7CisgICAgR1NvdXJjZSogY3VycmVudFRp
bWVyU291cmNlID0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCk7CisgICAgYm9vbCBpc1JlcGVh
dGluZyA9IHRpbWVyLT5pc1JlcGVhdGluZygpOworICAgIC8vIFRoaXMgY2FuIGNoYW5nZSB0aGUg
dGltZXJTb3VyY2UgYnkgc3RhcnRpbmcgYSBuZXcgdGltZXIgd2l0aGluIHRoZSBjYWxsYmFjay4K
KyAgICBpZiAoIWlzUmVwZWF0aW5nICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+bV90
aW1lclNvdXJjZS5nZXQoKSkKKyAgICAgICAgdGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsKKwor
ICAgIHRpbWVyLT5maXJlZCgpOworICAgIHJldHVybiBpc1JlcGVhdGluZzsKK30KKwordm9pZCBS
dW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0
KQoreworICAgIGlmIChtX3RpbWVyU291cmNlKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX3Rp
bWVyU291cmNlID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1
aW50PihmaXJlSW50ZXJ2YWwgKiAxMDAwKSkpOworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7
CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJw
cmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxs
YmFjayksIHRoaXMsIDApOworICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgp
LCBtX3J1bkxvb3AtPm1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOworfQorCit2b2lkIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX3RpbWVyU291cmNlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBnX3NvdXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAg
IGNsZWFyVGltZXJTb3VyY2UoKTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0
aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90aW1lclNvdXJjZTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM1MzFiNjM5
NGM0ODJmYzJkMzllZmQ2ZDA4MTZiYWQ1ZmYwZDQ2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRl
IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJhcy5oPgorCit1
c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV1RGIHsKKworc3RhdGljIGNvbnN0IFVJ
TlQgUGVyZm9ybVdvcmtNZXNzYWdlID0gV01fVVNFUiArIDE7CitzdGF0aWMgY29uc3QgTFBXU1RS
IGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSA9IEwiUnVuTG9vcE1lc3NhZ2VXaW5kb3ci
OworCitMUkVTVUxUIENBTExCQUNLIFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jKEhXTkQgaFduZCwg
VUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQoreworICAgIGlmIChS
dW5Mb29wKiBydW5Mb29wID0gc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGdldFdpbmRvd1BvaW50ZXIo
aFduZCwgMCkpKQorICAgICAgICByZXR1cm4gcnVuTG9vcC0+d25kUHJvYyhoV25kLCBtZXNzYWdl
LCB3UGFyYW0sIGxQYXJhbSk7CisKKyAgICBpZiAobWVzc2FnZSA9PSBXTV9DUkVBVEUpIHsKKyAg
ICAgICAgTFBDUkVBVEVTVFJVQ1QgY3JlYXRlU3RydWN0ID0gcmVpbnRlcnByZXRfY2FzdDxMUENS
RUFURVNUUlVDVD4obFBhcmFtKTsKKworICAgICAgICAvLyBBc3NvY2lhdGUgdGhlIFJ1bkxvb3Ag
d2l0aCB0aGUgd2luZG93LgorICAgICAgICBzZXRXaW5kb3dQb2ludGVyKGhXbmQsIDAsIGNyZWF0
ZVN0cnVjdC0+bHBDcmVhdGVQYXJhbXMpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAg
ICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsK
K30KKworTFJFU1VMVCBSdW5Mb29wOjp3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBX
UEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQoreworICAgIHN3aXRjaCAobWVzc2FnZSkgewor
ICAgIGNhc2UgUGVyZm9ybVdvcmtNZXNzYWdlOgorICAgICAgICBwZXJmb3JtV29yaygpOworICAg
ICAgICByZXR1cm4gMDsKKyAgICBjYXNlIFdNX1RJTUVSOgorICAgICAgICBSdW5Mb29wOjpUaW1l
ckJhc2U6OnRpbWVyRmlyZWQodGhpcywgd1BhcmFtKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
fQorCisgICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQ
YXJhbSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBNU0cgbWVzc2FnZTsKKyAg
ICB3aGlsZSAoQk9PTCByZXN1bHQgPSA6OkdldE1lc3NhZ2UoJm1lc3NhZ2UsIDAsIDAsIDApKSB7
CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
OjpUcmFuc2xhdGVNZXNzYWdlKCZtZXNzYWdlKTsKKyAgICAgICAgOjpEaXNwYXRjaE1lc3NhZ2Uo
Jm1lc3NhZ2UpOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAgICA6OlBv
c3RRdWl0TWVzc2FnZSgwKTsKK30KKworYm9vbCBSdW5Mb29wOjpyZWdpc3RlclJ1bkxvb3BNZXNz
YWdlV2luZG93Q2xhc3MoKQoreworICAgIC8vIEZJWE1FOiBUaGlzIHJlYWxseSBvbmx5IG5lZWRz
IHRvIGJlIGNhbGxlZCBvbmNlLgorCisgICAgV05EQ0xBU1Mgd2luZG93Q2xhc3MgPSB7IDAgfTsK
KyAgICB3aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBSdW5Mb29wOjpSdW5Mb29wV25kUHJv
YzsKKyAgICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAgPSBzaXplb2YoUnVuTG9vcCopOwor
ICAgIHdpbmRvd0NsYXNzLmxwc3pDbGFzc05hbWUgICA9IGtSdW5Mb29wTWVzc2FnZVdpbmRvd0Ns
YXNzTmFtZTsKKworICAgIHJldHVybiAhITo6UmVnaXN0ZXJDbGFzcygmd2luZG93Q2xhc3MpOwor
fQorCitSdW5Mb29wOjpSdW5Mb29wKCkKK3sKKyAgICByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2lu
ZG93Q2xhc3MoKTsKKworICAgIG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cgPSA6OkNyZWF0ZVdpbmRv
dyhrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUsIDAsIDAsCisgICAgICAgIENXX1VTRURF
RkFVTFQsIDAsIENXX1VTRURFRkFVTFQsIDAsIEhXTkRfTUVTU0FHRSwgMCwgMCwgdGhpcyk7Cisg
ICAgQVNTRVJUKDo6SXNXaW5kb3cobV9ydW5Mb29wTWVzc2FnZVdpbmRvdykpOworfQorCitSdW5M
b29wOjp+UnVuTG9vcCgpCit7CisgICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBpdGVt
IHF1ZXVlIGhlcmUuCit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICAvLyBGSVhN
RTogTm8gbmVlZCB0byB3YWtlIHVwIHRoZSBydW4gbG9vcCBpZiB3ZSd2ZSBhbHJlYWR5IGNhbGxl
ZCBkaXNwYXRjaAorICAgIC8vIGJlZm9yZSB0aGUgcnVuIGxvb3AgaGFzIGhhZCB0aGUgdGltZSB0
byByZXNwb25kLgorICAgIDo6UG9zdE1lc3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgUGVy
Zm9ybVdvcmtNZXNzYWdlLCByZWludGVycHJldF9jYXN0PFdQQVJBTT4odGhpcyksIDApOworfQor
CisvLyBSdW5Mb29wOjpUaW1lcgorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJl
ZChSdW5Mb29wKiBydW5Mb29wLCB1aW50NjRfdCBJRCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0
b3IgaXQgPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKKyAgICBpZiAoaXQgPT0g
cnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpIHsKKyAgICAgICAgLy8gVGhlIHRpbWVyIG11
c3QgaGF2ZSBiZWVuIHN0b3BwZWQgYWZ0ZXIgdGhlIFdNX1RJTUVSIG1lc3NhZ2Ugd2FzIHBvc3Rl
ZCB0byB0aGUgbWVzc2FnZSBxdWV1ZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFRp
bWVyQmFzZSogdGltZXIgPSBpdC0+dmFsdWU7CisKKyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0
aW5nKSB7CisgICAgICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAg
ICAgIDo6S2lsbFRpbWVyKHJ1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIElEKTsKKyAg
ICB9CisKKyAgICB0aW1lci0+ZmlyZWQoKTsKK30KKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRl
VGltZXJJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVRpbWVySUQgPSAxOworICAg
IHJldHVybiB1bmlxdWVUaW1lcklEKys7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJC
YXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKKyAgICAsIG1f
SUQoZ2VuZXJhdGVUaW1lcklEKCkpCisgICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQoreworfQor
CitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwor
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBi
b29sIHJlcGVhdCkKK3sKKyAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OworICAgIG1fcnVuTG9v
cC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQsIHRoaXMpOworICAgIDo6U2V0VGltZXIobV9ydW5M
b29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lELCBuZXh0RmlyZUludGVydmFsICogMTAw
MCwgMCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBUaW1l
ck1hcDo6aXRlcmF0b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7
CisgICAgaWYgKGl0ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAg
ICA6OktpbGxUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQpOwor
fQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmNvbnRhaW5zKG1fSUQpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjQ5MDM0ODI1ZTI4NWQ4YTQy
NDgxNDA1YzM0YzZmNjkwZmU0YTBjMS4uMWQ5NWQ1YWIxODNjOTU1NDI1MGUwZjk4ZGE5MjM3ODdm
MDJmMTczMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE3ODQsNyArMTc4NCw2IEBAIHNldChX
ZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAKICAgICBwbGF0
Zm9ybS9QbGF0Zm9ybUV2ZW50LmNwcAogICAgIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKLSAgICBwbGF0Zm9ybS9SdW5Mb29wLmNwcAogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5jcHAKICAgICBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKICAgICBwbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDdlZDMzNzVlOGEzMWI0NWM1ZDU0Yjk5MGEzZDI5YjIwNmFmMjJmNzcuLmU0OGY0ODI5YTdiMzQz
NzNmOGM4NzE2YzkyN2MwMWU2OThhZTU4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtNjAxMSw4ICs2MDExLDYgQEAgcGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1JlZmVycmVyUG9saWN5LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlZkNvdW50
ZWRTdXBwbGVtZW50LmggXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwIFwK
LQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCBcCkBAIC02MTcyLDcgKzYxNzAsNiBAQCBwbGF0Zm9ybWd0
a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3Vz
ZUV2ZW50R3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2Ny
ZWVuR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxF
dmVudEd0ay5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZEJ1ZmZlckd0ay5jcHAgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCmluZGV4IDhjZDJmZGNmN2VjZTc5Njk0NDkx
MDM0NWY5NTZkNTMyNGE3MmViNjEuLjFhMDQ0NTBmYzk5ZWNkOGE3ZWU1M2EwOGU1YzRjZjRkM2Q4
YzZmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTEyMCw3
ICsxMjAsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ibGFj
a2JlcnJ5L1BsYXRmb3JtVG91Y2hQb2ludEJsYWNrQmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxh
Y2tiZXJyeS9Qb3B1cE1lbnVCbGFja0JlcnJ5LmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkv
UmVuZGVyVGhlbWVCbGFja0JlcnJ5LmNwcAotICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvUnVuTG9v
cEJsYWNrQmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9TU0xLZXlHZW5lcmF0b3JC
bGFja0JlcnJ5LmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvU2Nyb2xsYmFyVGhlbWVCbGFj
a0JlcnJ5LmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvU2VhcmNoUG9wdXBNZW51QmxhY2tC
ZXJyeS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMGVhNTBlMWEyZDZhNDVmYzA3
OTdjMWU3NmQzOGYwN2YxYTM1MzhmOS4uMmRiY2M3MDIyYzI4MTc1NjllNjVhNjYyMWQxNmYxYzY1
NzM4NTI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTgyLDcgKzgyLDYgQEAgbGlz
dChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVu
RWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybVdoZWVsRXZlbnRFZmwuY3BwCiAgICAg
cGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAotICAgIHBsYXRmb3JtL2VmbC9SdW5Mb29w
RWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuY3BwCiAgICAgcGxhdGZvcm0v
ZWZsL1Njcm9sbGJhclRoZW1lRWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9TaGFyZWRUaW1lckVm
bC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggOGZmODFmOGUwNTAyNjI2YThmZDEz
NTg4OTY0MmEwMGI5MzRiODNkYS4uMmQ2NzlhZWI4NzlhMWI1ZWEwZjI1YmJmNzMyZmI5ODkwMTE3
MGQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE2NCw3ICsxNjQsNiBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsu
Y3BwCiAgICAgcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMi5jcHAKICAgICBwbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVHdGszLmNwcAotICAgIHBsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcAog
ICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3Jv
bGxiYXJUaGVtZUd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsyLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA4ZGFiZWQzZTQxZThmOTNjYWNlYzQxM2Mz
OWU1MWU0ZTdhYzZlZTc1Li5lZGM1Yjc1YjcxMWQ1ZWM1NzY2NjE3ODA5MzZhYjViMGE1N2EzYTVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtNTEsNyArNTEsNiBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2lu
LmNwcAogICAgIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldpbi5jcHAKICAgICBwbGF0Zm9y
bS93aW4vUG9wdXBNZW51V2luLmNwcAotICAgIHBsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcAog
ICAgIHBsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2lu
L1Njcm9sbGJhclRoZW1lV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVX
aW4uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGM5MDBlOWE1ZTJjNjdkOWQ5Mjk5MGRmNTAx
NmI3M2Q0MGQwYWQ3NjIuLmJkYWJjNjQ5NmFlNWQxMDAyMDhiNGFiZTc5N2Q1Nzc4N2RjZGY5MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMDkwLDE5ICsxMDkwLDYgQEAgX19aTjdXZWJDb3Jl
N0ludFJlY3Q5aW50ZXJzZWN0RVJLUzBfCiBfX1pON1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfMTBM
YXlvdXRSZWN0RQogX19aTjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzlGbG9hdFJlY3RFCiBfX1pO
N1dlYkNvcmU3SW50U2l6ZUMxRVJLNkNHU2l6ZQotX19aTjdXZWJDb3JlN1J1bkxvb3AxNHJ1bkZv
ckR1cmF0aW9uRWQKLV9fWk43V2ViQ29yZTdSdW5Mb29wMjFpbml0aWFsaXplTWFpblJ1bkxvb3BF
dgotX19aTjdXZWJDb3JlN1J1bkxvb3AzcnVuRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wNG1haW5F
dgotX19aTjdXZWJDb3JlN1J1bkxvb3A0c3RvcEV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDZpc01h
aW5FdgotX19aTjdXZWJDb3JlN1J1bkxvb3A2d2FrZVVwRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29w
N2N1cnJlbnRFdgotX19aTjdXZWJDb3JlN1J1bkxvb3A4ZGlzcGF0Y2hFUktOM1dURjhGdW5jdGlv
bklGdnZFRUUKLV9fWk43V2ViQ29yZTdSdW5Mb29wOVRpbWVyQmFzZTRzdG9wRXYKLV9fWk43V2Vi
Q29yZTdSdW5Mb29wOVRpbWVyQmFzZTVzdGFydEVkYgotX19aTjdXZWJDb3JlN1J1bkxvb3A5VGlt
ZXJCYXNlQzJFUFMwXwotX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlRDJFdgogX19aTjdX
ZWJDb3JlN1RleHRSdW4xOWFsbG93c1JvdW5kaW5nSGFja3NFdgogX19aTjdXZWJDb3JlN1RleHRS
dW4yMXNfYWxsb3dzUm91bmRpbmdIYWNrc0UKIF9fWk43V2ViQ29yZTdUZXh0UnVuMjJzZXRBbGxv
d3NSb3VuZGluZ0hhY2tzRWIKQEAgLTE3MjYsNyArMTcxMyw2IEBAIF9fWk5LN1dlYkNvcmU3RWxl
bWVudDE5YmVmb3JlUHNldWRvRWxlbWVudEV2CiBfX1pOSzdXZWJDb3JlN0ludFJlY3QxMGludGVy
c2VjdHNFUktTMF8KIF9fWk5LN1dlYkNvcmU3SW50UmVjdDhjb250YWluc0VSS1MwXwogX19aTks3
V2ViQ29yZTdJbnRSZWN0Y3Y2Q0dSZWN0RXYKLV9fWk5LN1dlYkNvcmU3UnVuTG9vcDlUaW1lckJh
c2U4aXNBY3RpdmVFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDExY29tcGxldGVVUkxFUktOM1dU
RjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTNheE9iamVjdENhY2hlRXYKIF9fWk5L
N1dlYkNvcmU4RG9jdW1lbnQzMWRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmdFUktOM1dU
RjZTdHJpbmdFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCBhY2ZiNDE1Y2FhNDE2ZmM5YmUzOTQ4MDNkMDNhMzlhZmI1MmNjZmIxLi45ZGI1
MGFkNWQzMzQ2ZGMxM2UzYjhmNzUzODRmZmNmMzFjOTQ0MDhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTcyMzYsNyArNzIzNiw2IEBA
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxOb3RJbXBsZW1lbnRlZC5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxQbGF0Zm9ybUV2ZW50LmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxSdW5Mb29w
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFJ1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxTY2hlbWVSZWdpc3RyeS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxTY3JvbGxhYmxlQXJlYS5jcHAiIC8+CkBAIC03Mjk1LDcgKzcyOTQsNiBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFBsYXRmb3JtTW91c2VFdmVudFdpbi5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cUGxhdGZvcm1T
Y3JlZW5XaW4uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2lu
XFBvcHVwTWVudVdpbi5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVx3aW5cUnVuTG9vcFdpbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVx3aW5cU2Nyb2xsYmFyVGhlbWVTYWZhcmkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cd2luXFNjcm9sbGJhclRoZW1lV2luLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTZWFyY2hQb3B1cE1lbnVXaW4uY3BwIiAv
PgpAQCAtMTg3MjgsNyArMTg3MjYsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxh
dGZvcm1cUG9wdXBNZW51U3R5bGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXFB1cmdlYWJsZUJ1ZmZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cUmVmZXJyZXJQb2xpY3kuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXFJ1bkxvb3AuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cU2NoZW1lUmVnaXN0cnkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXFNjcm9sbGFibGVBcmVhLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDBjNTNlYmRmNDRjNjRk
YzQ3NjAzOGFhY2IyYWI5NTgyOTkyNmI0OS4uMjg1MzgzNTE3ZDljZWEyMmYxNTRhOWFkMTg2NWM5
ZGFjZWFmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtOTEwLDcgKzkxMCw2IEBACiAJCTI5N0JFM0Q3MTZDMDNDMEUwMDMz
MTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUU0RDhERjE2QjA5NDBGMDBDODQ3MDQgLyogUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplci5oICovOyB9OwogCQkyOTdCRTNEODE2QzAzQ0NFMDAzMzE2
QkQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tICovOyB9OwogCQkyOTdCRTNEQTE2QzA0M0Q4
MDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTdCRTNEOTE2QzA0M0Q4MDAzMzE2QkQg
LyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5jcHAgKi87IH07Ci0JCTI5QTMwOUFDMTU2MUM5
OUIwMEJCRDhFNSAvKiBSdW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjlBMzA5QUIxNTYxQzk5QjAwQkJEOEU1IC8qIFJ1bkxvb3BDRi5j
cHAgKi87IH07CiAJCTI5QTgxMjJCMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFi
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgx
MjBEMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuaCAqLzsgfTsKIAkJMjlB
ODEyMkMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwRTBGQkI5QzFEMDA1MTAy
OTMgLyogQWNjZXNzaWJpbGl0eUxpc3QuaCAqLzsgfTsKIAkJMjlBODEyMkUwRkJCOUMxRDAwNTEw
MjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjEwMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nl
c3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggKi87IH07CkBAIC00Njg3LDggKzQ2ODYsNiBAQAogCQlC
QzA2RUUwNDBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZFRTAyMEJGRDcxQUEw
MDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuY3BwICovOyB9OwogCQlCQzA2RUUwNTBCRkQ3
MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA2RUUwMzBCRkQ3MUFBMDA4NTZFOUQgLyogSlNI
VE1MVGFibGVFbGVtZW50LmggKi87IH07CiAJCUJDMDczQkFBMEMzOTlCMUYwMDBGNTk3OSAvKiBG
bG9hdENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMDczQkE5MEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLzsg
fTsKLQkJQkMwQjM1ODcxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM1ODUxNEM0Rjk4MzAwNTVF
MjJBIC8qIFJ1bkxvb3AuY3BwICovOyB9OwotCQlCQzBCMzU4ODE0QzRGOTgzMDA1NUUyMkEgLyog
UnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzBCMzZBNDBDRDNDNjdDMDBBQzdFQjUg
LyogQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzBCMzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi87IH07CiAJCUJD
MEIzNkE1MENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzZBMjBDRDNDNjdDMDBBQzdFQjUgLyogQ29u
c29sZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUJDMTBENzY3MTdEOEVFNkUwMDVFMjYyNiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGQjQ1RjQxN0Q4RTQ5NDAw
NDQ0NDQ2IC8qIFJlbmRlckJsb2NrRmxvdy5jcHAgKi87IH07CkBAIC03Mzk5LDcgKzczOTYsNiBA
QAogCQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBWE9iamVjdENhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjk4NTcwOTIxNUNDNTMyRDAwNjM1NUNEIC8qIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjk4NTcwOTMxNUNDNTMyRDAwNjM1NUNEIC8qIEFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTI5QTMwOUFCMTU2MUM5OUIw
MEJCRDhFNSAvKiBSdW5Mb29wQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUnVuTG9vcENGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEy
MEQwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VGFibGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjlBODEyMEUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlM
aXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlMaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjEwMEZCQjlDMUQwMDUxMDI5
MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTExNTU0LDggKzExNTUwLDYgQEAKIAkJQkMwNkYyNEMwNkQxOEE3RTAwNEE2
RkEzIC8qIFhTTFRQcm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gWFNMVFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkMwNkYyNEQwNkQxOEE3RTAwNEE2
RkEzIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CUJDMDczQkE5MEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0Q29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdW5Mb29wLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxv
b3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9vcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzBCMzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29s
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMEIzNkEyMENEM0M2N0MwMEFDN0VCNSAv
KiBDb25zb2xlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMEIzNkEzMENEM0M2N0MwMEFDN0VCNSAv
KiBDb25zb2xlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ29uc29sZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzk2NCw3ICsxMzk1OCw2IEBACiAJCQkJRTFBOEU1
NjUxNzU1MkIyQTAwNzQ4OEU3IC8qIENGVVJMRXh0cmFzLmggKi8sCiAJCQkJNTE2MDMwNkIwQ0M0
MzYyMzAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1DRi5jcHAgKi8sCiAJCQkJMUE5ODk1NkEwQUE3OEY4
MDAwNUVGNUVGIC8qIFVSTENGLmNwcCAqLywKLQkJCQkyOUEzMDlBQjE1NjFDOTlCMDBCQkQ4RTUg
LyogUnVuTG9vcENGLmNwcCAqLywKIAkJCQk1MTJERDhFMjBEOTFFMkI0MDAwRjg5RUUgLyogU2hh
cmVkQnVmZmVyQ0YuY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBjZjsKQEAgLTE5ODMwLDggKzE5
ODIzLDYgQEAKIAkJCQk3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5o
ICovLAogCQkJCUE3MkVBM0JBMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVu
dC5oICovLAogCQkJCTk4MzFBRTQ5MTU0MjI1QTIwMEZFMjY0NCAvKiBSZWZlcnJlclBvbGljeS5o
ICovLAotCQkJCUJDMEIzNTg1MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLywKLQkJ
CQlCQzBCMzU4NjE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5oICovLAogCQkJCTI5M0VBRTIw
MTM1NkIzMkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwICovLAogCQkJ
CTI5M0VBRTFFMTM1NkIyRkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAq
LywKIAkJCQk1MTYyQzdGMjExRjc3RUZBMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuY3BwICov
LApAQCAtMjM4NDUsNyArMjM4MzYsNiBAQAogCQkJCUE3M0Y5NUZGMTJDOTdCRkUwMDMxQUFGOSAv
KiBSb3VuZGVkUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc5QkFEQTIxNjFFN0YzRjAwQzJF
NjUyIC8qIFJ1bGVGZWF0dXJlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzlCQURBNDE2MUU3RjNG
MDBDMkU2NTIgLyogUnVsZVNldC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkMwQjM1ODgxNEM0Rjk4
MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTY5RDFGMEQ3RTJC
ODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQy
MTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBNTY5RDIzMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX29iamVjdC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNzAxMSw4ICsyNzAwMSw2IEBACiAJCQkJQTc5QkFEQTExNjFFN0YzRjAwQzJFNjUy
IC8qIFJ1bGVGZWF0dXJlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3OUJBREEzMTYxRTdGM0Yw
MEMyRTY1MiAvKiBSdWxlU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAyMTdEMTRD
RUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJD
MEIzNTg3MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTI5QTMwOUFDMTU2MUM5OUIwMEJCRDhFNSAvKiBSdW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0MyQkREM0QxN0M3Rjk4QzAwMzhGRjE1IC8qIEpTRE9NR2xvYmFsT2JqZWN0VGFzay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQxRTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGlt
ZV9hcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQyMDBEN0UyQjgyMDA3QzM5ODMg
LyogcnVudGltZV9tZXRob2QuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1
bkxvb3AuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTRlZGQ1Njg5ZjcxOGNl
MjU2MGE0MGNiMjczYjc3ZDc3NTNjOTBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsMTMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXN0YXRpYyBSdW5Mb29wKiBzX21haW5SdW5Mb29wOwotCi0vLyBIZWxwZXIgY2xhc3MgZm9y
IFRocmVhZFNwZWNpZmljRGF0YS4KLWNsYXNzIFJ1bkxvb3A6OkhvbGRlciB7Ci1wdWJsaWM6Ci0g
ICAgSG9sZGVyKCkKLSAgICAgICAgOiBtX3J1bkxvb3AoYWRvcHRSZWYobmV3IFJ1bkxvb3ApKQot
ICAgIHsKLSAgICB9Ci0KLSAgICBSdW5Mb29wKiBydW5Mb29wKCkgY29uc3QgeyByZXR1cm4gbV9y
dW5Mb29wLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPFJ1bkxvb3A+IG1fcnVuTG9v
cDsKLX07Ci0KLXZvaWQgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCkKLXsKLSAgICBp
ZiAoc19tYWluUnVuTG9vcCkKLSAgICAgICAgcmV0dXJuOwotICAgIHNfbWFpblJ1bkxvb3AgPSBS
dW5Mb29wOjpjdXJyZW50KCk7Ci19Ci0KLVJ1bkxvb3AqIFJ1bkxvb3A6OmN1cnJlbnQoKQotewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5Mb29wOjpIb2xk
ZXI+LCBydW5Mb29wSG9sZGVyLCAoKSk7Ci0gICAgcmV0dXJuIHJ1bkxvb3BIb2xkZXItPnJ1bkxv
b3AoKTsKLX0KLQotUnVuTG9vcCogUnVuTG9vcDo6bWFpbigpCi17Ci0gICAgQVNTRVJUKHNfbWFp
blJ1bkxvb3ApOwotICAgIHJldHVybiBzX21haW5SdW5Mb29wOwotfQotCi1ib29sIFJ1bkxvb3A6
OmlzTWFpbigpCi17Ci0gICAgQVNTRVJUKHNfbWFpblJ1bkxvb3ApOwotICAgIHJldHVybiBzX21h
aW5SdW5Mb29wID09IFJ1bkxvb3A6OmN1cnJlbnQoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpwZXJm
b3JtV29yaygpCi17Ci0gICAgLy8gSXQgaXMgaW1wb3J0YW50IHRvIGhhbmRsZSB0aGUgZnVuY3Rp
b25zIGluIHRoZSBxdWV1ZSBvbmUgYXQgYSB0aW1lIGJlY2F1c2Ugd2hpbGUgaW5zaWRlIG9uZSBv
ZiB0aGVzZQotICAgIC8vIGZ1bmN0aW9ucyB3ZSBtaWdodCByZS1lbnRlciBSdW5Mb29wOjpwZXJm
b3JtV29yaygpIGFuZCB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gcGljayB1cCB3aGVyZSB3ZSBsZWZ0
IG9mZi4KLSAgICAvLyBTZWUgaHR0cDovL3dlYmtpdC5vcmcvYi84OTU5MCBmb3IgbW9yZSBkaXNj
dXNzaW9uLgotCi0gICAgLy8gT25lIHBvc3NpYmxlIHNjZW5hcmlvIHdoZW4gaGFuZGxpbmcgdGhl
IGZ1bmN0aW9uIHF1ZXVlIGlzIGFzIGZvbGxvd3M6Ci0gICAgLy8gLSBSdW5Mb29wOjpwZXJmb3Jt
V29yaygpIGlzIGludm9rZWQgd2l0aCAxIGZ1bmN0aW9uIG9uIHRoZSBxdWV1ZQotICAgIC8vIC0g
SGFuZGxpbmcgdGhhdCBmdW5jdGlvbiByZXN1bHRzIGluIDEgbW9yZSBmdW5jdGlvbiBiZWluZyBl
bnF1ZXVlZAotICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBvbmUgcmVzdWx0cyBpbiB5ZXQgYW5vdGhl
ciBiZWluZyBlbnF1ZXVlZAotICAgIC8vIC0gQW5kIHNvIG9uCi0gICAgLy8KLSAgICAvLyBJbiB0
aGlzIHNpdHVhdGlvbiBvbmUgaW52b2NhdGlvbiBvZiBwZXJmb3JtV29yaygpIG5ldmVyIHJldHVy
bnMgc28gYWxsIG90aGVyIGV2ZW50IHNvdXJjZXMgYXJlIGJsb2NrZWQuCi0gICAgLy8gQnkgb25s
eSBoYW5kbGluZyB1cCB0byB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucyB0aGF0IHdlcmUgaW4gdGhl
IHF1ZXVlIHdoZW4gcGVyZm9ybVdvcmsoKSBpcyBjYWxsZWQKLSAgICAvLyB3ZSBndWFyYW50ZWUg
dG8gb2NjYXNpb25hbGx5IHJldHVybiBmcm9tIHRoZSBydW4gbG9vcCBzbyBvdGhlciBldmVudCBz
b3VyY2VzIHdpbGwgYmUgYWxsb3dlZCB0byBzcGluLgotCi0gICAgRnVuY3Rpb248dm9pZCgpPiBm
dW5jdGlvbjsKLSAgICBzaXplX3QgZnVuY3Rpb25zVG9IYW5kbGUgPSAwOwotCi0gICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7Ci0gICAgICAgIGZ1
bmN0aW9uc1RvSGFuZGxlID0gbV9mdW5jdGlvblF1ZXVlLnNpemUoKTsKLQotICAgICAgICBpZiAo
bV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICBmdW5jdGlvbiA9IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbigpOwotCi0gICAgZm9yIChzaXplX3QgZnVuY3Rpb25zSGFuZGxlZCA9IDE7IGZ1bmN0
aW9uc0hhbmRsZWQgPCBmdW5jdGlvbnNUb0hhbmRsZTsgKytmdW5jdGlvbnNIYW5kbGVkKSB7Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVM
b2NrKTsKLQotICAgICAgICAgICAgLy8gRXZlbiBpZiB3ZSBzdGFydCBvZmYgd2l0aCBOIGZ1bmN0
aW9ucyB0byBoYW5kbGUgYW5kIHdlJ3ZlIG9ubHkgaGFuZGxlZCBsZXNzIHRoYW4gTiBmdW5jdGlv
bnMsIHRoZSBxdWV1ZQotICAgICAgICAgICAgLy8gc3RpbGwgbWlnaHQgYmUgZW1wdHkgYmVjYXVz
ZSB0aG9zZSBmdW5jdGlvbnMgbWlnaHQgaGF2ZSBiZWVuIGhhbmRsZWQgaW4gYW4gaW5uZXIgUnVu
TG9vcDo6cGVyZm9ybVdvcmsoKS4KLSAgICAgICAgICAgIC8vIEluIHRoYXQgY2FzZSB3ZSBzaG91
bGQgYmFpbCBoZXJlLgotICAgICAgICAgICAgaWYgKG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkp
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uID0gbV9mdW5j
dGlvblF1ZXVlLnRha2VGaXJzdCgpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBmdW5j
dGlvbigpOwotICAgIH0KLX0KLQotdm9pZCBSdW5Mb29wOjpkaXNwYXRjaChjb25zdCBGdW5jdGlv
bjx2b2lkKCk+JiBmdW5jdGlvbikKLXsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlv
blF1ZXVlTG9jayk7Ci0gICAgbV9mdW5jdGlvblF1ZXVlLmFwcGVuZChmdW5jdGlvbik7Ci0KLSAg
ICB3YWtlVXAoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UnVuTG9vcC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDNlNWYyMGFiNzdkNWQz
MjQ2YzdhYWRlY2IyMDczMTFhZWFjNWJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaAorKysgL2Rl
di9udWxsCkBAIC0xLDE3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqIFBvcnRpb25zIENvcHly
aWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBSdW5Mb29wX2gKLSNkZWZpbmUgUnVuTG9vcF9oCi0KLSNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbkRpc3BhdGNoZXIuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgot
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQotI2lmIFVTRShHTElCKQotI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dSZWZQdHIuaD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oRUZMKQotI2luY2x1ZGUg
PEVjb3JlLmg+Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSdW5Mb29w
IDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7Ci1wdWJsaWM6Ci0gICAgLy8gTXVzdCBiZSBj
YWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQgKGV4Y2VwdCBmb3IgdGhlIE1hYyBwbGF0Zm9ybSwg
d2hlcmUgaXQKLSAgICAvLyBjYW4gYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZCkuCi0gICAgc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7Ci0KLSAgICBzdGF0aWMgUnVuTG9vcCog
Y3VycmVudCgpOwotICAgIHN0YXRpYyBSdW5Mb29wKiBtYWluKCk7Ci0gICAgc3RhdGljIGJvb2wg
aXNNYWluKCk7Ci0gICAgflJ1bkxvb3AoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaChj
b25zdCBGdW5jdGlvbjx2b2lkKCk+JikgT1ZFUlJJREU7Ci0KLSAgICBzdGF0aWMgdm9pZCBydW4o
KTsKLSAgICB2b2lkIHN0b3AoKTsKLSAgICB2b2lkIHdha2VVcCgpOwotCi0jaWYgUExBVEZPUk0o
TUFDKQotICAgIHZvaWQgcnVuRm9yRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKTsKLSNlbmRpZgot
ICAgIAotICAgIGNsYXNzIFRpbWVyQmFzZSB7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBSdW5Mb29w
OwotICAgIHB1YmxpYzoKLSAgICAgICAgZXhwbGljaXQgVGltZXJCYXNlKFJ1bkxvb3AqKTsKLSAg
ICAgICAgdmlydHVhbCB+VGltZXJCYXNlKCk7Ci0KLSAgICAgICAgdm9pZCBzdGFydFJlcGVhdGlu
Zyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnQocmVwZWF0SW50ZXJ2YWwsIHRydWUpOyB9
Ci0gICAgICAgIHZvaWQgc3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCkgeyBzdGFydChpbnRl
cnZhbCwgZmFsc2UpOyB9Ci0KLSAgICAgICAgdm9pZCBzdG9wKCk7Ci0gICAgICAgIGJvb2wgaXNB
Y3RpdmUoKSBjb25zdDsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7Ci0KLSAg
ICBwcml2YXRlOgotICAgICAgICB2b2lkIHN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBi
b29sIHJlcGVhdCk7Ci0KLSAgICAgICAgUnVuTG9vcCogbV9ydW5Mb29wOwotCi0jaWYgUExBVEZP
Uk0oV0lOKQotICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1bkxvb3AqLCB1aW50NjRf
dCBJRCk7Ci0gICAgICAgIHVpbnQ2NF90IG1fSUQ7Ci0gICAgICAgIGJvb2wgbV9pc1JlcGVhdGlu
ZzsKLSNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChD
RlJ1bkxvb3BUaW1lclJlZiwgdm9pZCopOwotICAgICAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wVGlt
ZXJSZWY+IG1fdGltZXI7Ci0jZWxpZiBQTEFURk9STShFRkwpCi0gICAgICAgIHN0YXRpYyBib29s
IHRpbWVyRmlyZWQodm9pZCogZGF0YSk7Ci0gICAgICAgIEVjb3JlX1RpbWVyKiBtX3RpbWVyOwot
ICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7Ci0jZWxpZiBVU0UoR0xJQikKLSAgICAgICAgc3Rh
dGljIGdib29sZWFuIHRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqKTsKLSAg
ICAgICAgZ2Jvb2xlYW4gaXNSZXBlYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzUmVwZWF0aW5n
OyB9Ci0gICAgICAgIHZvaWQgY2xlYXJUaW1lclNvdXJjZSgpOwotICAgICAgICBHUmVmUHRyPEdT
b3VyY2U+IG1fdGltZXJTb3VyY2U7Ci0gICAgICAgIGdib29sZWFuIG1faXNSZXBlYXRpbmc7Ci0j
ZW5kaWYKLSAgICB9OwotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFRpbWVyRmlyZWRDbGFzcz4K
LSAgICBjbGFzcyBUaW1lciA6IHB1YmxpYyBUaW1lckJhc2UgewotICAgIHB1YmxpYzoKLSAgICAg
ICAgdHlwZWRlZiB2b2lkIChUaW1lckZpcmVkQ2xhc3M6OipUaW1lckZpcmVkRnVuY3Rpb24pKCk7
Ci0KLSAgICAgICAgVGltZXIoUnVuTG9vcCogcnVuTG9vcCwgVGltZXJGaXJlZENsYXNzKiBvLCBU
aW1lckZpcmVkRnVuY3Rpb24gZikKLSAgICAgICAgICAgIDogVGltZXJCYXNlKHJ1bkxvb3ApCi0g
ICAgICAgICAgICAsIG1fb2JqZWN0KG8pCi0gICAgICAgICAgICAsIG1fZnVuY3Rpb24oZikKLSAg
ICAgICAgewotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQg
ZmlyZWQoKSB7IChtX29iamVjdC0+Km1fZnVuY3Rpb24pKCk7IH0KLQotICAgICAgICBUaW1lckZp
cmVkQ2xhc3MqIG1fb2JqZWN0OwotICAgICAgICBUaW1lckZpcmVkRnVuY3Rpb24gbV9mdW5jdGlv
bjsKLSAgICB9OwotCi0gICAgY2xhc3MgSG9sZGVyOwotCi1wcml2YXRlOgotICAgIFJ1bkxvb3Ao
KTsKLQotICAgIHZvaWQgcGVyZm9ybVdvcmsoKTsKLQotICAgIE11dGV4IG1fZnVuY3Rpb25RdWV1
ZUxvY2s7Ci0gICAgRGVxdWU8RnVuY3Rpb248dm9pZCgpPiA+IG1fZnVuY3Rpb25RdWV1ZTsKLQot
I2lmIFBMQVRGT1JNKFdJTikKLSAgICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1bkxvb3BNZXNzYWdl
V2luZG93Q2xhc3MoKTsKLSAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wV25kUHJv
YyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7Ci0gICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQg
aFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKLSAgICBI
V05EIG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3c7Ci0KLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0
X3QsIFRpbWVyQmFzZSo+IFRpbWVyTWFwOwotICAgIFRpbWVyTWFwIG1fYWN0aXZlVGltZXJzOwot
I2VsaWYgUExBVEZPUk0oTUFDKQotICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1Xb3JrKHZvaWQqKTsK
LSAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wUmVmPiBtX3J1bkxvb3A7Ci0gICAgUmV0YWluUHRyPENG
UnVuTG9vcFNvdXJjZVJlZj4gbV9ydW5Mb29wU291cmNlOwotICAgIGludCBtX25lc3RpbmdMZXZl
bDsKLSNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICBib29sIG1faW5pdEVmbDsKLQotICAgIE11dGV4
IG1fcGlwZUxvY2s7Ci0gICAgT3duUHRyPEVjb3JlX1BpcGU+IG1fcGlwZTsKLQotICAgIE11dGV4
IG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWRMb2NrOwotICAgIGJvb2wgbV93YWtlVXBFdmVudFJlcXVl
c3RlZDsKLQotICAgIHN0YXRpYyB2b2lkIHdha2VVcEV2ZW50KHZvaWQqIGRhdGEsIHZvaWQqLCB1
bnNpZ25lZCBpbnQpOwotI2VsaWYgVVNFKEdMSUIpCi1wdWJsaWM6Ci0gICAgc3RhdGljIGdib29s
ZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7Ci0gICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wKCk7
Ci0gICAgdm9pZCBwdXNoTmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKik7Ci0gICAgdm9pZCBwb3BO
ZXN0ZWRNYWluTG9vcCgpOwotcHJpdmF0ZToKLSAgICBHUmVmUHRyPEdNYWluQ29udGV4dD4gbV9y
dW5Mb29wQ29udGV4dDsKLSAgICBWZWN0b3I8R1JlZlB0cjxHTWFpbkxvb3A+ID4gbV9ydW5Mb29w
TWFpbkxvb3BzOwotI2VuZGlmCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAvLyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNr
YmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxh
Y2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGU4MjA3ODhkNmFiYjA5MzgyZTllMThjY2VlZGU2NzUzMTExMTc1NjMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0
OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBz
eXN0ZW1zLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUnVuTG9vcDo6UnVuTG9vcCgpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9SdW5Mb29wQ0YuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2YvUnVuTG9vcENGLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjYxOGUwMjg3OTIyNDgzNzRmYTIyYmVjODAxNjNhOTcxNWI2Nzk1Ny4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jZi9SdW5Mb29wQ0YuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTI5ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgot
Ci0jaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KLSNpbmNsdWRlIDxk
aXNwYXRjaC9kaXNwYXRjaC5oPgotI2luY2x1ZGUgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKHZvaWQqIGNv
bnRleHQpCi17Ci0gICAgQXV0b2RyYWluZWRQb29sIHBvb2w7Ci0gICAgc3RhdGljX2Nhc3Q8UnVu
TG9vcCo+KGNvbnRleHQpLT5wZXJmb3JtV29yaygpOwotfQotCi1SdW5Mb29wOjpSdW5Mb29wKCkK
LSAgICA6IG1fcnVuTG9vcChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpCi0gICAgLCBtX25lc3RpbmdM
ZXZlbCgwKQotewotICAgIENGUnVuTG9vcFNvdXJjZUNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhp
cywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsKLSAgICBtX3J1bkxvb3BTb3Vy
Y2UgPSBhZG9wdENGKENGUnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAw
LCAmY29udGV4dCkpOwotICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1f
cnVuTG9vcFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLX0KLQotUnVuTG9v
cDo6flJ1bkxvb3AoKQotewotICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRhdGUobV9ydW5Mb29w
U291cmNlLmdldCgpKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpydW5Gb3JEdXJhdGlvbihkb3VibGUg
ZHVyYXRpb24pCi17Ci0gICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9k
ZSwgZHVyYXRpb24sIHRydWUpOwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAg
Q0ZSdW5Mb29wU291cmNlU2lnbmFsKG1fcnVuTG9vcFNvdXJjZS5nZXQoKSk7Ci0gICAgQ0ZSdW5M
b29wV2FrZVVwKG1fcnVuTG9vcC5nZXQoKSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsK
LSAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsKys7Ci0gICAgCi0gICAgewotICAgICAgICBB
dXRvZHJhaW5lZFBvb2wgcG9vbDsKLSAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7Ci0gICAgfQotICAg
IAotICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwtLTsKLX0KLQotdm9pZCBSdW5Mb29wOjpz
dG9wKCkKLXsKLSAgICBBU1NFUlQobV9ydW5Mb29wID09IENGUnVuTG9vcEdldEN1cnJlbnQoKSk7
Ci0gICAgQ0ZSdW5Mb29wU3RvcChtX3J1bkxvb3AuZ2V0KCkpOwotfQotCi0vLyBSdW5Mb29wOjpU
aW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChDRlJ1bkxvb3BUaW1l
clJlZiwgdm9pZCogY29udGV4dCkKLXsKLSAgICBUaW1lckJhc2UqIHRpbWVyID0gc3RhdGljX2Nh
c3Q8VGltZXJCYXNlKj4oY29udGV4dCk7Ci0KLSAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKLSAg
ICB0aW1lci0+ZmlyZWQoKTsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVu
TG9vcCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29wKQotewotfQotCi1SdW5Mb29w
OjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVh
dCkKLXsKLSAgICBpZiAobV90aW1lcikKLSAgICAgICAgc3RvcCgpOwotICAgIAotICAgIENGUnVu
TG9vcFRpbWVyQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwIH07Ci0gICAgQ0ZU
aW1lSW50ZXJ2YWwgcmVwZWF0SW50ZXJ2YWwgPSByZXBlYXQgPyBuZXh0RmlyZUludGVydmFsIDog
MDsKLSAgICBtX3RpbWVyID0gYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIG5leHRGaXJlSW50ZXJ2YWws
IHJlcGVhdEludGVydmFsLCAwLCAwLCB0aW1lckZpcmVkLCAmY29udGV4dCkpOwotICAgIENGUnVu
TG9vcEFkZFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wLmdldCgpLCBtX3RpbWVyLmdldCgpLCBr
Q0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3Rv
cCgpCi17Ci0gICAgaWYgKCFtX3RpbWVyKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgQ0ZS
dW5Mb29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIuZ2V0KCkpOwotICAgIG1fdGltZXIgPSBudWxs
cHRyOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAotewot
ICAgIHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVyLmdldCgp
KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1J1bkxvb3BFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL1J1bkxvb3BFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTJkY2Rm
ZTcyMzFlZDUyMTJiZjBiNTk2YTRmNzJhNzQ2OTI1ODYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SdW5M
b29wRWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0K
LSNpbmNsdWRlIDxFY29yZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgotCi1zdGF0aWMgY29uc3QgaW50IGVjb3JlUGlwZU1lc3NhZ2VTaXpl
ID0gMTsKLXN0YXRpYyBjb25zdCBjaGFyIHdha3VwRWNvcmVQaXBlTWVzc2FnZVtdID0gIlciOwot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotICAgIDogbV9pbml0
RWZsKGZhbHNlKQotICAgICwgbV93YWtlVXBFdmVudFJlcXVlc3RlZChmYWxzZSkKLXsKLSAgICBt
X3BpcGUgPSBhZG9wdFB0cihlY29yZV9waXBlX2FkZCh3YWtlVXBFdmVudCwgdGhpcykpOwotICAg
IG1faW5pdEVmbCA9IHRydWU7Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLX0KLQotdm9p
ZCBSdW5Mb29wOjpydW4oKQotewotICAgIGVjb3JlX21haW5fbG9vcF9iZWdpbigpOwotfQotCi12
b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIGVjb3JlX21haW5fbG9vcF9xdWl0KCk7Ci19Ci0K
LXZvaWQgUnVuTG9vcDo6d2FrZVVwRXZlbnQodm9pZCogZGF0YSwgdm9pZCosIHVuc2lnbmVkIGlu
dCkKLXsKLSAgICBSdW5Mb29wKiBsb29wID0gc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGRhdGEpOwot
Ci0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobG9vcC0+bV93YWtlVXBFdmVudFJl
cXVlc3RlZExvY2spOwotICAgICAgICBsb29wLT5tX3dha2VVcEV2ZW50UmVxdWVzdGVkID0gZmFs
c2U7Ci0gICAgfQotCi0gICAgbG9vcC0+cGVyZm9ybVdvcmsoKTsKLX0KLQotdm9pZCBSdW5Mb29w
Ojp3YWtlVXAoKQotewotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fd2FrZVVw
RXZlbnRSZXF1ZXN0ZWRMb2NrKTsKLSAgICAgICAgaWYgKG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQp
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQgPSB0
cnVlOwotICAgIH0KLQotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGlwZUxv
Y2spOwotICAgICAgICBlY29yZV9waXBlX3dyaXRlKG1fcGlwZS5nZXQoKSwgd2FrdXBFY29yZVBp
cGVNZXNzYWdlLCBlY29yZVBpcGVNZXNzYWdlU2l6ZSk7Ci0gICAgfQotfQotCi1SdW5Mb29wOjpU
aW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKikKLSAgICA6IG1fdGltZXIoMCkKLSAgICAsIG1f
aXNSZXBlYXRpbmcoZmFsc2UpCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFz
ZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJG
aXJlZCh2b2lkKiBkYXRhKQotewotICAgIFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIgPSBzdGF0
aWNfY2FzdDxSdW5Mb29wOjpUaW1lckJhc2UqPihkYXRhKTsKLQotICAgIGlmICghdGltZXItPm1f
aXNSZXBlYXRpbmcpCi0gICAgICAgIHRpbWVyLT5tX3RpbWVyID0gMDsKLQotICAgIHRpbWVyLT5m
aXJlZCgpOwotCi0gICAgcmV0dXJuIHRpbWVyLT5tX2lzUmVwZWF0aW5nID8gRUNPUkVfQ0FMTEJB
Q0tfUkVORVcgOiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0g
ICAgaWYgKGlzQWN0aXZlKCkpCi0gICAgICAgIHN0b3AoKTsKLQotICAgIG1faXNSZXBlYXRpbmcg
PSByZXBlYXQ7Ci0gICAgQVNTRVJUKCFtX3RpbWVyKTsKLSAgICBtX3RpbWVyID0gZWNvcmVfdGlt
ZXJfYWRkKG5leHRGaXJlSW50ZXJ2YWwsIHJlaW50ZXJwcmV0X2Nhc3Q8RWNvcmVfVGFza19DYj4o
dGltZXJGaXJlZCksIHRoaXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgp
Ci17Ci0gICAgaWYgKG1fdGltZXIpIHsKLSAgICAgICAgZWNvcmVfdGltZXJfZGVsKG1fdGltZXIp
OwotICAgICAgICBtX3RpbWVyID0gMDsKLSAgICB9Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJC
YXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIChtX3RpbWVyKSA/IHRydWUgOiBm
YWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGI0NTZkNGY1ZmVhZWIw
Y2Y2NGVjZmViNzY5MDA0YmU1ZTc3NzhhYWIuLmRkOWFmMjhhNzk1ZjIxNDJlY2RmNzlmY2VjMGY1
ZGRiYjE5MjI1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJHcmFwaGljc0xh
eWVyVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgi
Ci0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlLmgiCiAj
aW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1h
dGlvbk1hdHJpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5oCmluZGV4IDAyNTA1ZDBiYTdkNjI4OWVlN2FmNjg2NzAyMjJlYmZhNmI0
NTk1YzguLjA3Y2Q1NjM0ZmNjN2Q5YTUxMTdlYWFiNzU2ZDllYzhlZTY5YWVmODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKQEAg
LTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIKICNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNp
bmNsdWRlICJUZXh0dXJlTWFwcGVyLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckJhY2tpbmdT
dG9yZS5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJGUFNDb3VudGVyLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDZlMzI5MmQ0ZTk0OGIyOGJkYjhjMDg1YzVhNTQ1YWE4NjBmNjFkMjIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTcxICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSA8Z2RrL2dkay5oPgotI2luY2x1ZGUgPGds
aWIuaD4KLQotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotUnVuTG9vcDo6UnVuTG9vcCgpCi17Ci0gICAgLy8gZ19tYWluX2NvbnRleHRfZGVmYXVs
dCgpIGRvZXNuJ3QgYWRkIGFuIGV4dHJhIHJlZmVyZW5jZS4KLSAgICBtX3J1bkxvb3BDb250ZXh0
ID0gaXNNYWluVGhyZWFkKCkgPyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgOiBhZG9wdEdSZWYo
Z19tYWluX2NvbnRleHRfbmV3KCkpOwotICAgIEFTU0VSVChtX3J1bkxvb3BDb250ZXh0KTsKLSAg
ICBHUmVmUHRyPEdNYWluTG9vcD4gaW5uZXJtb3N0TG9vcCA9IGFkb3B0R1JlZihnX21haW5fbG9v
cF9uZXcobV9ydW5Mb29wQ29udGV4dC5nZXQoKSwgRkFMU0UpKTsKLSAgICBBU1NFUlQoaW5uZXJt
b3N0TG9vcCk7Ci0gICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChpbm5lcm1vc3RMb29wKTsK
LX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIGZvciAoaW50IGkgPSBtX3J1bkxvb3BN
YWluTG9vcHMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgaWYgKCFnX21haW5f
bG9vcF9pc19ydW5uaW5nKG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSkpCi0gICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluTG9vcHNb
aV0uZ2V0KCkpOwotICAgIH0KLX0KLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIFJ1bkxv
b3AqIG1haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOwotICAgIEdNYWluTG9vcCogaW5u
ZXJtb3N0TG9vcCA9IG1haW5SdW5Mb29wLT5pbm5lcm1vc3RMb29wKCk7Ci0gICAgaWYgKCFnX21h
aW5fbG9vcF9pc19ydW5uaW5nKGlubmVybW9zdExvb3ApKSB7Ci0gICAgICAgIGdfbWFpbl9sb29w
X3J1bihpbm5lcm1vc3RMb29wKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIENy
ZWF0ZSBhbmQgcnVuIGEgbmVzdGVkIGxvb3AgaWYgdGhlIGlubmVybW9zdCBvbmUgd2FzIGFscmVh
ZHkgcnVubmluZy4KLSAgICBHTWFpbkxvb3AqIG5lc3RlZE1haW5Mb29wID0gZ19tYWluX2xvb3Bf
bmV3KDAsIEZBTFNFKTsKLSAgICBtYWluUnVuTG9vcC0+cHVzaE5lc3RlZE1haW5Mb29wKG5lc3Rl
ZE1haW5Mb29wKTsKLSAgICBnX21haW5fbG9vcF9ydW4obmVzdGVkTWFpbkxvb3ApOwotICAgIG1h
aW5SdW5Mb29wLT5wb3BOZXN0ZWRNYWluTG9vcCgpOwotfQotCi1HTWFpbkxvb3AqIFJ1bkxvb3A6
OmlubmVybW9zdExvb3AoKQotewotICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3Vs
ZCBhbHdheXMgYmUgdGhlcmUuCi0gICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0
eSgpKTsKLSAgICByZXR1cm4gbV9ydW5Mb29wTWFpbkxvb3BzWzBdLmdldCgpOwotfQotCi12b2lk
IFJ1bkxvb3A6OnB1c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxvb3AqIG5lc3RlZExvb3ApCi17Ci0g
ICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAg
ICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwotICAgIG1fcnVuTG9vcE1h
aW5Mb29wcy5hcHBlbmQoYWRvcHRHUmVmKG5lc3RlZExvb3ApKTsKLX0KLQotdm9pZCBSdW5Mb29w
Ojpwb3BOZXN0ZWRNYWluTG9vcCgpCi17Ci0gICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Ag
c2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5p
c0VtcHR5KCkpOwotICAgIG1fcnVuTG9vcE1haW5Mb29wcy5yZW1vdmVMYXN0KCk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0gICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hv
dWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0Vt
cHR5KCkpOwotICAgIEdSZWZQdHI8R01haW5Mb29wPiBsYXN0TWFpbkxvb3AgPSBtX3J1bkxvb3BN
YWluTG9vcHMubGFzdCgpOwotICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKGxhc3RNYWlu
TG9vcC5nZXQoKSkpCi0gICAgICAgIGdfbWFpbl9sb29wX3F1aXQobGFzdE1haW5Mb29wLmdldCgp
KTsKLX0KLQotZ2Jvb2xlYW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3ApCi17
Ci0gICAgcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsKLSAgICByZXR1cm4gRkFMU0U7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFk
b3B0R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKLSAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHko
c291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0RFRkFVTFQpOwotICAgIGdfc291cmNlX3NldF9jYWxs
YmFjayhzb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29w
OjpxdWV1ZVdvcmspLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgp
LCBtX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKLQotICAgIGdfbWFpbl9jb250ZXh0X3dha2V1cCht
X3J1bkxvb3BDb250ZXh0LmdldCgpKTsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJh
c2UoUnVuTG9vcCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgICwgbV90
aW1lclNvdXJjZSgwKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQot
ewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJT
b3VyY2UoKQotewotICAgIG1fdGltZXJTb3VyY2UgPSAwOwotfQotCi1nYm9vbGVhbiBSdW5Mb29w
OjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRpbWVy
KQotewotICAgIEdTb3VyY2UqIGN1cnJlbnRUaW1lclNvdXJjZSA9IHRpbWVyLT5tX3RpbWVyU291
cmNlLmdldCgpOwotICAgIGJvb2wgaXNSZXBlYXRpbmcgPSB0aW1lci0+aXNSZXBlYXRpbmcoKTsK
LSAgICAvLyBUaGlzIGNhbiBjaGFuZ2UgdGhlIHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5nIGEgbmV3
IHRpbWVyIHdpdGhpbiB0aGUgY2FsbGJhY2suCi0gICAgaWYgKCFpc1JlcGVhdGluZyAmJiBjdXJy
ZW50VGltZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCi0gICAgICAgIHRp
bWVyLT5jbGVhclRpbWVyU291cmNlKCk7Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsKLSAgICByZXR1
cm4gaXNSZXBlYXRpbmc7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3Vi
bGUgZmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBpZiAobV90aW1lclNvdXJjZSkK
LSAgICAgICAgc3RvcCgpOwotCi0gICAgbV90aW1lclNvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVv
dXRfc291cmNlX25ldyhzdGF0aWNfY2FzdDxndWludD4oZmlyZUludGVydmFsICogMTAwMCkpKTsK
LSAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayht
X3RpbWVyU291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9v
cDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJj
ZV9hdHRhY2gobV90aW1lclNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BDb250ZXh0
LmdldCgpKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIGlm
ICghbV90aW1lclNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ19zb3VyY2VfZGVzdHJv
eShtX3RpbWVyU291cmNlLmdldCgpKTsKLSAgICBjbGVhclRpbWVyU291cmNlKCk7Ci19Ci0KLWJv
b2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
dGltZXJTb3VyY2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggY2Y2OWMwNjQ5YzczZDI1NjhhMTFjNzdlODM4NjRjOTIyNzQ4MGIxYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUnVuTG9vcFdpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNzkgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJhcy5o
PgotCi11c2luZyBuYW1lc3BhY2Ugc3RkOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRp
YyBjb25zdCBVSU5UIFBlcmZvcm1Xb3JrTWVzc2FnZSA9IFdNX1VTRVIgKyAxOwotc3RhdGljIGNv
bnN0IExQV1NUUiBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNz
YWdlV2luZG93IjsKLQotTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYyhI
V05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsK
LSAgICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9IHN0YXRpY19jYXN0PFJ1bkxvb3AqPihnZXRXaW5k
b3dQb2ludGVyKGhXbmQsIDApKSkKLSAgICAgICAgcmV0dXJuIHJ1bkxvb3AtPnduZFByb2MoaFdu
ZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwotCi0gICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JF
QVRFKSB7Ci0gICAgICAgIExQQ1JFQVRFU1RSVUNUIGNyZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8TFBDUkVBVEVTVFJVQ1Q+KGxQYXJhbSk7Ci0KLSAgICAgICAgLy8gQXNzb2NpYXRlIHRo
ZSBSdW5Mb29wIHdpdGggdGhlIHdpbmRvdy4KLSAgICAgICAgc2V0V2luZG93UG9pbnRlcihoV25k
LCAwLCBjcmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFyYW1zKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0s
IGxQYXJhbSk7Ci19Ci0KLUxSRVNVTFQgUnVuTG9vcDo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQg
bWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsKLSAgICBzd2l0Y2ggKG1l
c3NhZ2UpIHsKLSAgICBjYXNlIFBlcmZvcm1Xb3JrTWVzc2FnZToKLSAgICAgICAgcGVyZm9ybVdv
cmsoKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2FzZSBXTV9USU1FUjoKLSAgICAgICAgUnVu
TG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHRoaXMsIHdQYXJhbSk7Ci0gICAgICAgIHJldHVy
biAwOwotICAgIH0KLQotICAgIHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwg
d1BhcmFtLCBsUGFyYW0pOwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgTVNHIG1l
c3NhZ2U7Ci0gICAgd2hpbGUgKEJPT0wgcmVzdWx0ID0gOjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAw
LCAwLCAwKSkgewotICAgICAgICBpZiAocmVzdWx0ID09IC0xKQotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbWVzc2FnZSk7Ci0gICAgICAgIDo6RGlzcGF0
Y2hNZXNzYWdlKCZtZXNzYWdlKTsKLSAgICB9Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17
Ci0gICAgOjpQb3N0UXVpdE1lc3NhZ2UoMCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6cmVnaXN0ZXJS
dW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCkKLXsKLSAgICAvLyBGSVhNRTogVGhpcyByZWFsbHkg
b25seSBuZWVkcyB0byBiZSBjYWxsZWQgb25jZS4KLQotICAgIFdORENMQVNTIHdpbmRvd0NsYXNz
ID0geyAwIH07Ci0gICAgd2luZG93Q2xhc3MubHBmblduZFByb2MgICAgID0gUnVuTG9vcDo6UnVu
TG9vcFduZFByb2M7Ci0gICAgd2luZG93Q2xhc3MuY2JXbmRFeHRyYSAgICAgID0gc2l6ZW9mKFJ1
bkxvb3AqKTsKLSAgICB3aW5kb3dDbGFzcy5scHN6Q2xhc3NOYW1lICAgPSBrUnVuTG9vcE1lc3Nh
Z2VXaW5kb3dDbGFzc05hbWU7Ci0KLSAgICByZXR1cm4gISE6OlJlZ2lzdGVyQ2xhc3MoJndpbmRv
d0NsYXNzKTsKLX0KLQotUnVuTG9vcDo6UnVuTG9vcCgpCi17Ci0gICAgcmVnaXN0ZXJSdW5Mb29w
TWVzc2FnZVdpbmRvd0NsYXNzKCk7Ci0KLSAgICBtX3J1bkxvb3BNZXNzYWdlV2luZG93ID0gOjpD
cmVhdGVXaW5kb3coa1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lLCAwLCAwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDV19VU0VERUZBVUxULCAwLCBD
V19VU0VERUZBVUxULCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBIV05EX01FU1NBR0UsIDAsIDAsIHRoaXMpOwotICAgIEFTU0VSVCg6OklzV2luZG93KG1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3cpKTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAg
IC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBoZXJlLgotfQotCi12b2lk
IFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgLy8gRklYTUU6IE5vIG5lZWQgdG8gd2FrZSB1cCB0
aGUgcnVuIGxvb3AgaWYgd2UndmUgYWxyZWFkeSBjYWxsZWQgZGlzcGF0Y2gKLSAgICAvLyBiZWZv
cmUgdGhlIHJ1biBsb29wIGhhcyBoYWQgdGhlIHRpbWUgdG8gcmVzcG9uZC4KLSAgICA6OlBvc3RN
ZXNzYWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRl
cnByZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAwKTsKLX0KLQotLy8gUnVuTG9vcDo6VGltZXIKLQot
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgdWlu
dDY0X3QgSUQpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3Rp
dmVUaW1lcnMuZmluZChJRCk7Ci0gICAgaWYgKGl0ID09IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJz
LmVuZCgpKSB7Ci0gICAgICAgIC8vIFRoZSB0aW1lciBtdXN0IGhhdmUgYmVlbiBzdG9wcGVkIGFm
dGVyIHRoZSBXTV9USU1FUiBtZXNzYWdlIHdhcyBwb3N0ZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUu
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnZh
bHVlOwotCi0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgewotICAgICAgICBydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwotICAgICAgICA6OktpbGxUaW1lcihydW5Mb29w
LT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBJRCk7Ci0gICAgfQotCi0gICAgdGltZXItPmZpcmVk
KCk7Ci19Ci0KLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVRpbWVySUQoKQotewotICAgIHN0YXRp
YyB1aW50NjRfdCB1bmlxdWVUaW1lcklEID0gMTsKLSAgICByZXR1cm4gdW5pcXVlVGltZXJJRCsr
OwotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQot
ICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX0lEKGdlbmVyYXRlVGltZXJJRCgpKQot
ICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+
VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0gICAgbV9p
c1JlcGVhdGluZyA9IHJlcGVhdDsKLSAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldCht
X0lELCB0aGlzKTsKLSAgICA6OlNldFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdp
bmRvdywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAsIDApOwotfQotCi12b2lkIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9y
dW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOwotICAgIGlmIChpdCA9PSBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgOjpLaWxsVGltZXIobV9ydW5Mb29w
LT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lEKTsKLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1l
ckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5jb250YWlucyhtX0lEKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRleCAz
OGYxMzQ3YTM0YmE0YzIwNDE0NjFmZWM0ZmU0NGE4ZWRmMGEyNjIyLi5lMTEyODc1YzFkN2EyMjlk
MDdhMDRhZmMwY2M5MDZiZWFhYTY3MWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9D
YXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJi
b24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtNzMsOSArNzMsOSBAQAogI2ltcG9ydCA8YXNz
ZXJ0Lmg+CiAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KLSNpbXBvcnQg
PFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
IAogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViTlNPYmplY3RFeHRyYXMu
aCIKQEAgLTI3Miw3ICsyNzIsNyBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5k
bGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogewogICAgIEpT
Qzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRU
b1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1h
aW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAg
V2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQppbmRleCA2NjE1NWRiYjhh
OWZjNjc3M2MxZmRiN2RlOTQ4MmQ3YmRkYTgwMTAyLi40YmVmZTY2OTY3ZjBhNTQ0MzczZjc1NTMx
YmM0M2MwMTM3YWRlZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dl
YkJhY2tGb3J3YXJkTGlzdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJh
Y2tGb3J3YXJkTGlzdC5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9IaXN0
b3J5SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2VDYWNoZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CkBAIC01MCw2ICs0OSw3IEBACiAjaW1wb3J0IDx3
dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTA1LDcgKzEwNSw3
IEBAIFdlYkJhY2tGb3J3YXJkTGlzdCAqa2l0KEJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRM
aXN0KQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlh
bGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5S
dW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KaW5kZXggODIy
YWRhYTJjNzU4YzhiZjc3MTE0YTlmMDc1NzVlYzk4YzBhNjQ1Yy4uODE0Y2ZhMDkzMTkxMGIxMTRi
ZjlmMDYxODVmNGYzYTUzOTBmODY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlz
dG9yeS9XZWJIaXN0b3J5SXRlbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dl
Ykhpc3RvcnlJdGVtLm1tCkBAIC00NywxMiArNDcsMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvSW1h
Z2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDYWNo
ZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVh
ZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0
IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgV0tOb3RpZnlIaXN0b3J5SXRlbUNoYW5nZWQo
SGlzdG9yeUl0ZW0qKQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdU
Rjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChz
ZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2FjaGUubW0KaW5kZXggMGNiZWQwMTIyZjg5
NjEyZDdjMDQ2YzdkNzk3MTBmMWZiN2Q5NTg4MC4uNzY1MTg3NjU3MmUxNzczZWM0MGQ4ODY5NzUz
NTU4NjBlNWM4MDZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNo
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCkBAIC0zMyw5ICsz
Myw5IEBACiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lt
cG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRo
cmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogQGltcGxlbWVudGF0aW9uIFdlYkNh
Y2hlCiAKQEAgLTQzLDcgKzQzLDcgQEAKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmco
KTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwot
ICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxv
b3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKCk7ICAgCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxl
bWVudERpY3Rpb25hcnkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkVsZW1lbnREaWN0
aW9uYXJ5Lm1tCmluZGV4IDE3ZjIyMDE5MDcwYzQwMTE2NTU3YmUwY2E2M2Y3YzRkOGQyZGVmZjYu
LjkwOTRhMzhiMjZkOWE4MmY2NTc2NTYxODE1ZjgxNDQxMmY5N2UwZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbQpAQCAtMzksMTIgKzM5LDEy
IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpdFRlc3RS
ZXN1bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW1hZ2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVu
TG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8
V2ViS2l0L0RPTUNvcmUuaD4KICNpbXBvcnQgPFdlYktpdC9ET01FeHRlbnNpb25zLmg+CiAjaW1w
b3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIApAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgdm9pZCBjYWNoZVZhbHVlRm9yS2V5KGNvbnN0
IHZvaWQgKmtleSwgY29uc3Qgdm9pZCAqdmFsdWUsIHZvaWQgKnNlbGYpCiB7CiAgICAgSlNDOjpp
bml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJv
Y2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1
bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJD
b3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCmluZGV4IDdmODczYWIxZWRjNmNlMjk2OGIzNzcyZmQ1
ZTkwYjQxYzRlMDhiODUuLjFlMzk5MWIwYzllZTc3NDNkZTE1OWY1NTkwMjg3NDYyZTkzMjM2YjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCkBAIC0zOSwxMSAr
MzksMTEgQEAKICNpbXBvcnQgPFdlYkNvcmUvSWNvbkRhdGFiYXNlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ltYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbXBvcnQgPFdlYkNv
cmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29w
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05MCw3ICs5MCw3IEBAIHN0YXRp
YyBXZWJJY29uRGF0YWJhc2VDbGllbnQqIGRlZmF1bHRDbGllbnQoKQogewogICAgIEpTQzo6aW5p
dGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nl
c3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5M
b29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiB9CiAKICsgKFdl
Ykljb25EYXRhYmFzZSAqKXNoYXJlZEljb25EYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5W
aWV3Lm1tCmluZGV4IDdlMDViMzQ4YTFjZDRmMDBkNTc3NTYyMWQ5ODAwZmYxM2IwMWM2OTMuLjE4
MWFiNzA1OTEzM2NkNTNmNjIyMTJiYmUxYzk1ZGI2NzRhNWVmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcubW0KQEAgLTQ2LDEyICs0NiwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5k
ZXJFbWJlZGRlZE9iamVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvcnVudGltZV9yb290Lmg+CiAjaW1wb3J0IDxydW50
aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAj
aW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFz
Lmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC03Myw3ICs3Myw3IEBAIGV4dGVybiAiQyIgewog
ewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1h
aW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5p
dGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICBXS1Nl
bmRVc2VyQ2hhbmdlTm90aWZpY2F0aW9ucygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IGFiY2M4MmIy
NGJhMmViMmEzN2UyMTZjZmZlMTYxMzEwNzkyNDA2OGUuLjE0Nzc1YjUyY2E4OGFlNmUxYjFhM2Fm
YTM2MzAwMTU2OWUxNjI2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTU1LDEzICs1NSwxMyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVy
Vmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJXaWRnZXQuaD4KLSNpbXBvcnQgPFdlYkNv
cmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTVByaXZh
dGUuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8
d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVmaW5lIExv
Z2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24gICAgQCJXZWJMb2dpbldpbmRv
d0RpZFN3aXRjaEZyb21Vc2VyTm90aWZpY2F0aW9uIgpAQCAtNzUsNyArNzUsNyBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAg
ICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJl
YWQoc2VsZik7CiAgICAgV0tTZW5kVXNlckNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCmluZGV4
IDViMDdiOTgwNTkyZGUyM2MwYWYyN2M5MGJkMGQ5NzQ0ZDJlMjI5NzQuLjI0MGM0OThjZDBhZTlk
MWE5M2UyZDU3M2UzY2YzZjhmMDAwZGQ4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbQpAQCAtMjksNyArMjksNiBAQAogI2ltcG9y
dCA8V2ViS2l0L1dlYkJhc2VQbHVnaW5QYWNrYWdlLmg+CiAKICNpbXBvcnQgPGFsZ29yaXRobT4K
LSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2Jq
Q0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdE5TU3RyaW5nRXh0cmFzLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLmg+CkBAIC0zOCw2ICszNyw3IEBA
CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4K
ICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3Au
aD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IApAQCAtNjgsNyArNjgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHsKICAgICBKU0M6
OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Q
cm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWlu
UnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdl
YkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggZGRkMzcw
MjYxZmZiNTc0MzU2YTliOTU3MThlYWFlMDNjOWYxNWVhZS4uNmQyMGJkNTZhOTYwYjllOTlmNDgz
M2UyYzUyYjU2OTZiYTcxZWFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTY3LDcgKzY3LDYgQEAKICNpbXBvcnQgPFdl
YkNvcmUvUGFnZS5oPiAKICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxl
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qcm94eVNlcnZlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9S
dW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcu
aD4gCkBAIC04Miw2ICs4MSw3IEBACiAjaW1wb3J0IDxydW50aW1lL0pTTG9jay5oPgogI2ltcG9y
dCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0
IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVmaW5l
IExvZ2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24gICAgQCJXZWJMb2dpbldp
bmRvd0RpZFN3aXRjaEZyb21Vc2VyTm90aWZpY2F0aW9uIgpAQCAtMTk0LDcgKzE5NCw3IEBAIHR5
cGVkZWYgc3RydWN0IHsKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBX
VEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNv
cmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRp
YWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQo
c2VsZik7CiAgICAgV0tTZW5kVXNlckNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRl
eCAzYTU3YzQwODYzYmQ0NTE5ZTE2OWI4OTVmNTg1OGJmY2EyMzhkYjRiLi42M2Y1NzNkN2FmOTI4
ZmJjYmJhMzg3OTFmM2NlZDE0YTY2YzhlY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02MSw3ICs2MSw2IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFn
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KLSNpbXBvcnQg
PFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0
eVNldC5oPgpAQCAtNzEsNiArNzAsNyBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDcsNyArMTA3LDcgQEAg
c3RhdGljIFdlYlZpZXdJbnNlcnRBY3Rpb24ga2l0KEVkaXRvckluc2VydEFjdGlvbiBjb3JlQWN0
aW9uKQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlh
bGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5S
dW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbQppbmRleCBkZDUyNjM1OWQzYTIxZDg1ZjdmYTViMWE1ZDA3ZTY4ZjBj
OTBkNWVhLi42ZTc4YTFjYWE5NTU1NWRiNzVmNDVmNjE0Y2U1MjM1Zjk1Njc5OGNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbQpAQCAtMTE1LDcgKzExNSw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNl
SGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hh
cmVkQnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CkBAIC0x
MjcsNiArMTI2LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgog
I2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKQEAgLTE5OTksNyArMTk5OSw3IEBA
IFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5n
KCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsK
LSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5M
b29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25N
YWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkFyY2hpdmUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUu
bW0KaW5kZXggOGQ5YTI3ZTkyYzRiMDBkZmEwYmFmNjZlZTcwYmE3NGZjMWNkOGY2MS4uYzNlYzQ2
YmIwNDU5NWRkZmFmZWY2Y2VjMWJkMTc2Yzk3NGRiM2RkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViQXJjaGl2ZS5tbQpAQCAtMzYsMTAgKzM2LDEwIEBACiAjaW1wb3J0IDxKYXZhU2Ny
aXB0Q29yZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FyY2hpdmVS
ZXNvdXJjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIApAQCAtNjksNyArNjksNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJTdWJmcmFt
ZUFyY2hpdmVzS2V5ID0gQCJXZWJTdWJmcmFtZUFyY2hpdmVzIjsKIHsKICAgICBKU0M6OmluaXRp
YWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNz
TWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9v
cCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVP
YmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRGF0YVNvdXJjZS5tbQppbmRleCAzMjliZThkMWE2YzRiOGRiOGI4MGMxYmMzZDg2
MTU2NzM3NzEwNmVjLi4yNGU4OWJkOGYyYTMxMjZjYTU1NjlmMDQ1ZGE0ZGQxYTgwMWI3ODlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCkBAIC01NCw3ICs1
NCw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVk
QnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1dlYkNvcmVVUkxSZXNwb25zZS5oPgpAQCAtNjUsNiArNjQsNyBAQAogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5
cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wK
ICAgICBpZiAoc2VsZiA9PSBbV2ViRGF0YVNvdXJjZSBjbGFzc10pIHsKICAgICAgICAgSlNDOjpp
bml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRU
b1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpOworICAgICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKICAgICAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICB9
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCBlYjViMTE4
MWVjYmQ4MmI0ZWVjMjBiZDNjNGQ1OGQzMTRlZjYwZjg1Li44OTM4ODVmZmU4M2I3MDM3YzMyZWU1
ZjM4ZmQwMzJhMjQwMjAzNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KQEAgLTExMSw3ICsxMTEsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlcldpZGdldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNv
dXJjZUJ1ZmZlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRC
dWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2ltcGxlRm9udERhdGEuaD4KQEAgLTEzMSw2ICsx
MzAsNyBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0
IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+Cisj
aW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CkBAIC01NjQsNyArNTY0LDcgQEAg
c3RhdGljIE5TQ2VsbFN0YXRlVmFsdWUga2l0KFRyaVN0YXRlIHN0YXRlKQogewogICAgIEpTQzo6
aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1By
b2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5S
dW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2Vi
Q29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICAKICAgICBpZiAoIW9sZFNl
dEN1cnNvckZvck1vdXNlTG9jYXRpb25JTVApIHsKQEAgLTIyNzMsNyArMjI3Myw3IEBAIHN0YXRp
YyBib29sIG1vdXNlRXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlczpbW3NlbGYgY2xhc3NdIF9pbnNl
cnRhYmxlUGFzdGVib2FyZFR5cGVzXV07CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7
CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAg
ICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29w
Ojppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWlu
VGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQppbmRleCA1YzBiZWY1Y2E1NTlkZDVmMWNmMzlhYjBlMzdlOTA2MDNlYTZhODdkLi5h
YjVjZGM4MmNlMGVjOTZlYWU4YmZkMmIxNzU0YjQzMzg2MmEzZTM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTQzLDEwICs0MywxMCBAQAogI2lt
cG9ydCA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5k
bGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKQEAgLTMwNiw3ICszMDYsNyBAQCBwdWJsaWM6CiB7CiAgICAgSlNDOjpp
bml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJv
Y2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1
bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAogICAgIE5T
RGljdGlvbmFyeSAqZGljdCA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5k
S2V5czoKICAgICAgICAgQCJUaW1lcyIsICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRTdGFu
ZGFyZEZvbnRQcmVmZXJlbmNlS2V5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJSZXNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3Vy
Y2UubW0KaW5kZXggYTRlYzM1MzE1YWZkNGJmNDVkYzJjNWRlNjQ3MjBhMzE2MDdjOTBjZC4uYWMy
ZTBhNjVlZTJlOGUxMGNjNzQwOTkyNWEzODViY2UxM2FlMTYwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCkBAIC0zOCwxMyArMzgsMTMgQEAKICNpbXBvcnQgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1RleHRFbmNvZGluZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVj
ay5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9XZWJDb3JlVVJMUmVzcG9uc2UuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+Cisj
aW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAt
NjgsNyArNjgsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJSZXNvdXJjZVJlc3BvbnNl
S2V5ID0gICAgICAgICAgQCJXZWJSZXNvdXJjZVJlc3BvbnNlIgogewogICAgIEpTQzo6aW5pdGlh
bGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NN
YWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9i
akNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJUZXh0SXRlcmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbQppbmRleCA5YjFiZDhmZWI1NTNmZDhkMTEwYWRlMmNm
NjM2NWRhNDI0MTA1NzZjLi5lODkxNGQ5NzJkNjkwMzI0MjlkZDQ1MWVjNDQ4MjVlNTczOTY0ZGQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbQpAQCAt
MjgsMTIgKzI4LDEyIEBACiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRP
TVJhbmdlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKLSNpbXBvcnQg
PHd0Zi9WZWN0b3IuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9UZXh0SXRlcmF0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMu
aD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvVmVj
dG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
QEAgLTUwLDcgKzUwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB7CiAgICAgSlNDOjpp
bml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJv
Y2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1
bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJD
b3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggMjcyMTI0YzY4ZmIxNzgxNDlhNzRlZTU1ODU4MDE4Y2Q4ZWU2
YmE1MC4uNDVlNjQ3MGM3MGE2NWYwOWIyMWFhODJjM2EzYzRjY2JiZjM4MjIxNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTY1LDcgKzE2NSw2IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlTG9hZFNj
aGVkdWxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbXBvcnQg
PFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25D
aGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgpAQCAtMjAwLDYgKzE5OSw3IEBACiAjaW1w
b3J0IDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVkTGVh
a0NvdW50ZXIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29w
Lmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKICNpZiBFTkFCTEUoREFTSEJPQVJE
X1NVUFBPUlQpCkBAIC0zMjEyLDcgKzMyMTIsNyBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gdG9T
dHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMpCiAgICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UoKTsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRp
YWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxv
b3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWlu
UnVuTG9vcCgpOwogCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxsVGVybWlu
YXRlKSBuYW1lOk5TQXBwbGljYXRpb25XaWxsVGVybWluYXRlTm90aWZpY2F0aW9uIG9iamVjdDpO
U0FwcF07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfY2FjaGVNb2RlbENoYW5nZWROb3RpZmljYXRp
b246KSBuYW1lOldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNh
dGlvbiBvYmplY3Q6bmlsXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlld0RhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1t
CmluZGV4IDYyZGRhMGI0OGFlNTdlZjQ2ZmQxNGRlMGY3ZTdhMjAxYTRmODhmNjUuLmMwNTcxNzM5
MmE3ZmQxMjUwODhiNWJjNzM4MThlOTRhZWFlMDQwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3RGF0YS5tbQpAQCAtMzQsMTAgKzM0LDEwIEBACiAjaW1wb3J0IDxXZWJDb3Jl
L0FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
T2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2ltcG9ydCA8
V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxvYmpjL29iamMtYXV0by5oPgogI2ltcG9ydCA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5o
PgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogQk9PTCBhcHBsaWNhdGlvbklzVGVybWluYXRp
bmcgPSBOTzsKIGludCBwbHVnaW5EYXRhYmFzZUNsaWVudENvdW50ID0gMDsKQEAgLTc0LDcgKzc0
LDcgQEAgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OldlYlZpZXdMYXllckZsdXNoU2NoZWR1
bGVyKExheWVyRmx1c2hDb250cm9sbGVyKiBmbHUKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJl
YWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVh
ZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAg
IFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxp
emVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKaW5kZXggMjI5N2I5NGVhNzZjYTE2NmQ4MTg1
NDZkYjEwNTFjNzNiMjg4MWQzYy4uYTVjMDg0MjEwZGQ5YmVmMzA2MWQzNTU0MzZkMDdkZWViN2Vk
NzhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNl
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNl
UHJvY2Vzcy5jcHAKQEAgLTMxLDggKzMxLDYgQEAKIAogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9D
RVNTKQogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IERhdGFiYXNlUHJvY2VzcyYgRGF0YWJhc2VQcm9jZXNzOjpzaGFyZWQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCAxZTk0MWZiYWNmOTBjOTRmMzdhZDc1ZWU0MmE2MWY2
YWYzYzNlMmM4Li5hNmZlNzNhYjMyMmI4ZjU0YTEzZjQxMDZmM2UwNTdlOGFhNmNmM2IxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1
ZGUgIkRhdGFiYXNlUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZC5oIgogI2luY2x1ZGUgIkRhdGFi
YXNlUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKERBVEFCQVNF
X1BST0NFU1MpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAwM2FmMWM0ZmYy
MThmOWRhZmZlNmIyZTI1ZmY1OWIxNDNhYjBkMjE2Li5lMDA3ZmQ2Mzc1YzY0MjkzN2E3ODg0Y2Zk
NWI5ZjFmMzM1MTYzZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zOSw3
ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDQ0
NDllMTczNWM5MGQ0MWI3MTI3YjBiOTY3OWJlYzM5OTY4NTkyZjEuLmEzYTYwYmRlOWVhOWVjYzc0
YWVhZDFkMDU0MGY3YzI5Y2IzMmVjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRlICJX
ZWJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3Au
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogI2lmIFVTRShTRUNVUklUWV9GUkFNRVdPUkspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBkNmYwZTBkZDBhZmJjN2ZmYjJlNjAx
ODdjYWM0ZTA2ZTgxZmE4N2IxLi4xYTgyYjBjNTEyNWE5N2ZiMWE4YjQ5OGI4ZDdhNWE2MGQ1YTgw
ZmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKQEAgLTM3LDcgKzM3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2VydGlm
aWNhdGVJbmZvOwotY2xhc3MgUnVuTG9vcDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oCmluZGV4IDhjYTIyN2EyMWZmNzkwZTlmMDQzYTk3NGQyYzcyNTJlYjFkMjdkMzQuLjMyN2Fl
MzRjYzdiNGQyYTU0YmExZTFhNTczYjRiYTU0YjBiYmYxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC0zNSw4
ICszNSw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUNsaWVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IF9DRkNhY2hlZFVSTFJlc3BvbnNlKiBDRkNhY2hlZFVSTFJlc3BvbnNl
UmVmOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlz
a0NhY2hlTW9uaXRvci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tD
YWNoZU1vbml0b3IuaAppbmRleCBjMTM3OTk1ZTViOGU1MGZlOWQ2MGU0YWQxZmQ0NzgwMWJlZDYx
M2FkLi40OWQwYzBmNmU2MGMzN2YxMDUwNjdjZjhmZTRiNDYyNTJlMDljMWZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgK
QEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRkNh
Y2hlZFVSTFJlc3BvbnNlKiBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXgu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01h
aW5Vbml4LmNwcAppbmRleCBkMDgwYjc4NDBhMzI2M2IxNGM5MThjYmI3YjFmYzkyZTUzYzc1Y2Vm
Li4wYjgzYTRhNDk3MmM0ZmEyNDdlOTNiYTZiNDMwYTZhNTNmOTAxMTM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nl
c3NNYWluVW5peC5jcHAKQEAgLTMyLDEyICszMiwxMiBAQAogI2luY2x1ZGUgIlByb3h5UmVzb2x2
ZXJTb3VwLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV2ViS2l0MkluaXRpYWxp
emUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJLaXQyL05l
dHdvcmtQcm9jZXNzLmg+CiAjaW5jbHVkZSA8ZXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0lu
aXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL2dv
YmplY3QvR1JlZlB0ci5oPgogCiAjaWYgUExBVEZPUk0oRUZMKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggZTI5MTQxMGI1MGRlMmEwNGZm
YjI1MDk4NjRiMGViMTU2YmFmNDZhZC4uNTJmMmJmMjhmYTBiYjEzODRiNGMwYjkxYjQyYTY0MGM4
YTIwOTdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rp
b24uY3BwCkBAIC0yNiwxNCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKIGNsYXNzIENvbm5lY3Rpb246OlN5bmNNZXNz
YWdlU3RhdGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29ubmVjdGlvbjo6U3luY01l
c3NhZ2VTdGF0ZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rp
b24uaAppbmRleCBiYTgwMDQxMGU1ZDExZjg1OTIzNzJmM2IwMDExYzdkYjg1MDliNzA0Li5lYTYz
YTNmZmEyZWNmZTZiODNhMjYyMTJhMWJhMWJhM2MwNDgzODc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaApAQCAtNTEsNyArNTEsNyBAQAogI2luY2x1
ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIKICNlbmRpZgogCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7CituYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFJ1bkxvb3A7CiB9CiAKQEAgLTEyNyw4ICsx
MjcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaWRlbnRpZmllcklzTnVsbChJZGVudGlm
aWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuICFpZGVudGlmaWVyOyB9CiAjZW5kaWYKIAotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oSWRlbnRp
ZmllciwgQ2xpZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlQ2xpZW50Q29ubmVjdGlvbihJZGVudGlm
aWVyLCBDbGllbnQqLCBXZWJDb3JlOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKElkZW50aWZp
ZXIsIENsaWVudCosIFdURjo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlQ2xpZW50Q29ubmVjdGlvbihJZGVudGlmaWVyLCBD
bGllbnQqLCBXVEY6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwogICAgIH5Db25uZWN0aW9uKCk7
CiAKICAgICBDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CkBAIC0x
NzcsNyArMTc3LDcgQEAgcHVibGljOgogICAgIGJvb2wgaW5TZW5kU3luYygpIGNvbnN0IHsgcmV0
dXJuIG1faW5TZW5kU3luY0NvdW50OyB9CiAKIHByaXZhdGU6Ci0gICAgQ29ubmVjdGlvbihJZGVu
dGlmaWVyLCBib29sIGlzU2VydmVyLCBDbGllbnQqLCBXZWJDb3JlOjpSdW5Mb29wKiBjbGllbnRS
dW5Mb29wKTsKKyAgICBDb25uZWN0aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENsaWVu
dCosIFdURjo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemUoSWRlbnRpZmllcik7CiAgICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGUoKTsKICAgICAK
QEAgLTIyMyw3ICsyMjMsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lzQ29ubmVjdGVkOwog
ICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fY29ubmVjdGlvblF1ZXVlOwotICAgIFdlYkNvcmU6OlJ1
bkxvb3AqIG1fY2xpZW50UnVuTG9vcDsKKyAgICBXVEY6OlJ1bkxvb3AqIG1fY2xpZW50UnVuTG9v
cDsKIAogICAgIEhhc2hNYXA8U3RyaW5nUmVmZXJlbmNlLCBzdGQ6OnBhaXI8UmVmUHRyPFdvcmtR
dWV1ZT4sIFJlZlB0cjxXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXI+Pj4gbV93b3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXJzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwCmluZGV4IGZmNTY3NDlhMDcxOTlmMjYwYjA0N2ZjNGJi
NWY5YzViODgwMGFmYTQuLmRkNjc4Yzg1YTFlOWMzM2I5MzViZTg4NTVhNDExYjkwM2Y4NmVmYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rp
b25NYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5l
Y3Rpb25NYWMuY3BwCkBAIC0zMCwxNiArMzAsMTQgQEAKICNpbmNsdWRlICJJbXBvcnRhbmNlQXNz
ZXJ0aW9uLmgiCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNpbmNsdWRlICJNYWNoVXRpbGl0aWVz
LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8bWFjaC9tYWNoX2Vy
cm9yLmg+CiAjaW5jbHVkZSA8bWFjaC92bV9tYXAuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogCiAjaWYgSEFWRShYUEMpCiAjaW5jbHVkZSA8eHBjL3hwYy5oPgogI2VuZGlmCiAKLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKIHN0YXRpYyBjb25z
dCBzaXplX3QgaW5saW5lTWVzc2FnZU1heFNpemUgPSA0MDk2OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdp
blByb2Nlc3NNYWluLm1tIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50
L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCmluZGV4IGE4NzFmMTIxYTk3
MzQ5ZDdmZjg1ODhkZGJjYTQ0NzdkNTE2ZDJkNGMuLmVhYmFiZGQ5MzljMTZkNDMyNDhiZTk3MmM0
YzNhNjM4ZGJjNTkwMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
RW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3Mv
UGx1Z2luUHJvY2Vzc01haW4ubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgIk5ldHNjYXBl
UGx1Z2luTW9kdWxlLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCiAjaW1wb3J0ICJXS0Jh
c2UuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3Au
aD4KIAogI2lmIFVTRShBUFBLSVQpCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKFdlYk5TQXBw
bGljYXRpb25EZXRhaWxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tIGIv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1Bs
dWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IDEyMWQ5NDk5MDY4NDQ0MmQ2MDk2ZjVkODlj
MTRlN2NmYTU3NzhlZDYuLjBmY2U0N2MwMGRiNWNlYTZjNDYyNjdhYjcyZWIwMWNmNjc5NjhkYjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVu
dHJ5UG9pbnQubW0KQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIK
ICNpbXBvcnQgIldLQmFzZS5oIgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKLSNp
bXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKQEAgLTYxLDcgKzYxLDYgQEAgcHVibGljOgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogCiBleHRlcm4gIkMiIFdLX0VYUE9SVCB2b2lkIFBsdWdpblNlcnZpY2VJbml0aWFs
aXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXpl
ck1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Db250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmgKaW5kZXggY2U0ZWYxNjBiNjUwNWZhZDgzNmI3Yzc5YzAxNzU3NDlk
NDFjNGY5My4uZTg3YzdhN2E0ZGUwZjI1Zjk2NjE3N2NjNDEyN2QxNGMwZWQxZWY1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5oCkBAIC0zNCw5ICszNCw5IEBACiAjaW5jbHVkZSAiUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsK
ICAgICBjbGFzcyBEYXRhUmVmZXJlbmNlOwpAQCAtMTgzLDE0ICsxODMsMTQgQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fZGlydHlSZWN0OwogCiAgICAgLy8gVGhlIHBhaW50IHRp
bWVyLCB1c2VkIGZvciBjb2FsZXNjaW5nIHBhaW50aW5nLgotICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wYWludFRpbWVyOworICAgIFJ1bkxvb3A6
OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wYWludFRpbWVyOwogICAgIAogICAgIC8v
IEEgY291bnRlciB1c2VkIHRvIHByZXZlbnQgdGhlIHBsdWctaW4gZnJvbSBiZWluZyBkZXN0cm95
ZWQuCiAgICAgdW5zaWduZWQgbV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RDb3VudDsKIAogICAg
IC8vIEEgdGltZXIgdGhhdCB3ZSB1c2UgdG8gcHJldmVudCBkZXN0cnVjdGlvbiBvZiB0aGUgcGx1
Zy1pbiB3aGlsZSBwbHVnLWluCiAgICAgLy8gY29kZSBpcyBvbiB0aGUgc3RhY2suCi0gICAgV2Vi
Q29yZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BsdWdpbkRlc3Ry
b3lUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1
Z2luRGVzdHJveVRpbWVyOwogCiAgICAgLy8gV2hldGhlciB3ZSdyZSB3YWl0aW5nIGZvciB0aGUg
cGx1Zy1pbiBwcm94eSBpbiB0aGUgd2ViIHByb2Nlc3MgdG8gZHJhdyB0aGUgY29udGVudHMgb2Yg
aXRzCiAgICAgLy8gYmFja2luZyBzdG9yZSBpbnRvIHRoZSB3ZWIgcHJvY2VzcyBiYWNraW5nIHN0
b3JlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAK
aW5kZXggMzZkMWZjNGExNjVlNTViMTA2ZjZhM2IzNjU3NDg1N2MyY2Y3MWNmYy4uOGZlYjlmZmU3
MmFjNjczOGVjNWQwOGY1MmZkZjMxYzIxYjY0YTc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeVByZXNz
dXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYg
UExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPGNydF9leHRlcm5zLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IDdhMjBlZDA1YjJhYTlkYzVlYmVk
Mjg1MmFiNjE2NWI5MzVlZGIyZmYuLjE2ZjMyMzg4NWE1NzM0OTUwMGExMzcyODY5MTc3NjZhOTBk
MWVlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5o
CkBAIC0xMDksNyArMTA5LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fc3VwcG9ydHNB
c3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbjsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyPFBsdWdpblByb2Nlc3M+IG1fbWluaW11bUxpZmV0aW1lVGltZXI7CisgICAgUnVuTG9v
cDo6VGltZXI8UGx1Z2luUHJvY2Vzcz4gbV9taW5pbXVtTGlmZXRpbWVUaW1lcjsKIAogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oTUFDKQogICAgIC8vIFRoZSBN
YWNoIHBvcnQgdXNlZCBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4
IGM3MWMxZDQ4MmRjZDRmMjZlY2E1OTJkMTllN2I3YzIzNjhjNzU4NTQuLjNhNGQxNWFkNTlmZDI1
ZDIxZDI1OTUwYzU1OWE4ZjY2M2MxMTNjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zOSw4ICszOSw4IEBA
CiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUg
IlBsdWdpblByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Q
cm9jZXNzTWFpblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy91bml4L1Bs
dWdpblByb2Nlc3NNYWluVW5peC5jcHAKaW5kZXggMGE1NjQ2MWM5OGMxZGNlMDg5ZjYzZDFkOTQz
MjU0YjFlMjZjZWI2Ni4uMDY3ZDVkMGY1ZjMxNGNiMDI5ZjE2MmY2NWQ0NDVmOTU4MjJmZjJhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nl
c3NNYWluVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy91bml4L1Bs
dWdpblByb2Nlc3NNYWluVW5peC5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJOZXRz
Y2FwZVBsdWdpbi5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJL
aXQySW5pdGlhbGl6ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPGd0ay9ndGsuaD4K
ICNpZiBQTEFURk9STShYMTEpICYmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19YMTEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCmluZGV4IGIyMjMzYTM1YTFhMTM5NjhhMDAwNGEy
MGMxMTg4NzI0YmFiMDgxMjUuLjhlMGRiOGI0M2UwYjk0NzZhZGU3ZmUzM2ZjZGZiODY0YzMzOWU1
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCkBAIC0yOSw4ICsyOSw2
IEBACiAjaW5jbHVkZSAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgPHVuaXN0ZC5oPgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIENoaWxkUHJvY2Vzczo6Q2hpbGRQcm9jZXNzKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
aGlsZFByb2Nlc3MuaAppbmRleCBiYTcyMjYyZmExZmM4ZWZmZTc5NjQ3MDAyOTAwZGRmM2EwMzRl
YmE5Li4zNjRmODNlOWZjMDIyNDkzYmNmYTgxZDBjMDU3NTA1NWQ5ZmIxMTk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VTZW5kZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTE0LDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gYWZ0ZXIgYSBnaXZlbiBwZXJpb2Qgb2YgdGltZS4KICAgICB1bnNpZ25lZCBtX3Rlcm1pbmF0
aW9uQ291bnRlcjsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPENoaWxkUHJvY2Vzcz4g
bV90ZXJtaW5hdGlvblRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPENoaWxkUHJvY2Vzcz4gbV90
ZXJtaW5hdGlvblRpbWVyOwogCiAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKICAgICBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2
ZXJNYXA7CkBAIC0xMjQsNyArMTI0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFByb2Nlc3NT
dXBwcmVzc2lvbkVuYWJsZWRJbnRlcm5hbChib29sKTsKICAgICBzaXplX3QgbV9hY3RpdmVUYXNr
Q291bnQ7CiAgICAgYm9vbCBtX3Nob3VsZFN1c3BlbmQ7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXI8Q2hpbGRQcm9jZXNzPiBtX3N1c3BlbnNpb25IeXN0ZXJlc2lzVGltZXI7CisgICAgUnVu
TG9vcDo6VGltZXI8Q2hpbGRQcm9jZXNzPiBtX3N1c3BlbnNpb25IeXN0ZXJlc2lzVGltZXI7CiAg
ICAgUmV0YWluUHRyPGlkPiBtX3Byb2Nlc3NTdXBwcmVzc2lvbkFzc2VydGlvbjsKICNlbmRpZgog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU5
YmFmOTE2NGJkODk5OGZkZmRiZjQ5ZjY1OWM3NTU3NTc2NDU5MDQuLjExZTA4NjgyZWE1ZjBjMTIy
MTcxYjBlZDlhYjU2MzZiM2M2NTQ2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxk
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMjYsOSArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0Vu
dHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21h
Yy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaAppbmRleCBjNGM4NTgyOTRm
ZjVlMjgxYjg3ZjIzMDMwMTg4YzViNTU5NTdmZmM3Li45MWUyOTc2ODUwZjRiODM1YzMyNDUxZjMx
MzQ3NmE3YzVkNDY1MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2Fj
eVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oCkBAIC0yOSw5ICsyOSw5IEBACiAjaW1w
b3J0ICJDaGlsZFByb2Nlc3MuaCIKICNpbXBvcnQgIkNvbW1hbmRMaW5lLmgiCiAjaW1wb3J0ICJX
ZWJLaXQySW5pdGlhbGl6ZS5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0
IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHN5c2V4aXRzLmg+CisjaW1wb3J0
IDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3Mv
Q2hpbGRQcm9jZXNzRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQubW0K
aW5kZXggOTZhNzgxZTc1MzUzNjlmNTdiZDQ1NmVhZDE3NTY1MWIwNDFkMDJjOS4uNWY4ZmY0ZTAz
MWFjMjlmZWE1Yjc2ZWM2MWI5ZDVkYjc1MmRlOWMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9j
ZXNzRW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0
aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tCkBAIC0z
NCw4ICszNCw2IEBACiAKICNkZWZpbmUgU0hPV19DUkFTSF9SRVBPUlRFUiAxCiAKLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogQ2hpbGRQcm9jZXNzTWFp
bkRlbGVnYXRlOjp+Q2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94eS5jcHAKaW5kZXggZTc0Y2EyYzZhZWI3ZmU4
ZDcwN2FhYWU3MTMyNGViNGM5ZWQxZDRlZS4uYTM0ZjE5ZGM1ODQ0NmZkZjFiZTJmM2I2OTNmZjQw
NTY2NzlkMDY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBP
YmplY3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmpl
Y3RQcm94eS5jcHAKQEAgLTM1LDEwICszNSw4IEBACiAjaW5jbHVkZSAiTlBSZW1vdGVPYmplY3RN
YXAuaCIKICNpbmNsdWRlICJOUFJ1bnRpbWVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJOUFZhcmlh
bnREYXRhLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViS2l0MkluaXRpYWxpemUuY3BwCmluZGV4IGM4ODgyZDhhZTFmNDliYjY5MDVhOGUwMTM0Nzgy
YmVmZmRiMDc1ZDAuLmZlOWY1YWU3YmJmM2MwYThiMDU0YmEzMGViYjMxZTY0OWZlNjBjMjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcApAQCAtMjgsOSAr
MjgsOSBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2lu
Zy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5p
dGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJXZWJTeXN0
ZW1JbnRlcmZhY2UuaCIKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBJbml0aWFsaXplV2ViS2l0Migp
CiAKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVN
YWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAKICNpZiAhTE9HX0RJ
U0FCTEVECiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRG
YXZpY29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RmF2aWNvbkRhdGFiYXNlLmNwcAppbmRleCBiNTMxNTVmOWQ1Yjk4N2I1ODYyNjQwZjhjNWIz
ZjExOGY1NzdjNTAxLi42N2M4ZmQ0MzA0OTJlMjFkMThhOGQ3YTEzNzZkNTI2MzNhMzBjMTliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGYXZpY29u
RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZhdmljb25EYXRhYmFzZS5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0ltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZWZQdHJDYWlyby5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUg
PGdsaWIvZ2kxOG4tbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCA4ZTQ3ODAxNjkz
MjA5ZmJmMTdmMzUzZGU0MmQxMzNhZjQ2ZmZmMDU0Li42ODY0YjY0OWJmMDExOWMzMGY3MDUwOTFm
NDA3MmM5MjI2MDZkYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCkBAIC0yNywxMCArMjcsMTAgQEAKICNkZWZp
bmUgRmluZEluZGljYXRvcldpbmRvd19oCiAKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFj
ZS5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIEBjbGFzcyBXS0ZpbmRJbmRpY2F0b3JXaW5kb3dB
bmltYXRpb247CiBAY2xhc3MgV0tWaWV3OwpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAg
IFdLV2luZG93Qm91bmNlQW5pbWF0aW9uQ29udGV4dFJlZiBtX2JvdW5jZUFuaW1hdGlvbkNvbnRl
eHQ7CiAgICAgUmV0YWluUHRyPFdLRmluZEluZGljYXRvcldpbmRvd0FuaW1hdGlvbj4gbV9ib3Vu
Y2VBbmltYXRpb247CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxGaW5kSW5kaWNhdG9y
V2luZG93PiBtX3N0YXJ0RmFkZU91dFRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPEZpbmRJbmRp
Y2F0b3JXaW5kb3c+IG1fc3RhcnRGYWRlT3V0VGltZXI7CiAgICAgUmV0YWluUHRyPFdLRmluZElu
ZGljYXRvcldpbmRvd0FuaW1hdGlvbj4gbV9mYWRlT3V0QW5pbWF0aW9uOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbQppbmRl
eCAwZWNiODFjOWFiMzI3MDBmMzZjZGZiNjhiZDhmNDQ2NDlkNzhkYjY0Li42YTkyZTQ3YjU1YmVm
M2M1NTNlYjQyNTE5OTNlMTY0MTU3MjUzYTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbQpAQCAtMzQsOCArMzQsOCBAQAogI2lt
cG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0IDxQREZLaXQvUERGS2l0Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvUnVu
TG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggYzRj
NWEyMzFlNTQzOTY0OTRkOWQ2MDJjZmI3ZTVjZThkNWRjNjg2Ny4uM2ZmMGZiNjkzNmFjZTllMjFj
NmQzNTA4MWQ5ZTE3NGQ2NDZiN2MxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQpAQCAtNzksNyArNzksNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SZWdpb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFs
dGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1N0cmluZ0V4
dHJhcy5oPgpAQCAtOTAsNiArODksNyBAQAogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQg
PHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CiAKIC8qIEFQSSBpbnRlcm5hbHMuICovCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZERyYXdpbmdBcmVhUHJveHkuaAppbmRleCBhNDI1YTRmMTM1Njg0MDRjMTIyNTRmOGE2NGEwZGI2
NDk1NmUxY2RiLi45M2VmZTIyMGFhZGRmZGQ3OGNmNDZlMjBmN2ZkNDA0YWNlZjIxNjRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZERyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuaApAQCAtMzIs
OCArMzIsOCBAQAogI2luY2x1ZGUgIkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIkRyYXdpbmdB
cmVhUHJveHkuaCIKICNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCi0jaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlZ2lvbjsKQEAgLTExNiw3
ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0JhY2tpbmdTdG9yZURpc2NhcmRhYmxl
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxCYWNraW5nU3RvcmU+IG1fYmFja2luZ1N0b3JlOwogCi0g
ICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8Q29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5PiBt
X2Rpc2NhcmRCYWNraW5nU3RvcmVUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxDb29yZGluYXRl
ZERyYXdpbmdBcmVhUHJveHk+IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5SW1wbC5oCmluZGV4IDQ3YmEyNDEzMzMwNzYzOTZkYWEzMDJmZTAxNGMxMjc3Mzlj
MjY2MDcuLmY2ZWRiNDZlOWY3YzM1OGMxNzE0MzIzZWY3YTYzODg5ZjdjZjE2NDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCkBAIC0yOSw4
ICsyOSw4IEBACiAjaW5jbHVkZSAiQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0Fy
ZWFQcm94eS5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVnaW9uOwpAQCAtMTEyLDcg
KzExMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQmFja2luZ1N0b3JlRGlzY2FyZGFibGU7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKLSAg
ICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5SW1wbD4gbV9kaXNjYXJk
QmFja2luZ1N0b3JlVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFQcm94eUlt
cGw+IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1By
b2Nlc3NMYXVuY2hlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
ZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKaW5kZXggM2JkMWVhNjAzZTMxODhiNDNjMzA1OTU1
NTE2ZjcxNzFmZWE2ZDQyMi4uNjllNmI4M2JjZDI0N2EwYTNlOTdkNGI0MDZhMWQ1OTRkMjYyZjRh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9j
ZXNzTGF1bmNoZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcApAQCAtMjcsOCArMjcsOCBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRl
eHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVy
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xh
dW5jaGVyR3RrLmNwcAppbmRleCBkZDgwMDU2MTgwYzEwZjZmOWExZTk5ODcyZmQxZDk0NWM1NTcx
OTFlLi5mMDYzNGU5OWVkNWVmN2E3YTY2NzI4YzQ4OTliMzM4Y2JmZGYyNzU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0
ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNz
TGF1bmNoZXJHdGsuY3BwCkBAIC0zMywxMCArMzMsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Zp
bGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGxv
Y2FsZS5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dPd25QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggYjRlOTI1ODI0NzJm
MDkxYTk4ZDcxNGE1ZmNkNmEyMGNmMzVmNTkzNC4uMWJlMTc0ODJmYzdjYjVhNjE3YzI1Y2QyMjBm
OTIwMzAyOTZlMmQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTI5LDcgKzI5LDYgQEAK
ICNpbXBvcnQgIkR5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oIgogI2ltcG9ydCAi
RW52aXJvbm1lbnRWYXJpYWJsZXMuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5o
IgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxjcnRfZXh0ZXJucy5oPgog
I2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPG1hY2gvbWFjaGluZS5oPgpAQCAtNDAs
NiArMzksNyBAQAogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgog
I2ltcG9ydCA8d3RmL1RocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00OCw4ICs0OCw2IEBACiAjaW1wb3J0
IDx4cGMveHBjLmg+CiAjZW5kaWYKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIC8vIEZJ
WE1FOiBXZSBzaG91bGQgYmUgZG9pbmcgdGhpcyBhbm90aGVyIHdheS4KIGV4dGVybiAiQyIga2Vy
bl9yZXR1cm5fdCBib290c3RyYXBfcmVnaXN0ZXIyKG1hY2hfcG9ydF90LCBuYW1lX3QsIG1hY2hf
cG9ydF90LCB1aW50NjRfdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMDk0MGRiNGIwMDUzODA4
MTdkYTkxZTllNzg4YzYwNjlhMmYyODQ0Zi4uZmRmNmM3OWUyNGU0ZjU0NjYwMzA1NDIzYjE3NWMx
MDNlZjdlZGJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JL
KQogI2luY2x1ZGUgIlNlY0l0ZW1TaGltUHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCmluZGV4IDdhZDE3
MmE0MDdiMmE2NjYzZDI3MTc2YzkzYWViMGVkYzgyYTRhNGEuLmRhNjM3YzQxNTVmZGVlNmY4NjY1
NWNlMzIwMjQ3OTMzMDU4NDI4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNyArMzcsNyBAQAog
I2luY2x1ZGUgIldlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgUExB
VEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKaW5kZXggNzY2YWUwZTIwYzI3ZWRiNDkx
N2U3NmZiMTU2MjFkNjcxNGY1YmFiYi4uOTczOWZhM2ExMWY1NDA4YTYxMDBiMDYzOGViYjEwM2E1
OTg0NmZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVu
ZXNzVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVz
c1RpbWVyLmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIuaCIKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0K
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgY29uc3QgZG91YmxlIHJlc3BvbnNpdmVuZXNz
VGltZW91dCA9IDM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9u
c2l2ZW5lc3NUaW1lci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNz
VGltZXIuaAppbmRleCA4ZGIyODcyZmRlYWZlNzk3YzlhZjRlN2VjNzEyOTE2ZTI2YjdlZWVjLi5m
NzVjMGE5OThmZjQ2N2RhYzkzYmE3M2FiYzBlMmE1NmI2YzgxNTkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmgKQEAgLTI2LDcgKzI2LDcgQEAK
ICNpZm5kZWYgUmVzcG9uc2l2ZW5lc3NUaW1lcl9oCiAjZGVmaW5lIFJlc3BvbnNpdmVuZXNzVGlt
ZXJfaAogCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxv
b3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToK
ICAgICBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQqIG1fY2xpZW50OwogICAgIGJvb2wgbV9p
c1Jlc3BvbnNpdmU7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxSZXNwb25zaXZlbmVz
c1RpbWVyPiBtX3RpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFJlc3BvbnNpdmVuZXNzVGltZXI+
IG1fdGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oCmluZGV4IGUwZTUzMTAyNWIxZGE3MDIz
YTU4ZDIzMzE5ZGVhYzFiODQyZGM2YTkuLmMwZDRlYzk2MzcxMDI0ZmVmY2UxOGYyNDkzNzY2YjBj
ODZiYjhmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlu
a1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJv
dmlkZXIuaApAQCAtMjgsOSArMjgsOSBAQAogCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtUYWJsZS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTYw
LDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICBWaXNpdGVkTGlua1RhYmxlIG1fdGFibGU7CiAKICAg
ICBIYXNoU2V0PFdlYkNvcmU6OkxpbmtIYXNoLCBXZWJDb3JlOjpMaW5rSGFzaEhhc2g+IG1fcGVu
ZGluZ1Zpc2l0ZWRMaW5rczsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxWaXNpdGVkTGlu
a1Byb3ZpZGVyPiBtX3BlbmRpbmdWaXNpdGVkTGlua3NUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1l
cjxWaXNpdGVkTGlua1Byb3ZpZGVyPiBtX3BlbmRpbmdWaXNpdGVkTGlua3NUaW1lcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwCmluZGV4IDE3NjI2ZmNmMzY5ODRhOTIxNDIwOGExZjhmMTY0YjJjOTMwMmYyNjUuLjQ5YmIy
YTJkNTI5OTU1NjM5MTFlOWIwM2VjYjRhYTUyY2I2NDFhMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTYwLDExICs2MCwxMSBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTGlua0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJM
RShCQVRURVJZX1NUQVRVUykKICNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDBjY2Ez
MGNlZmU1NjMxMTBmNTM5NjFlMjFhYjNjNjI2MzVjYjdiMDUuLmM1Mjg5NjM0MjM4OTA4NzVlNjE4
MDZlNDI0MDM1ODBlNzdkZWM0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCkBAIC00MSwxMCArNDEsMTAgQEAKICNpbmNsdWRlICJXZWJQbHVnaW5T
aXRlRGF0YU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWRkZW5U
ZXJtaW5hdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAjaW5jbHVkZSA8c3RkaW8u
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJh
c2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMGVhMTA5YjIzNDBiOTIzODQ5NjQ3ZWYxODA4
OWJhNGU4ZTZmOWYwYi4uNDRhYTY1ZjgxMzk3MDY4YzU1OTk0N2ZhNTQ3MThmMTdmZDRhNDZiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zMCw3ICsz
MCw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0lEQkRhdGFi
YXNlQmFja2VuZC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50
cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0KaW5kZXgg
MzY1Y2IzNjEyNTU5MDljODMxZTNmYWRkMzg1Y2JhZDZhODcyMjU0Zi4uZjUwZGZiNzY2YjIwMWUw
NzFjMWFlMzI0MzQ2YzQ4OGViNjhmZWI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFp
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCkBAIC0zMSwxMiArMzEsMTIgQEAKICNp
bXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiV0tCYXNlLmgiCiAjaW1wb3J0ICJX
ZWJQcm9jZXNzLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPG1hY2gv
bWFjaF9lcnJvci5oPgogI2ltcG9ydCA8c2VydmVycy9ib290c3RyYXAuaD4KICNpbXBvcnQgPHNw
YXduLmg+CiAjaW1wb3J0IDxzdGRpby5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2lt
cG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRy
eVBvaW50Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENT
ZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQppbmRleCAyMWViMzM2ZDkwMmNk
NzUzZWRiMDY2MTc5ZjQzNmNhYWJiZmYzZmE5Li41N2I4M2I4ZThkNGNlNDIzMGJjNzVjYTI2N2Iw
MGEyZDQzOTFjOWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5
UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJD
b250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgIldL
QmFzZS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5
UG9pbnQuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL1J1bkxv
b3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5oCmluZGV4IDdlZTJhN2VkMTNiMTIzMmRlMDBkZjkyN2Zi
NmJmNmM4NDk4MTJlYjYuLjI2YzJkODEzZWUzMGViYzE0YzIxOGFmNTIxZjE0Njk0YmZmYTg3MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlTG9hZFByaW9yaXR5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAog
I2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGludGVybmFsbHlGYWlsZWRMb2FkVGltZXJGaXJlZCgpOwogICAgIAogICAgIEhh
c2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPj4gbV9pbnRlcm5hbGx5RmFpbGVk
UmVzb3VyY2VMb2FkZXJzOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFdlYlJlc291cmNl
TG9hZFNjaGVkdWxlcj4gbV9pbnRlcm5hbGx5RmFpbGVkTG9hZFRpbWVyOworICAgIFJ1bkxvb3A6
OlRpbWVyPFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcj4gbV9pbnRlcm5hbGx5RmFpbGVkTG9hZFRp
bWVyOwogICAgIAogICAgIEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUmVmUHRyPFdlYlJlc291cmNl
TG9hZGVyPj4gbV93ZWJSZXNvdXJjZUxvYWRlcnM7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2Jq
ZWN0TWFwLmgKaW5kZXggZTUxNzhhZDE3NDY3NWM1ZGMyNzhiYWI5NDc1NzEyODBmMTc0NzQ4Mi4u
ZmFkZTQxZGY1OGQ0Nzk4MWQzMTRjOWE4ZjQ0YWQzMWE3MGZhZWVkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1h
cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1
bnRpbWVPYmplY3RNYXAuaApAQCAtMjgsMTEgKzI4LDExIEBACiAKICNpZiBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKIAotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUg
PGhlYXAvV2Vhay5oPgogI2luY2x1ZGUgPGhlYXAvV2Vha0lubGluZXMuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KIAogc3RydWN0IE5QT2JqZWN0OwogdHlwZWRlZiBzdHJ1Y3QgX05QVmFyaWFudCBO
UFZhcmlhbnQ7CkBAIC05OCw3ICs5OCw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxKU0M6OkpT
T2JqZWN0KiwgTlBKU09iamVjdCo+IG1fbnBKU09iamVjdHM7CiAgICAgSGFzaE1hcDxOUE9iamVj
dCosIEpTQzo6V2VhazxKU05QT2JqZWN0Pj4gbV9qc05QT2JqZWN0czsKICAgICBWZWN0b3I8TlBP
YmplY3QqPiBtX25wT2JqZWN0c1RvRmluYWxpemU7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGlt
ZXI8TlBSdW50aW1lT2JqZWN0TWFwPiBtX2ZpbmFsaXphdGlvblRpbWVyOworICAgIFJ1bkxvb3A6
OlRpbWVyPE5QUnVudGltZU9iamVjdE1hcD4gbV9maW5hbGl6YXRpb25UaW1lcjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAppbmRleCBiNjQ5YTIwZTA4
Zjc2MDE4ZmVkMDcxYjEyNmE0ZGQxNjdjNjRkODJlLi4yOTE1N2YyNWM2OGU2MmRiODkzNDlkNDFj
MWRhYTdhY2U2ZDRiMWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaApAQCAtMzMsOCArMzMsOCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJhbnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTMzMCw3ICszMzAsNyBAQCBwcml2YXRlOgog
ICAgICAgICBib29sIG1fcmVwZWF0OwogICAgICAgICBUaW1lckZ1bmMgbV90aW1lckZ1bmM7CiAK
LSAgICAgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8VGltZXI+IG1fdGltZXI7CisgICAgICAg
IFJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBtX3RpbWVyOwogICAgIH07CiAgICAgdHlwZWRlZiBIYXNo
TWFwPHVuc2lnbmVkLCBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+PiBUaW1lck1hcDsKICAgICBUaW1l
ck1hcCBtX3RpbWVyczsKQEAgLTM3Nyw3ICszNzcsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gRklY
TUU6IEl0J3MgYSBiaXQgd2FzdGVmdWwgdG8gaGF2ZSBvbmUgbnVsbCBldmVudCB0aW1lciBwZXIg
cGx1Zy1pbi4KICAgICAvLyBXZSBzaG91bGQgaW52ZXN0aWdhdGUgaGF2aW5nIG9uZSBwZXIgd2lu
ZG93LgotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luPiBtX251bGxF
dmVudFRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luPiBtX251bGxFdmVu
dFRpbWVyOwogICAgIE5QX0NHQ29udGV4dCBtX25wQ0dDb250ZXh0OwogI2VuZGlmCiAjZWxpZiBQ
TFVHSU5fQVJDSElURUNUVVJFKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgK
aW5kZXggYjM1MDE4NjM1NmU0OTU2MDNmNGNlMDJmMTk5NGU4Yjk5MzkxYzE1Ny4uYWQ4MmM3YWEz
MjhmNTMxNWZhYTI4ZjFiNmRkYTI4MjdjZGIyY2NkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luU3RyZWFtLmgKQEAgLTI5LDEyICsyOSwxMiBAQAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwNSw3ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIENTdHJp
bmcgbV9taW1lVHlwZTsKICAgICBDU3RyaW5nIG1faGVhZGVyczsKIAotICAgIFdlYkNvcmU6OlJ1
bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBtX2RlbGl2ZXJ5RGF0YVRpbWVyOwor
ICAgIFJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBtX2RlbGl2ZXJ5RGF0YVRp
bWVyOwogICAgIE93blB0cjwgVmVjdG9yPHVpbnQ4X3Q+PiBtX2RlbGl2ZXJ5RGF0YTsKICAgICBi
b29sIG1fc3RvcFN0cmVhbVdoZW5Eb25lRGVsaXZlcmluZzsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCAyZDA0MzNkNTgzOTZkMTBl
ZDI4YjU3YjViOGNlOTk1MmYyZTE2Njk3Li44OTFlODQ5NzZhOGFjZmVlNWM4NzdiN2U1NjZkYWQ4
YzYzNjBiYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmgKQEAgLTM2LDkgKzM2LDkgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpblZpZXdC
YXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1
ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIC8vIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMgc2hvdWxkIG1v
dmUgdG8gV2ViQ29yZS4KIApAQCAtMjM0LDcgKzIzNCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBQ
ZW5kaW5nIFVSTFJlcXVlc3RzIHRoYXQgdGhlIHBsdWctaW4gaGFzIG1hZGUuCiAgICAgRGVxdWU8
UmVmUHRyPFVSTFJlcXVlc3Q+PiBtX3BlbmRpbmdVUkxSZXF1ZXN0czsKLSAgICBXZWJDb3JlOjpS
dW5Mb29wOjpUaW1lcjxQbHVnaW5WaWV3PiBtX3BlbmRpbmdVUkxSZXF1ZXN0c1RpbWVyOworICAg
IFJ1bkxvb3A6OlRpbWVyPFBsdWdpblZpZXc+IG1fcGVuZGluZ1VSTFJlcXVlc3RzVGltZXI7CiAK
ICAgICAvLyBQZW5kaW5nIGZyYW1lIGxvYWRzIHRoYXQgdGhlIHBsdWctaW4gaGFzIG1hZGUuCiAg
ICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxXZWJGcmFtZT4sIFJlZlB0cjxVUkxSZXF1ZXN0Pj4g
RnJhbWVMb2FkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWREcmF3aW5nQXJlYS5oCmluZGV4IDI0MmQ5ZGMyMjczMDM2ZDM5NTI1OWM0MGJiMzYxNDkwOGM4
OGRlZDAuLjkzOTYyNmNmODE4MzVmYjZjYWExNzY3NDdlYTBkMDY5ZTA5OWEzYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmgKQEAg
LTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIkxheWVy
VHJlZUhvc3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lvbi5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCkBAIC0xMjQsOCArMTI0LDggQEAgcHJpdmF0ZToKICAgICAvLyB3b24ndCBwYWludCB1
bnRpbCBwYWludGluZyBoYXMgcmVzdW1lZCBhZ2Fpbi4KICAgICBib29sIG1faXNQYWludGluZ1N1
c3BlbmRlZDsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPENvb3JkaW5hdGVkRHJhd2lu
Z0FyZWE+IG1fZGlzcGxheVRpbWVyOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPENvb3Jk
aW5hdGVkRHJhd2luZ0FyZWE+IG1fZXhpdENvbXBvc2l0aW5nVGltZXI7CisgICAgUnVuTG9vcDo6
VGltZXI8Q29vcmRpbmF0ZWREcmF3aW5nQXJlYT4gbV9kaXNwbGF5VGltZXI7CisgICAgUnVuTG9v
cDo6VGltZXI8Q29vcmRpbmF0ZWREcmF3aW5nQXJlYT4gbV9leGl0Q29tcG9zaXRpbmdUaW1lcjsK
IAogICAgIC8vIFRoZSBsYXllciB0cmVlIGhvc3QgdGhhdCBoYW5kbGVzIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nLgogICAgIFJlZlB0cjxMYXllclRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBs
LmgKaW5kZXggM2U1YTg5MGFhMGJkZWViNGM4M2E2Mzk5MDE4MDY4MDA1ZjEwYjA0MS4uMWIxM2Vk
MDc1ZTAwZWE3M2M2NDIwZDNlMTg4MzVhNWNhMGYzZmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaApAQCAtMjksNyArMjks
NyBAQAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29w
Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKQEAgLTEyNyw4ICsxMjcsOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9pc1BhaW50aW5nU3VzcGVuZGVkOwogICAgIGJvb2wgbV9hbHdheXNVc2VDb21wb3Np
dGluZzsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9k
aXNwbGF5VGltZXI7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBs
PiBtX2V4aXRDb21wb3NpdGluZ1RpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVh
SW1wbD4gbV9kaXNwbGF5VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBs
PiBtX2V4aXRDb21wb3NpdGluZ1RpbWVyOwogCiAgICAgLy8gVGhlIGxheWVyIHRyZWUgaG9zdCB0
aGF0IGhhbmRsZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCiAgICAgUmVmUHRyPExheWVyVHJl
ZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggYWQ4OGNiYjczNzgyNTFlN2M5
Y2FiMjViYmM3N2NmOGQzNTc4NmEyYi4uY2ZlNTBiZjViMDZkNmJjZTYwM2MzNjc2ZTc0ZDRhMTVm
Mjg4YTEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlICJXZWJQYWdl
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoVEhS
RUFERURfU0NST0xMSU5HKQogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3Zl
cmxheS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgK
aW5kZXggODk2ZjEyNjc1ODE4NTU3ZTY5NTIwYjM2YTlmYjQzMmEwN2RhNTg4OS4uNjFjNjgxOGRk
NmI1ZmJjMGM1Yzk0NDM2NjlmOGY5OTY3OWRjNzE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKQEAgLTI4LDggKzI4LDggQEAKIAogI2lu
Y2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgotI2luY2x1ZGUgPFdlYkNv
cmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDsKQEAgLTkwLDcgKzkwLDcgQEAgcHJpdmF0ZToKICAgICBDbGllbnQqIG1fY2xpZW50Owog
ICAgIFdlYlBhZ2UqIG1fd2ViUGFnZTsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBh
Z2VPdmVybGF5PiBtX2ZhZGVBbmltYXRpb25UaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxQYWdl
T3ZlcmxheT4gbV9mYWRlQW5pbWF0aW9uVGltZXI7CiAgICAgZG91YmxlIG1fZmFkZUFuaW1hdGlv
blN0YXJ0VGltZTsKICAgICBkb3VibGUgbV9mYWRlQW5pbWF0aW9uRHVyYXRpb247CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxODExNGEx
ZjBkZDBkZDk3ODIxMmEwZTVhMzUzYzE0ZmEyMTUzNDA5Li41ZmM0NTU4NmRiMWM0YzA0M2U0ZThh
YzVjOWM0NTQ5NGI5MjFiMTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjMsNyArMTIzLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3Jp
cHRDb250cm9sbGVyLmg+CkBAIC0xNDAsNiArMTM5LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pT
Q0pTVmFsdWUuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvT3BlcmF0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUo
TUhUTUwpCiAjaW5jbHVkZSA8V2ViQ29yZS9NSFRNTEFyY2hpdmUuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGNkZjY5ZTY1YmIyYjdkMThmYjQx
NjdkNzNiMTZlZjI0NjhjMWQ5NzAuLmQ2ZmMxNzFmMTc5N2JhMzlmNzRkZDQ1NzA3NDRiOTQzNTYz
ZmIxOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtODU1LDcgKzg1NSw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcHJpbWFyeVBsdWdJblBh
Z2VPcmlnaW47CiAgICAgU3RyaW5nIG1fcHJpbWFyeVBsdWdJbk9yaWdpbjsKICAgICBTdHJpbmcg
bV9wcmltYXJ5UGx1Z0luTWltZVR5cGU7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2Vi
UGFnZT4gbV9kZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5UaW1lcjsKKyAgICBSdW5M
b29wOjpUaW1lcjxXZWJQYWdlPiBtX2RldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblRp
bWVyOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC04OTcsOCArODk3LDggQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8UGFnZUJhbm5lcj4gbV9oZWFkZXJCYW5uZXI7CiAgICAgUmVmUHRy
PFBhZ2VCYW5uZXI+IG1fZm9vdGVyQmFubmVyOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGlt
ZXI8V2ViUGFnZT4gbV9zZXRDYW5TdGFydE1lZGlhVGltZXI7Ci0gICAgV2ViQ29yZTo6UnVuTG9v
cDo6VGltZXI8V2ViUGFnZT4gbV9zZW5kRGlkVXBkYXRlSW5XaW5kb3dTdGF0ZVRpbWVyOworICAg
IFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fc2V0Q2FuU3RhcnRNZWRpYVRpbWVyOworICAgIFJ1
bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fc2VuZERpZFVwZGF0ZUluV2luZG93U3RhdGVUaW1lcjsK
ICAgICBib29sIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKIAogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZlB0cjxXZWJVbmRvU3RlcD4+IG1fdW5kb1N0ZXBNYXA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBmY2E2OTdhZDQ5YTYwMzBmYzdmN2E0YTY2
ODJmZGU4NTkxMDZiNTQ0Li5iNmM2ZGQxZTAzMTk1YjIxM2E1MzA0NjJhOGE3MTllMGVlOWZiNjcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTc0LDcgKzc0
LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZXR0aW5ncy5oPgpAQCAtODMsNiArODIsNyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdIYXNoLmg+CiAKICNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCmluZGV4IDViMzQ4
MGRhNGZkYTNiZDNjODRiMDFmMzdhZjVmZWQwM2FkZDBlMDIuLjRkMjQ5ZGJkMjM4YTI4MjI4N2Yx
MTdlYjdlYzMzMWE2YWY0MDczZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKQEAgLTM2LDExICszNiwxMSBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtpbmdDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV2ViUHJv
Y2Vzcy5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT3Bl
cmF0aW9ucy5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWZkZWYgSEFWRV9FQ09SRV9YCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0
ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5j
cHAKaW5kZXggNTRjOGRmM2UwY2JjZWM3NWQ3MDkyYzJiMjQyNmFjN2ZmNTFjNGVmOC4uYjQ4MWVl
MzRmMjNlM2FiOGFmZWU0ZWJiNTJhZWI1MGUwMjM3NTMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcApAQCAtMzIsMTIgKzMy
LDEyIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlSGFuZGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
V2ViS2l0Mi9XZWJQcm9jZXNzLmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPGxp
YmludGwuaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4K
KyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214709</attachid>
            <date>2013-10-21 00:45:26 -0700</date>
            <delta_ts>2013-10-21 01:51:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116606-20131021094523.patch</filename>
            <type>text/plain</type>
            <size>166625</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlZGRlYWU1ZTUwMWQzY2ViMTRhMzc0
OTFlNWE1YTExMDAxNGUzZDkuLjQyZTAzZDg4N2VkM2YxODQxNWFmNzc3MGIxNDI0NDYyZTZkZTUx
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTAwIEBACisyMDEzLTEwLTIxICBQYXRyaWNrIEdhbnN0ZXJlciAg
PHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgUnVuTG9vcCBmcm9tIFdlYkNvcmUg
dG8gV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY2MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aXRoIHRoaXMgY2hhbmdlIFJ1bkxvb3AgY2FuIGJlIHVzZWQgaW4gSmF2YVNjcmlwdENvcmUgdG9v
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYudmN4cHJv
ai9XVEYudmN4cHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL1BsYXRmb3JtQmxh
Y2tCZXJyeS5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAg
ICogd3RmL1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVdpbi5jbWFr
ZToKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6SG9sZGVyOjpI
b2xkZXIpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpIb2xkZXI6OnJ1bkxvb3ApOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpjdXJyZW50KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6bWFpbik6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OmlzTWFpbik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnBlcmZvcm1X
b3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2gpOgorICAgICAgICAqIHd0Zi9S
dW5Mb29wLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmgu
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnRSZXBlYXRpbmcpOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0T25lU2hvdCk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNSZXBlYXRpbmcpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lcjo6VGltZXIpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lcjo6ZmlyZWQp
OgorICAgICAgICAqIHd0Zi9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVy
cnkuY3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAg
ICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2YvUnVuTG9vcENGLmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cGVyZm9y
bVdvcmspOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpydW5Gb3JEdXJhdGlv
bik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXVEY6OlJ1bkxv
b3A6OnJ1bik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnN0b3ApOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpU
aW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQpOgor
ICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYvZWZsL1J1bkxvb3BF
ZmwuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1J1bkxvb3BF
ZmwuY3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpydW4pOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwRXZl
bnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGlt
ZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQpOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYvZ3RrL1J1bkxvb3BHdGsu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsu
Y3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpydW4pOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjppbm5lcm1vc3RMb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cHVz
aE5lc3RlZE1haW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cG9wTmVzdGVkTWFpbkxv
b3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6cXVldWVXb3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1l
ckJhc2U6OmNsZWFyVGltZXJTb3VyY2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJh
c2U6OnRpbWVyRmlyZWRDYWxsYmFjayk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFz
ZTo6c3RhcnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYv
d2luL1J1bkxvb3BXaW4uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1J1bkxvb3BXaW4uY3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wV25kUHJv
Yyk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnduZFByb2MpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpydW4pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKToKKyAgICAgICAgKFdU
Rjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6On5SdW5Mb29wKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdURjo6Z2VuZXJhdGVUaW1lcklEKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UpOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNl
OjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisK
IDIwMTMtMTAtMjAgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBT
dHJ1Y3R1cmVTdHViSW5mbydzIHVzZWRSZWdpc3RlcnMgc2V0IHNob3VsZCBiZSBhYmxlIHRvIHRy
YWNrIGFsbCByZWdpc3RlcnMsIG5vdCBqdXN0IHRoZSBvbmVzIHRoYXQgb3VyIEpJVCdzIHZpZXcg
YXMgdGVtcG9yYXJpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ODk2ZGZmY2RiNDIzYzJhMWRlYjNlNTUxNmRj
MWE5YzM1ZGRlNzBhLi4wZTM2ODUzOGY0YjY0ZTQ4Yjc3ZGMxNGJjNjFkNDZlMWUzYTQxYzYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMTAtMjEgIFBhdHJpY2sgR2Fuc3RlcmVy
ICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29y
ZSB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExNjYwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21h
a2U6CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1XaW4u
Y21ha2U6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKwogMjAxMy0x
MC0yMSAgU2FudG9zaCBNYWh0byAgPHNhbnRvc2gubWFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAg
QVNTRVJUSU9OIEZBSUxFRDogIXN0eWxlLT5wcm9wZXJ0eUlzSW1wb3J0YW50KHByb3BlcnR5SUQp
IGluIFdlYkNvcmU6OnNldFRleHREZWNvcmF0aW9uUHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCAzZGM1ZmViMzJhYTBkOGQ2MDUyZDIwYTI0NTdjMDQ4NWE4MGUzYjM0Li5kMDZhNjEzMDJiNTIx
ZmM2OGQwYzY5ZWMwMmQ5OGZlZGZkMjIwMmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDkgQEAKKzIwMTMtMTAtMjEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29yZSB0byBXVEYKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjYwNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW06CisgICAgICAgICgrW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdGlhbGl6ZV0p
OgorICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tOgorICAgICAgICAoK1tX
ZWJCYWNrRm9yd2FyZExpc3QgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhpc3RvcnkvV2ViSGlz
dG9yeUl0ZW0ubW06CisgICAgICAgICgrW1dlYkhpc3RvcnlJdGVtIGluaXRpYWxpemVdKToKKyAg
ICAgICAgKiBNaXNjL1dlYkNhY2hlLm1tOgorICAgICAgICAoK1tXZWJDYWNoZSBpbml0aWFsaXpl
XSk6CisgICAgICAgICogTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbToKKyAgICAgICAgKCtb
V2ViRWxlbWVudERpY3Rpb25hcnkgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIE1pc2MvV2ViSWNv
bkRhdGFiYXNlLm1tOgorICAgICAgICAoK1tXZWJJY29uRGF0YWJhc2UgaW5pdGlhbGl6ZV0pOgor
ICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToK
KyAgICAgICAgKCtbV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGluaXRpYWxpemVdKToKKyAg
ICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICog
UGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5l
dHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKCtbV2ViTmV0c2NhcGVQbHVnaW5WaWV3IGlu
aXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06
CisgICAgICAgICgrW1dlYlVuZG9TdGVwIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkFy
Y2hpdmUubW06CisgICAgICAgICgrW1dlYkFyY2hpdmVQcml2YXRlIGluaXRpYWxpemVdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAgICgrW1dlYkRhdGFTb3Vy
Y2UgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAg
ICAgICgrW1dlYkhUTUxWaWV3UHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICgrW1dlYkhU
TUxWaWV3IGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
OgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJSZXNvdXJjZS5tbToKKyAgICAgICAgKCtbV2ViUmVzb3VyY2VQcml2YXRlIGluaXRp
YWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbToKKyAgICAgICAg
KCtbV2ViVGV4dEl0ZXJhdG9yUHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoK1tXZWJWaWV3IGluaXRpYWxpemVdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgorICAgICAgICAoK1tXZWJWaWV3UHJpdmF0ZSBpbml0
aWFsaXplXSk6CisKIDIwMTMtMTAtMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCByb2xsIG91dCBvZiByMTU3Njk1OyBicm9rZSBNYWMgYnVp
bGRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGE4Y2M0YjgyYTEzMDIzY2YyYTllMGMzZDJhYWIxZmFhYmNmZTUx
ZTkuLjdjMDNmNmQ5MWE4YzA3ZjAwY2IxMzg4NDQxZDc4NjExM2E2ZTkwNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3MCBAQAorMjAxMy0xMC0yMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
d2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEYXRhYmFz
ZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3Iu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXgu
Y3BwOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
ICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29y
ZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50
cnlQb2ludC5tbToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHA6CisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vz
cy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy91bml4
L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vz
cy5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAgICAqIFNoYXJl
ZC9DaGlsZFByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGls
aXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oOgorICAgICAg
ICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJv
Y2Vzc0VudHJ5UG9pbnQubW06CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94
eS5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
RmluZEluZGljYXRvcldpbmRvdy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLUHJp
bnRpbmdWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdB
cmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHA6
CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1t
OgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRM
aW5rUHJvdmlkZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nl
c3NNYWluLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vydmlj
ZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1BhZ2VPdmVybGF5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Vm
bC9XZWJQcm9jZXNzTWFpbkVmbC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9ndGsvV2ViUHJv
Y2Vzc01haW5HdGsuY3BwOgorCiAyMDEzLTEwLTIwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBMb2FkaW5nIHByb2dyZXNzIEFQSQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDAwZTY3Y2MwNDY1ZDkyZWJhMDljNGNlYjMyNjI4OGNhMzU0YzE3NTMu
LmJlNGM0MTRiZWVmNjQ3ZmQ4MTVmNzRmYjU0NWU0MzgzNDhmMDQ1MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTEzOCw2ICsxMzgsOCBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNl
L1dURi93dGYvUmVmUHRyLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1JlZlB0ckhhc2hNYXAuaCBc
CiAgICAgU291cmNlL1dURi93dGYvUmV0YWluUHRyLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL1J1
bkxvb3AuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggXAogICAgIFNvdXJjZS9X
VEYvd3RmL1NIQTEuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9TSEExLmggXAogICAgIFNvdXJj
ZS9XVEYvd3RmL1NhdHVyYXRlZEFyaXRobWV0aWMuaCBcCkBAIC0yMTcsNiArMjE5LDcgQEAgd3Rm
X3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5j
cHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5oIFwKICAgICBT
b3VyY2UvV1RGL3d0Zi9ndGsvTWFpblRocmVhZEd0ay5jcHAgXAorICAgIFNvdXJjZS9XVEYvd3Rm
L2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9BU0NJSUZhc3RQ
YXRoLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcCBcCiAgICAg
U291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYu
dmN4cHJvagppbmRleCBjMWRiMzk5YjhjMzMyMjg4OGJhNzJhMWZjZGRhOGY4NDA3NWQ0NWNmLi5m
ZjExOWI3ZDVkNjlhZTJiMTY0NGQzMTEzN2RlMzc5OTI4NTM1N2ZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHBy
b2ovV1RGLnZjeHByb2oKQEAgLTg5LDYgKzg5LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHd0ZlxSQU1TaXplLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZc
UmFuZG9tTnVtYmVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcUmVm
Q291bnRlZExlYWtDb3VudGVyLmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3
dGZcUnVuTG9vcC5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFNIQTEu
Y3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxTaXhDaGFyYWN0ZXJIYXNo
LmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcU2l6ZUxpbWl0cy5jcHAi
IC8+DQpAQCAtMTExLDYgKzExMiw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZc
dW5pY29kZVxpY3VcQ29sbGF0b3JJQ1UuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHd0Zlx1bmljb2RlXFVURjguY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHd0Zlx3aW5cTWFpblRocmVhZFdpbi5jcHAiIC8+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cd3RmXHdpblxSdW5Mb29wV2luLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
Llx3dGZcV1RGVGhyZWFkRGF0YS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
d3RmXFNjaGVkdWxlUGFpckNGLmNwcCIgLz4NCiAgIDwvSXRlbUdyb3VwPg0KQEAgLTIxOCw2ICsy
MjAsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJlZlB0ci5oIiAvPg0KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxSZWZQdHJIYXNoTWFwLmgiIC8+DQogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJldGFpblB0ci5oIiAvPg0KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHd0ZlxSdW5Mb29wLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cd3RmXFNhdHVyYXRlZEFyaXRobWV0aWMuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlx3dGZcU2NoZWR1bGVQYWlyLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
d3RmXFNlZ21lbnRlZFZlY3Rvci5oIiAvPg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDZhNWUwMDkzNTZkYjM2NTZmMjlhYTJiOTRkNDRlMDZhZWI4NTg2NjMu
LmQ1YzQ1Mzc3MTUxNjFhMWYwNzIzYmM5ODkzNzRhMzkxNWRjODk3NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjAsNiArNjAsOSBAQAogCQkyNjI5OUI2
RTE3QTlFNUI4MDBBREVCRTUgLyogUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNjI5OUI2RDE3QTlFNUI4MDBBREVCRTUgLyogUmVmLmggKi87IH07
CiAJCTJDMDUzODU0MTVCQzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRlVGltZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwNTM4NTMxNUJDODE5
MDAwRjIxQjk2IC8qIEdyZWdvcmlhbkRhdGVUaW1lLmggKi87IH07CiAJCTJDQ0Q4OTJBMTVDMDM5
MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0NEODkyOTE1QzAzOTAyMDAyODUwODMgLyogR3Jl
Z29yaWFuRGF0ZVRpbWUuY3BwICovOyB9OworCQkyQ0RFRDBFRjE4MTE1QzM4MDA0REJBNzAgLyog
UnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovOyB9OworCQky
Q0RFRDBGMzE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBGMTE4MTE1Qzg1MDA0REJBNzAgLyog
UnVuTG9vcC5jcHAgKi87IH07CisJCTJDREVEMEY0MTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29w
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBG
MjE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovOyB9OwogCQk0NEY2NjAwODE3MUFGQUU2
MDBFNEFEMTkgLyogRW51bUNsYXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NEY2NjAwNzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi87
IH07CiAJCTRGMDMyMUJDMTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVC
QUY2IC8qIEJpdEFycmF5LmggKi87IH07CiAJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBP
YmpjUnVudGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0UyOUMzM0QxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmgg
Ki87IH07CkBAIC0zMTksNiArMzIyLDkgQEAKIAkJMjYyOTlCNkQxN0E5RTVCODAwQURFQkU1IC8q
IFJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWYuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMwNTM4NTMxNUJDODE5MDAwRjIxQjk2IC8qIEdyZWdvcmlh
bkRhdGVUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyZWdvcmlhbkRh
dGVUaW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDQ0Q4OTI5MTVDMDM5MDIw
MDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmVnb3JpYW5EYXRlVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUnVuTG9vcENGLmNwcDsgcGF0aCA9IGNm
L1J1bkxvb3BDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDREVEMEYxMTgx
MTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJ1bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0RF
RDBGMjE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSdW5Mb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0REVF
NzRBMTUyMjc0QkIwMEM2RUMzNyAvKiBpT1MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29u
ZmlnOyBwYXRoID0gaU9TLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NEY2NjAwNzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVu
dW1DbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjAzMjFCQjE1NkFBOEQx
MDA2RUJBRjYgLyogQml0QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Qml0QXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1NSw2ICs1NjEsMTQg
QEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQky
Q0RFRDBGMDE4MTE1QzNGMDA0REJBNzAgLyogY2YgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29w
Q0YuY3BwICovLAorCQkJKTsKKwkJCW5hbWUgPSBjZjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01OTYsNiArNjEwLDcgQEAKIAkJQTg3NkRCRDYxNTE4
MTZFNTAwREFEQjk1IC8qIHd0ZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMkNERUQwRjAxODExNUMzRjAwNERCQTcwIC8qIGNmICovLAogCQkJCUE4QTQ3
MjgxMTUxQTgyNUEwMDQxMjNGRiAvKiBkdG9hICovLAogCQkJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2
OEQxQiAvKiBpb3MgKi8sCiAJCQkJQThBNDcyQzQxNTFBODI1QTAwNDEyM0ZGIC8qIG1hYyAqLywK
QEAgLTczNiw2ICs3NTEsOCBAQAogCQkJCUE4QTQ3MzAzMTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZQ
dHIuaCAqLywKIAkJCQlBOEE0NzMwNDE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5o
ICovLAogCQkJCUE4QTQ3MzA1MTUxQTgyNUIwMDQxMjNGRiAvKiBSZXRhaW5QdHIuaCAqLywKKwkJ
CQkyQ0RFRDBGMTE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgKi8sCisJCQkJMkNERUQw
RjIxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkxNDY5NDE5MDE2RUFBRjZE
MDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi8sCiAJCQkJMTQ2OTQxOTExNkVBQUY2RDAwMjRF
MTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAqLywKIAkJCQkxNEYzQjBGNjE1RTQ1RTQ2MDAyMTAw
NjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpYy5oICovLApAQCAtMTAyNSw2ICsxMDQyLDcgQEAKIAkJ
CQlBOEE0NzQxQzE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEE0NzQxRDE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDc0MUUxNTFBODI1QjAwNDEyM0ZGIC8qIFJldGFpblB0ci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMkNERUQwRjQxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTE0RjNCMEY3MTVFNDVFNDYwMDIxMDA2OSAvKiBTYXR1cmF0ZWRB
cml0aG1ldGljLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDY5NDE5NjE2RUFBRkY4MDAyNEUxNDYg
LyogU2NoZWR1bGVQYWlyLmggaW4gSGVhZGVycyAqLywKQEAgLTExOTcsNiArMTIxNSw4IEBACiAJ
CQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzQxQTE1MUE4MjVCMDA0MTIzRkYgLyogUmVmQ291bnRlZExlYWtD
b3VudGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDREVEMEYzMTgxMTVDODUwMDREQkE3MCAv
KiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDREVEMEVGMTgxMTVDMzgwMDREQkE3
MCAvKiBSdW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ2OTQxOTMxNkVBQUY2RDAw
MjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Njk0MTk5
MTZFQUIwNDEwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDY5NDE5NzE2RUFBRkY4MDAyNEUxNDYgLyogU2NoZWR1bGVQYWlyTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IGI2MTdiN2RmOGQ2MjVmODg3MjI3MmNkMjZj
ZTQwYzBhZDEyZTAzMTEuLmFiMmU0YmY1Y2RkODhjM2U2ZGNjN2NmNGE4ZGEyODJlMDdhZjUwNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC04Niw2ICs4Niw3IEBAIHNldChXVEZfSEVBREVSUwog
ICAgIFJlZlB0ci5oCiAgICAgUmVmUHRySGFzaE1hcC5oCiAgICAgUmV0YWluUHRyLmgKKyAgICBS
dW5Mb29wLmgKICAgICBTSEExLmgKICAgICBTYXR1cmF0ZWRBcml0aG1ldGljLmgKICAgICBTZWdt
ZW50ZWRWZWN0b3IuaApAQCAtMTczLDYgKzE3NCw3IEBAIHNldChXVEZfU09VUkNFUwogICAgIFJB
TVNpemUuY3BwCiAgICAgUmFuZG9tTnVtYmVyLmNwcAogICAgIFJlZkNvdW50ZWRMZWFrQ291bnRl
ci5jcHAKKyAgICBSdW5Mb29wLmNwcAogICAgIFNIQTEuY3BwCiAgICAgU2l4Q2hhcmFjdGVySGFz
aC5jcHAKICAgICBTdGFja0JvdW5kcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtQmxhY2tCZXJyeS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJy
eS5jbWFrZQppbmRleCBiNWRlMzA1MjMzNmQ5NTEzNTc0MTc4MGYxYTM4ZTRkMGJjZjA1YzJiLi4w
ODU3NjZjNDZjMTJlOWVmNWIyNzFiZmRkYTZiNjUzYTI1NzI3OGI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCkBAIC0xLDMgKzEsNCBAQAogbGlzdChBUFBFTkQgV1RG
X1NPVVJDRVMKICAgICBibGFja2JlcnJ5L01haW5UaHJlYWRCbGFja0JlcnJ5LmNwcAorICAgIGJs
YWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtl
CmluZGV4IDc3MWM4MmUyNGJjNGJmMThlMzJlYzM0ZTdiMGI0OWY2OTI4MzlmNjYuLmUxMGE0NDIz
OGM5NTI5ZDlkMDUxOGI0YTFmMDljNDdhYzE0NDJmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNt
YWtlCkBAIC0yLDYgKzIsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGVmbC9NYWlu
VGhyZWFkRWZsLmNwcAogICAgIGVmbC9Pd25QdHJFZmwuY3BwCiAgICAgZWZsL1JlZlB0ckVmbC5j
cHAKKyAgICBlZmwvUnVuTG9vcEVmbC5jcHAKIAogICAgIGdvYmplY3QvR093blB0ci5jcHAKICAg
ICBnb2JqZWN0L0dSZWZQdHIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUdUSy5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDY4OTQw
ZmYyNGNlOGM3NmJkM2IyYTlkNzFkMWI2MWQxYWYwNWMzMGEuLjQzZGE3MDk1NmYwOTI3NDZmYzYx
NWM0MTVlYmQ0NGYwYTAwYTU4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
R1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC00LDYg
KzQsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGdvYmplY3QvR2xpYlV0aWxpdGll
cy5jcHAKIAogICAgIGd0ay9NYWluVGhyZWFkR3RrLmNwcAorICAgIGd0ay9SdW5Mb29wR3RrLmNw
cAogKQogCiBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtl
CmluZGV4IDg4YmRhZjcxM2U1MjhjMTQ4OGU4YjlhYWZkNzE5OTczYTA4ZmYwOGMuLjg4MzRkMjUy
ZjRjMDQ5YzlkZGZiMzM1Njg4NDg0MjkzODQ1MTA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNt
YWtlCkBAIC0yLDYgKzIsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHRocmVhZHMv
d2luL0JpbmFyeVNlbWFwaG9yZVdpbi5jcHAKIAogICAgIHdpbi9NYWluVGhyZWFkV2luLmNwcAor
ICAgIHdpbi9SdW5Mb29wV2luLmNwcAogKQogCiBpZiAoV0lOQ0UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9SdW5Mb29wLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU5Nzg2NWQ3YjlhNmIzOWQ3OWI3MjQ4YzM3NGNhNzY3NDRjYjM1NDIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcApAQCAtMCwwICsxLDEzMSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisK
KyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNp
ZmljLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgUnVuTG9vcCogc19tYWluUnVuTG9v
cDsKKworLy8gSGVscGVyIGNsYXNzIGZvciBUaHJlYWRTcGVjaWZpY0RhdGEuCitjbGFzcyBSdW5M
b29wOjpIb2xkZXIgeworcHVibGljOgorICAgIEhvbGRlcigpCisgICAgICAgIDogbV9ydW5Mb29w
KGFkb3B0UmVmKG5ldyBSdW5Mb29wKSkKKyAgICB7CisgICAgfQorCisgICAgUnVuTG9vcCogcnVu
TG9vcCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuTG9vcC5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IFJlZlB0cjxSdW5Mb29wPiBtX3J1bkxvb3A7Cit9OworCit2b2lkIFJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpCit7CisgICAgaWYgKHNfbWFpblJ1bkxvb3ApCisgICAgICAgIHJldHVy
bjsKKyAgICBzX21haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworfQorCitSdW5Mb29w
KiBSdW5Mb29wOjpjdXJyZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VGhy
ZWFkU3BlY2lmaWM8UnVuTG9vcDo6SG9sZGVyPiwgcnVuTG9vcEhvbGRlciwgKCkpOworICAgIHJl
dHVybiBydW5Mb29wSG9sZGVyLT5ydW5Mb29wKCk7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6Om1h
aW4oKQoreworICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKKyAgICByZXR1cm4gc19tYWluUnVu
TG9vcDsKK30KKworYm9vbCBSdW5Mb29wOjppc01haW4oKQoreworICAgIEFTU0VSVChzX21haW5S
dW5Mb29wKTsKKyAgICByZXR1cm4gc19tYWluUnVuTG9vcCA9PSBSdW5Mb29wOjpjdXJyZW50KCk7
Cit9CisKK3ZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKQoreworICAgIC8vIEl0IGlzIGltcG9y
dGFudCB0byBoYW5kbGUgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgcXVldWUgb25lIGF0IGEgdGltZSBi
ZWNhdXNlIHdoaWxlIGluc2lkZSBvbmUgb2YgdGhlc2UKKyAgICAvLyBmdW5jdGlvbnMgd2UgbWln
aHQgcmUtZW50ZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKSBhbmQgd2UgbmVlZCB0byBiZSBhYmxl
IHRvIHBpY2sgdXAgd2hlcmUgd2UgbGVmdCBvZmYuCisgICAgLy8gU2VlIGh0dHA6Ly93ZWJraXQu
b3JnL2IvODk1OTAgZm9yIG1vcmUgZGlzY3Vzc2lvbi4KKworICAgIC8vIE9uZSBwb3NzaWJsZSBz
Y2VuYXJpbyB3aGVuIGhhbmRsaW5nIHRoZSBmdW5jdGlvbiBxdWV1ZSBpcyBhcyBmb2xsb3dzOgor
ICAgIC8vIC0gUnVuTG9vcDo6cGVyZm9ybVdvcmsoKSBpcyBpbnZva2VkIHdpdGggMSBmdW5jdGlv
biBvbiB0aGUgcXVldWUKKyAgICAvLyAtIEhhbmRsaW5nIHRoYXQgZnVuY3Rpb24gcmVzdWx0cyBp
biAxIG1vcmUgZnVuY3Rpb24gYmVpbmcgZW5xdWV1ZWQKKyAgICAvLyAtIEhhbmRsaW5nIHRoYXQg
b25lIHJlc3VsdHMgaW4geWV0IGFub3RoZXIgYmVpbmcgZW5xdWV1ZWQKKyAgICAvLyAtIEFuZCBz
byBvbgorICAgIC8vCisgICAgLy8gSW4gdGhpcyBzaXR1YXRpb24gb25lIGludm9jYXRpb24gb2Yg
cGVyZm9ybVdvcmsoKSBuZXZlciByZXR1cm5zIHNvIGFsbCBvdGhlciBldmVudCBzb3VyY2VzIGFy
ZSBibG9ja2VkLgorICAgIC8vIEJ5IG9ubHkgaGFuZGxpbmcgdXAgdG8gdGhlIG51bWJlciBvZiBm
dW5jdGlvbnMgdGhhdCB3ZXJlIGluIHRoZSBxdWV1ZSB3aGVuIHBlcmZvcm1Xb3JrKCkgaXMgY2Fs
bGVkCisgICAgLy8gd2UgZ3VhcmFudGVlIHRvIG9jY2FzaW9uYWxseSByZXR1cm4gZnJvbSB0aGUg
cnVuIGxvb3Agc28gb3RoZXIgZXZlbnQgc291cmNlcyB3aWxsIGJlIGFsbG93ZWQgdG8gc3Bpbi4K
KworICAgIEZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb247CisgICAgc2l6ZV90IGZ1bmN0aW9uc1Rv
SGFuZGxlID0gMDsKKworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rp
b25RdWV1ZUxvY2spOworICAgICAgICBmdW5jdGlvbnNUb0hhbmRsZSA9IG1fZnVuY3Rpb25RdWV1
ZS5zaXplKCk7CisKKyAgICAgICAgaWYgKG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgZnVuY3Rpb24gPSBtX2Z1bmN0aW9uUXVldWUudGFr
ZUZpcnN0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24oKTsKKworICAgIGZvciAoc2l6ZV90IGZ1
bmN0aW9uc0hhbmRsZWQgPSAxOyBmdW5jdGlvbnNIYW5kbGVkIDwgZnVuY3Rpb25zVG9IYW5kbGU7
ICsrZnVuY3Rpb25zSGFuZGxlZCkgeworICAgICAgICB7CisgICAgICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7CisKKyAgICAgICAgICAgIC8vIEV2ZW4gaWYg
d2Ugc3RhcnQgb2ZmIHdpdGggTiBmdW5jdGlvbnMgdG8gaGFuZGxlIGFuZCB3ZSd2ZSBvbmx5IGhh
bmRsZWQgbGVzcyB0aGFuIE4gZnVuY3Rpb25zLCB0aGUgcXVldWUKKyAgICAgICAgICAgIC8vIHN0
aWxsIG1pZ2h0IGJlIGVtcHR5IGJlY2F1c2UgdGhvc2UgZnVuY3Rpb25zIG1pZ2h0IGhhdmUgYmVl
biBoYW5kbGVkIGluIGFuIGlubmVyIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkuCisgICAgICAgICAg
ICAvLyBJbiB0aGF0IGNhc2Ugd2Ugc2hvdWxkIGJhaWwgaGVyZS4KKyAgICAgICAgICAgIGlmICht
X2Z1bmN0aW9uUXVldWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBmdW5jdGlvbiA9IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24oKTsKKyAgICB9Cit9CisKK3ZvaWQgUnVuTG9v
cDo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOworICAgIG1fZnVuY3Rpb25RdWV1
ZS5hcHBlbmQoZnVuY3Rpb24pOworCisgICAgd2FrZVVwKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93
dGYvUnVuTG9vcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3Y2NhNzkxYTFlZjU0YjljZGZlZTNmZDI3ZDk3YjFl
ZWIyNDhlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAg
LTAsMCArMSwxNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAy
MDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFJ1bkxvb3BfaAorI2RlZmluZSBSdW5Mb29wX2gKKworI2luY2x1ZGUgPHd0
Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uRGlzcGF0Y2hlci5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CisjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Jl
ZlB0ci5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8RWNvcmUuaD4K
KyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5j
dGlvbkRpc3BhdGNoZXIgeworcHVibGljOgorICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhl
IG1haW4gdGhyZWFkIChleGNlcHQgZm9yIHRoZSBNYWMgcGxhdGZvcm0sIHdoZXJlIGl0CisgICAg
Ly8gY2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQpLgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGF0aWMgUnVuTG9vcCogY3VycmVudCgpOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgUnVuTG9vcCogbWFpbigpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMg
Ym9vbCBpc01haW4oKTsKKyAgICB+UnVuTG9vcCgpOworCisgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKSBPVkVSUklERTsKKworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGF0aWMgdm9pZCBydW4oKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBz
dG9wKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FrZVVwKCk7CisKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcnVuRm9yRHVyYXRpb24oZG91
YmxlIGR1cmF0aW9uKTsKKyNlbmRpZgorICAgIAorICAgIGNsYXNzIFRpbWVyQmFzZSB7CisgICAg
ICAgIGZyaWVuZCBjbGFzcyBSdW5Mb29wOworICAgIHB1YmxpYzoKKyAgICAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIGV4cGxpY2l0IFRpbWVyQmFzZShSdW5Mb29wKik7CisgICAgICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2aXJ0dWFsIH5UaW1lckJhc2UoKTsKKworICAgICAgICB2b2lkIHN0YXJ0UmVw
ZWF0aW5nKGRvdWJsZSByZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1
ZSk7IH0KKyAgICAgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0
KGludGVydmFsLCBmYWxzZSk7IH0KKworICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBz
dG9wKCk7CisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzQWN0aXZlKCkgY29uc3Q7
CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOworCisgICAgcHJpdmF0ZToKKyAg
ICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2
YWwsIGJvb2wgcmVwZWF0KTsKKworICAgICAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisKKyNpZiBQ
TEFURk9STShXSU4pCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVp
bnQ2NF90IElEKTsKKyAgICAgICAgdWludDY0X3QgbV9JRDsKKyAgICAgICAgYm9vbCBtX2lzUmVw
ZWF0aW5nOworI2VsaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZp
cmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CisgICAgICAgIFJldGFpblB0cjxDRlJ1bkxv
b3BUaW1lclJlZj4gbV90aW1lcjsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICAgICAgc3RhdGlj
IGJvb2wgdGltZXJGaXJlZCh2b2lkKiBkYXRhKTsKKyAgICAgICAgRWNvcmVfVGltZXIqIG1fdGlt
ZXI7CisgICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZzsKKyNlbGlmIFVTRShHTElCKQorICAgICAg
ICBzdGF0aWMgZ2Jvb2xlYW4gdGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSop
OworICAgICAgICBnYm9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBl
YXRpbmc7IH0KKyAgICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7CisgICAgICAgIEdSZWZQ
dHI8R1NvdXJjZT4gbV90aW1lclNvdXJjZTsKKyAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGlu
ZzsKKyNlbmRpZgorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENs
YXNzPgorICAgIGNsYXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7CisgICAgcHVibGljOgor
ICAgICAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlv
bikoKTsKKworICAgICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xhc3Mq
IG8sIFRpbWVyRmlyZWRGdW5jdGlvbiBmKQorICAgICAgICAgICAgOiBUaW1lckJhc2UocnVuTG9v
cCkKKyAgICAgICAgICAgICwgbV9vYmplY3QobykKKyAgICAgICAgICAgICwgbV9mdW5jdGlvbihm
KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwg
dm9pZCBmaXJlZCgpIHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQorCisgICAgICAgIFRp
bWVyRmlyZWRDbGFzcyogbV9vYmplY3Q7CisgICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBtX2Z1
bmN0aW9uOworICAgIH07CisKKyAgICBjbGFzcyBIb2xkZXI7CisKK3ByaXZhdGU6CisgICAgUnVu
TG9vcCgpOworCisgICAgdm9pZCBwZXJmb3JtV29yaygpOworCisgICAgTXV0ZXggbV9mdW5jdGlv
blF1ZXVlTG9jazsKKyAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX2Z1bmN0aW9uUXVldWU7
CisKKyNpZiBQTEFURk9STShXSU4pCisgICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJSdW5Mb29wTWVz
c2FnZVdpbmRvd0NsYXNzKCk7CisgICAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcFdu
ZFByb2MoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOworICAgIExSRVNVTFQgd25kUHJvYyhI
V05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7Cisg
ICAgSFdORCBtX3J1bkxvb3BNZXNzYWdlV2luZG93OworCisgICAgdHlwZWRlZiBIYXNoTWFwPHVp
bnQ2NF90LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKKyAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVy
czsKKyNlbGlmIFBMQVRGT1JNKE1BQykKKyAgICBzdGF0aWMgdm9pZCBwZXJmb3JtV29yayh2b2lk
Kik7CisgICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4gbV9ydW5Mb29wOworICAgIFJldGFpblB0
cjxDRlJ1bkxvb3BTb3VyY2VSZWY+IG1fcnVuTG9vcFNvdXJjZTsKKyAgICBpbnQgbV9uZXN0aW5n
TGV2ZWw7CisjZWxpZiBQTEFURk9STShFRkwpCisgICAgYm9vbCBtX2luaXRFZmw7CisKKyAgICBN
dXRleCBtX3BpcGVMb2NrOworICAgIE93blB0cjxFY29yZV9QaXBlPiBtX3BpcGU7CisKKyAgICBN
dXRleCBtX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jazsKKyAgICBib29sIG1fd2FrZVVwRXZlbnRS
ZXF1ZXN0ZWQ7CisKKyAgICBzdGF0aWMgdm9pZCB3YWtlVXBFdmVudCh2b2lkKiBkYXRhLCB2b2lk
KiwgdW5zaWduZWQpOworI2VsaWYgVVNFKEdMSUIpCitwdWJsaWM6CisgICAgc3RhdGljIGdib29s
ZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7CisgICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wKCk7
CisgICAgdm9pZCBwdXNoTmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKik7CisgICAgdm9pZCBwb3BO
ZXN0ZWRNYWluTG9vcCgpOworcHJpdmF0ZToKKyAgICBHUmVmUHRyPEdNYWluQ29udGV4dD4gbV9y
dW5Mb29wQ29udGV4dDsKKyAgICBWZWN0b3I8R1JlZlB0cjxHTWFpbkxvb3A+PiBtX3J1bkxvb3BN
YWluTG9vcHM7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6
OlJ1bkxvb3A7CisKKyNlbmRpZiAvLyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dURi93dGYvYmxh
Y2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJiODZiNWI1MTE4NTE3
NzA0MjVmNGQ5MjhmM2RmODVkZjFkZTQ2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKwor
bmFtZXNwYWNlIFdURiB7CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jZi9S
dW5Mb29wQ0YuY3BwIGIvU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45Njc1ODY3MDI2MTE0YzI1ODJhNzExOWJmM2Q2MzU5NDI5ODYzMWNhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNwcApAQCAtMCwwICsxLDEyOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29w
LmgiCisKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2luY2x1
ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CisjaW5jbHVkZSA8d3RmL0F1dG9kcmFpbmVkUG9vbC5o
PgorCituYW1lc3BhY2UgV1RGIHsKKwordm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yayh2b2lkKiBj
b250ZXh0KQoreworICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOworICAgIHN0YXRpY19jYXN0PFJ1
bkxvb3AqPihjb250ZXh0KS0+cGVyZm9ybVdvcmsoKTsKK30KKworUnVuTG9vcDo6UnVuTG9vcCgp
CisgICAgOiBtX3J1bkxvb3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKQorICAgICwgbV9uZXN0aW5n
TGV2ZWwoMCkKK3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VDb250ZXh0IGNvbnRleHQgPSB7IDAsIHRo
aXMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIHBlcmZvcm1Xb3JrIH07CisgICAgbV9ydW5Mb29wU291
cmNlID0gYWRvcHRDRihDRlJ1bkxvb3BTb3VyY2VDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
MCwgJmNvbnRleHQpKTsKKyAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLmdldCgpLCBt
X3J1bkxvb3BTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Cit9CisKK1J1bkxv
b3A6On5SdW5Mb29wKCkKK3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VJbnZhbGlkYXRlKG1fcnVuTG9v
cFNvdXJjZS5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuRm9yRHVyYXRpb24oZG91Ymxl
IGR1cmF0aW9uKQoreworICAgIENGUnVuTG9vcFJ1bkluTW9kZShrQ0ZSdW5Mb29wRGVmYXVsdE1v
ZGUsIGR1cmF0aW9uLCB0cnVlKTsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAg
IENGUnVuTG9vcFNvdXJjZVNpZ25hbChtX3J1bkxvb3BTb3VyY2UuZ2V0KCkpOworICAgIENGUnVu
TG9vcFdha2VVcChtX3J1bkxvb3AuZ2V0KCkpOworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7
CisgICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCsrOworICAgIAorICAgIHsKKyAgICAgICAg
QXV0b2RyYWluZWRQb29sIHBvb2w7CisgICAgICAgIENGUnVuTG9vcFJ1bigpOworICAgIH0KKyAg
ICAKKyAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsLS07Cit9CisKK3ZvaWQgUnVuTG9vcDo6
c3RvcCgpCit7CisgICAgQVNTRVJUKG1fcnVuTG9vcCA9PSBDRlJ1bkxvb3BHZXRDdXJyZW50KCkp
OworICAgIENGUnVuTG9vcFN0b3AobV9ydW5Mb29wLmdldCgpKTsKK30KKworLy8gUnVuTG9vcDo6
VGltZXIKKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGlt
ZXJSZWYsIHZvaWQqIGNvbnRleHQpCit7CisgICAgVGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19j
YXN0PFRpbWVyQmFzZSo+KGNvbnRleHQpOworCisgICAgQXV0b2RyYWluZWRQb29sIHBvb2w7Cisg
ICAgdGltZXItPmZpcmVkKCk7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1
bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKK3sKK30KKworUnVuTG9v
cDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVu
TG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBl
YXQpCit7CisgICAgaWYgKG1fdGltZXIpCisgICAgICAgIHN0b3AoKTsKKyAgICAKKyAgICBDRlJ1
bkxvb3BUaW1lckNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCB9OworICAgIENG
VGltZUludGVydmFsIHJlcGVhdEludGVydmFsID0gcmVwZWF0ID8gbmV4dEZpcmVJbnRlcnZhbCA6
IDA7CisgICAgbV90aW1lciA9IGFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBuZXh0RmlyZUludGVydmFs
LCByZXBlYXRJbnRlcnZhbCwgMCwgMCwgdGltZXJGaXJlZCwgJmNvbnRleHQpKTsKKyAgICBDRlJ1
bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcC5nZXQoKSwgbV90aW1lci5nZXQoKSwg
a0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0
b3AoKQoreworICAgIGlmICghbV90aW1lcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIENG
UnVuTG9vcFRpbWVySW52YWxpZGF0ZShtX3RpbWVyLmdldCgpKTsKKyAgICBtX3RpbWVyID0gbnVs
bHB0cjsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV90aW1lciAmJiBDRlJ1bkxvb3BUaW1lcklzVmFsaWQobV90aW1lci5nZXQo
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
ZWZsL1J1bkxvb3BFZmwuY3BwIGIvU291cmNlL1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRhMzg0OTdlYjM1NTRjMmU2MDBhMzZmZWI0ODkzMWY1ZGZjMWFlOGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvUnVuTG9vcEVmbC5jcHAKQEAgLTAsMCAr
MSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVtYmVkZGVkIHN5
c3RlbXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPEVjb3JlLmg+CisjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK3N0YXRpYyBjb25zdCBp
bnQgZWNvcmVQaXBlTWVzc2FnZVNpemUgPSAxOworc3RhdGljIGNvbnN0IGNoYXIgd2FrdXBFY29y
ZVBpcGVNZXNzYWdlW10gPSAiVyI7CisKK25hbWVzcGFjZSBXVEYgeworCitSdW5Mb29wOjpSdW5M
b29wKCkKKyAgICA6IG1faW5pdEVmbChmYWxzZSkKKyAgICAsIG1fd2FrZVVwRXZlbnRSZXF1ZXN0
ZWQoZmFsc2UpCit7CisgICAgbV9waXBlID0gYWRvcHRQdHIoZWNvcmVfcGlwZV9hZGQod2FrZVVw
RXZlbnQsIHRoaXMpKTsKKyAgICBtX2luaXRFZmwgPSB0cnVlOworfQorCitSdW5Mb29wOjp+UnVu
TG9vcCgpCit7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBlY29yZV9tYWluX2xv
b3BfYmVnaW4oKTsKK30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAgICBlY29yZV9tYWlu
X2xvb3BfcXVpdCgpOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcEV2ZW50KHZvaWQqIGRhdGEs
IHZvaWQqLCB1bnNpZ25lZCkKK3sKKyAgICBSdW5Mb29wKiBsb29wID0gc3RhdGljX2Nhc3Q8UnVu
TG9vcCo+KGRhdGEpOworCisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobG9vcC0+
bV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2spOworICAgICAgICBsb29wLT5tX3dha2VVcEV2ZW50
UmVxdWVzdGVkID0gZmFsc2U7CisgICAgfQorCisgICAgbG9vcC0+cGVyZm9ybVdvcmsoKTsKK30K
Kwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWRMb2NrKTsKKyAgICAgICAgaWYgKG1fd2FrZVVw
RXZlbnRSZXF1ZXN0ZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fd2FrZVVwRXZl
bnRSZXF1ZXN0ZWQgPSB0cnVlOworICAgIH0KKworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fcGlwZUxvY2spOworICAgICAgICBlY29yZV9waXBlX3dyaXRlKG1fcGlwZS5nZXQo
KSwgd2FrdXBFY29yZVBpcGVNZXNzYWdlLCBlY29yZVBpcGVNZXNzYWdlU2l6ZSk7CisgICAgfQor
fQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKikKKyAgICA6IG1fdGlt
ZXIoMCkKKyAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCit7Cit9CisKK1J1bkxvb3A6OlRpbWVy
QmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCitib29sIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6dGltZXJGaXJlZCh2b2lkKiBkYXRhKQoreworICAgIFJ1bkxvb3A6OlRpbWVyQmFz
ZSogdGltZXIgPSBzdGF0aWNfY2FzdDxSdW5Mb29wOjpUaW1lckJhc2UqPihkYXRhKTsKKworICAg
IGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpCisgICAgICAgIHRpbWVyLT5tX3RpbWVyID0gMDsK
KworICAgIHRpbWVyLT5maXJlZCgpOworCisgICAgcmV0dXJuIHRpbWVyLT5tX2lzUmVwZWF0aW5n
ID8gRUNPUkVfQ0FMTEJBQ0tfUkVORVcgOiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7Cit9CisKK3Zv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9v
bCByZXBlYXQpCit7CisgICAgaWYgKGlzQWN0aXZlKCkpCisgICAgICAgIHN0b3AoKTsKKworICAg
IG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgQVNTRVJUKCFtX3RpbWVyKTsKKyAgICBtX3Rp
bWVyID0gZWNvcmVfdGltZXJfYWRkKG5leHRGaXJlSW50ZXJ2YWwsIHJlaW50ZXJwcmV0X2Nhc3Q8
RWNvcmVfVGFza19DYj4odGltZXJGaXJlZCksIHRoaXMpOworfQorCit2b2lkIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKG1fdGltZXIpIHsKKyAgICAgICAgZWNvcmVfdGlt
ZXJfZGVsKG1fdGltZXIpOworICAgICAgICBtX3RpbWVyID0gMDsKKyAgICB9Cit9CisKK2Jvb2wg
UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChtX3Rp
bWVyKSA/IHRydWUgOiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9ndGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9ndGsv
UnVuTG9vcEd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2YyN2FhZmI5NTZiOTcyN2M5NTViN2ZhYTgyNDQ0
YTQ5MjY0NTkzZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2d0ay9SdW5Mb29w
R3RrLmNwcApAQCAtMCwwICsxLDE3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIw
MTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRl
IDxnZGsvZ2RrLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorCisjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQoreworICAgIC8v
IGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKSBkb2Vzbid0IGFkZCBhbiBleHRyYSByZWZlcmVuY2Uu
CisgICAgbV9ydW5Mb29wQ29udGV4dCA9IGlzTWFpblRocmVhZCgpID8gZ19tYWluX2NvbnRleHRf
ZGVmYXVsdCgpIDogYWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0X25ldygpKTsKKyAgICBBU1NFUlQo
bV9ydW5Mb29wQ29udGV4dCk7CisgICAgR1JlZlB0cjxHTWFpbkxvb3A+IGlubmVybW9zdExvb3Ag
PSBhZG9wdEdSZWYoZ19tYWluX2xvb3BfbmV3KG1fcnVuTG9vcENvbnRleHQuZ2V0KCksIEZBTFNF
KSk7CisgICAgQVNTRVJUKGlubmVybW9zdExvb3ApOworICAgIG1fcnVuTG9vcE1haW5Mb29wcy5h
cHBlbmQoaW5uZXJtb3N0TG9vcCk7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBm
b3IgKGludCBpID0gbV9ydW5Mb29wTWFpbkxvb3BzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7
CisgICAgICAgIGlmICghZ19tYWluX2xvb3BfaXNfcnVubmluZyhtX3J1bkxvb3BNYWluTG9vcHNb
aV0uZ2V0KCkpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGdfbWFpbl9sb29wX3F1
aXQobV9ydW5Mb29wTWFpbkxvb3BzW2ldLmdldCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUnVuTG9v
cDo6cnVuKCkKK3sKKyAgICBSdW5Mb29wKiBtYWluUnVuTG9vcCA9IFJ1bkxvb3A6OmN1cnJlbnQo
KTsKKyAgICBHTWFpbkxvb3AqIGlubmVybW9zdExvb3AgPSBtYWluUnVuTG9vcC0+aW5uZXJtb3N0
TG9vcCgpOworICAgIGlmICghZ19tYWluX2xvb3BfaXNfcnVubmluZyhpbm5lcm1vc3RMb29wKSkg
eworICAgICAgICBnX21haW5fbG9vcF9ydW4oaW5uZXJtb3N0TG9vcCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAvLyBDcmVhdGUgYW5kIHJ1biBhIG5lc3RlZCBsb29wIGlmIHRoZSBp
bm5lcm1vc3Qgb25lIHdhcyBhbHJlYWR5IHJ1bm5pbmcuCisgICAgR01haW5Mb29wKiBuZXN0ZWRN
YWluTG9vcCA9IGdfbWFpbl9sb29wX25ldygwLCBGQUxTRSk7CisgICAgbWFpblJ1bkxvb3AtPnB1
c2hOZXN0ZWRNYWluTG9vcChuZXN0ZWRNYWluTG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKG5l
c3RlZE1haW5Mb29wKTsKKyAgICBtYWluUnVuTG9vcC0+cG9wTmVzdGVkTWFpbkxvb3AoKTsKK30K
KworR01haW5Mb29wKiBSdW5Mb29wOjppbm5lcm1vc3RMb29wKCkKK3sKKyAgICAvLyBUaGUgaW5u
ZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9y
dW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7CisgICAgcmV0dXJuIG1fcnVuTG9vcE1haW5Mb29w
c1swXS5nZXQoKTsKK30KKwordm9pZCBSdW5Mb29wOjpwdXNoTmVzdGVkTWFpbkxvb3AoR01haW5M
b29wKiBuZXN0ZWRMb29wKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3Vs
ZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0
eSgpKTsKKyAgICBtX3J1bkxvb3BNYWluTG9vcHMuYXBwZW5kKGFkb3B0R1JlZihuZXN0ZWRMb29w
KSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cG9wTmVzdGVkTWFpbkxvb3AoKQoreworICAgIC8vIFRo
ZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJU
KCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBtX3J1bkxvb3BNYWluTG9vcHMu
cmVtb3ZlTGFzdCgpOworfQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIC8vIFRoZSBp
bm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFt
X3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBHUmVmUHRyPEdNYWluTG9vcD4gbGFz
dE1haW5Mb29wID0gbV9ydW5Mb29wTWFpbkxvb3BzLmxhc3QoKTsKKyAgICBpZiAoZ19tYWluX2xv
b3BfaXNfcnVubmluZyhsYXN0TWFpbkxvb3AuZ2V0KCkpKQorICAgICAgICBnX21haW5fbG9vcF9x
dWl0KGxhc3RNYWluTG9vcC5nZXQoKSk7Cit9CisKK2dib29sZWFuIFJ1bkxvb3A6OnF1ZXVlV29y
ayhSdW5Mb29wKiBydW5Mb29wKQoreworICAgIHJ1bkxvb3AtPnBlcmZvcm1Xb3JrKCk7CisgICAg
cmV0dXJuIEZBTFNFOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgR1JlZlB0
cjxHU291cmNlPiBzb3VyY2UgPSBhZG9wdEdSZWYoZ19pZGxlX3NvdXJjZV9uZXcoKSk7CisgICAg
Z19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNvdXJjZS5nZXQoKSwgR19QUklPUklUWV9ERUZBVUxUKTsK
KyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2soc291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0
PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6cXVldWVXb3JrKSwgdGhpcywgMCk7CisgICAgZ19zb3Vy
Y2VfYXR0YWNoKHNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7CisKKyAgICBn
X21haW5fY29udGV4dF93YWtldXAobV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7Cit9CisKK1J1bkxv
b3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1bkxv
b3AocnVuTG9vcCkKKyAgICAsIG1fdGltZXJTb3VyY2UoMCkKK3sKK30KKworUnVuTG9vcDo6VGlt
ZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKCkKK3sKKyAgICBtX3RpbWVyU291cmNlID0gMDsK
K30KKworZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2soUnVu
TG9vcDo6VGltZXJCYXNlKiB0aW1lcikKK3sKKyAgICBHU291cmNlKiBjdXJyZW50VGltZXJTb3Vy
Y2UgPSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKTsKKyAgICBib29sIGlzUmVwZWF0aW5nID0g
dGltZXItPmlzUmVwZWF0aW5nKCk7CisgICAgLy8gVGhpcyBjYW4gY2hhbmdlIHRoZSB0aW1lclNv
dXJjZSBieSBzdGFydGluZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhlIGNhbGxiYWNrLgorICAgIGlm
ICghaXNSZXBlYXRpbmcgJiYgY3VycmVudFRpbWVyU291cmNlID09IHRpbWVyLT5tX3RpbWVyU291
cmNlLmdldCgpKQorICAgICAgICB0aW1lci0+Y2xlYXJUaW1lclNvdXJjZSgpOworCisgICAgdGlt
ZXItPmZpcmVkKCk7CisgICAgcmV0dXJuIGlzUmVwZWF0aW5nOworfQorCit2b2lkIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIGZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7Cisg
ICAgaWYgKG1fdGltZXJTb3VyY2UpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fdGltZXJTb3Vy
Y2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXcoc3RhdGljX2Nhc3Q8Z3VpbnQ+KGZp
cmVJbnRlcnZhbCAqIDEwMDApKSk7CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBn
X3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lclNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2Fz
dDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKSwg
dGhpcywgMCk7CisgICAgZ19zb3VyY2VfYXR0YWNoKG1fdGltZXJTb3VyY2UuZ2V0KCksIG1fcnVu
TG9vcC0+bV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJC
YXNlOjpzdG9wKCkKK3sKKyAgICBpZiAoIW1fdGltZXJTb3VyY2UpCisgICAgICAgIHJldHVybjsK
KworICAgIGdfc291cmNlX2Rlc3Ryb3kobV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgY2xlYXJU
aW1lclNvdXJjZSgpOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBj
b25zdAoreworICAgIHJldHVybiBtX3RpbWVyU291cmNlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzUzMWI2Mzk0YzQ4MmZj
MmQzOWVmZDZkMDgxNmJhZDVmZjBkNDY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvd2luL1J1bkxvb3BXaW4uY3BwCkBAIC0wLDAgKzEsMTc4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgY29uc3QgVUlOVCBQZXJm
b3JtV29ya01lc3NhZ2UgPSBXTV9VU0VSICsgMTsKK3N0YXRpYyBjb25zdCBMUFdTVFIga1J1bkxv
b3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lID0gTCJSdW5Mb29wTWVzc2FnZVdpbmRvdyI7CisKK0xS
RVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcDo6UnVuTG9vcFduZFByb2MoSFdORCBoV25kLCBVSU5UIG1l
c3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7CisgICAgaWYgKFJ1bkxvb3Aq
IHJ1bkxvb3AgPSBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oZ2V0V2luZG93UG9pbnRlcihoV25kLCAw
KSkpCisgICAgICAgIHJldHVybiBydW5Mb29wLT53bmRQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJh
bSwgbFBhcmFtKTsKKworICAgIGlmIChtZXNzYWdlID09IFdNX0NSRUFURSkgeworICAgICAgICBM
UENSRUFURVNUUlVDVCBjcmVhdGVTdHJ1Y3QgPSByZWludGVycHJldF9jYXN0PExQQ1JFQVRFU1RS
VUNUPihsUGFyYW0pOworCisgICAgICAgIC8vIEFzc29jaWF0ZSB0aGUgUnVuTG9vcCB3aXRoIHRo
ZSB3aW5kb3cuCisgICAgICAgIHNldFdpbmRvd1BvaW50ZXIoaFduZCwgMCwgY3JlYXRlU3RydWN0
LT5scENyZWF0ZVBhcmFtcyk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVy
biA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworfQorCitM
UkVTVUxUIFJ1bkxvb3A6OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3
UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7CisgICAgc3dpdGNoIChtZXNzYWdlKSB7CisgICAgY2Fz
ZSBQZXJmb3JtV29ya01lc3NhZ2U6CisgICAgICAgIHBlcmZvcm1Xb3JrKCk7CisgICAgICAgIHJl
dHVybiAwOworICAgIGNhc2UgV01fVElNRVI6CisgICAgICAgIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
dGltZXJGaXJlZCh0aGlzLCB3UGFyYW0pOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAg
ICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsK
K30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAgIE1TRyBtZXNzYWdlOworICAgIHdoaWxl
IChCT09MIHJlc3VsdCA9IDo6R2V0TWVzc2FnZSgmbWVzc2FnZSwgMCwgMCwgMCkpIHsKKyAgICAg
ICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICA6OlRyYW5z
bGF0ZU1lc3NhZ2UoJm1lc3NhZ2UpOworICAgICAgICA6OkRpc3BhdGNoTWVzc2FnZSgmbWVzc2Fn
ZSk7CisgICAgfQorfQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIDo6UG9zdFF1aXRN
ZXNzYWdlKDApOworfQorCitib29sIFJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5k
b3dDbGFzcygpCit7CisgICAgLy8gRklYTUU6IFRoaXMgcmVhbGx5IG9ubHkgbmVlZHMgdG8gYmUg
Y2FsbGVkIG9uY2UuCisKKyAgICBXTkRDTEFTUyB3aW5kb3dDbGFzcyA9IHsgMCB9OworICAgIHdp
bmRvd0NsYXNzLmxwZm5XbmRQcm9jICAgICA9IFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jOworICAg
IHdpbmRvd0NsYXNzLmNiV25kRXh0cmEgICAgICA9IHNpemVvZihSdW5Mb29wKik7CisgICAgd2lu
ZG93Q2xhc3MubHBzekNsYXNzTmFtZSAgID0ga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1l
OworCisgICAgcmV0dXJuICEhOjpSZWdpc3RlckNsYXNzKCZ3aW5kb3dDbGFzcyk7Cit9CisKK1J1
bkxvb3A6OlJ1bkxvb3AoKQoreworICAgIHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFz
cygpOworCisgICAgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdyA9IDo6Q3JlYXRlV2luZG93KGtSdW5M
b29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSwgMCwgMCwKKyAgICAgICAgQ1dfVVNFREVGQVVMVCwg
MCwgQ1dfVVNFREVGQVVMVCwgMCwgSFdORF9NRVNTQUdFLCAwLCAwLCB0aGlzKTsKKyAgICBBU1NF
UlQoOjpJc1dpbmRvdyhtX3J1bkxvb3BNZXNzYWdlV2luZG93KSk7Cit9CisKK1J1bkxvb3A6On5S
dW5Mb29wKCkKK3sKKyAgICAvLyBGSVhNRTogVGVhciBkb3duIHRoZSB3b3JrIGl0ZW0gcXVldWUg
aGVyZS4KK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIC8vIEZJWE1FOiBObyBu
ZWVkIHRvIHdha2UgdXAgdGhlIHJ1biBsb29wIGlmIHdlJ3ZlIGFscmVhZHkgY2FsbGVkIGRpc3Bh
dGNoCisgICAgLy8gYmVmb3JlIHRoZSBydW4gbG9vcCBoYXMgaGFkIHRoZSB0aW1lIHRvIHJlc3Bv
bmQuCisgICAgOjpQb3N0TWVzc2FnZShtX3J1bkxvb3BNZXNzYWdlV2luZG93LCBQZXJmb3JtV29y
a01lc3NhZ2UsIHJlaW50ZXJwcmV0X2Nhc3Q8V1BBUkFNPih0aGlzKSwgMCk7Cit9CisKKy8vIFJ1
bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxv
b3AqIHJ1bkxvb3AsIHVpbnQ2NF90IElEKQoreworICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9
IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQoSUQpOworICAgIGlmIChpdCA9PSBydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkgeworICAgICAgICAvLyBUaGUgdGltZXIgbXVzdCBoYXZl
IGJlZW4gc3RvcHBlZCBhZnRlciB0aGUgV01fVElNRVIgbWVzc2FnZSB3YXMgcG9zdGVkIHRvIHRo
ZSBtZXNzYWdlIHF1ZXVlLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVGltZXJCYXNl
KiB0aW1lciA9IGl0LT52YWx1ZTsKKworICAgIGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpIHsK
KyAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICAgICAgOjpL
aWxsVGltZXIocnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgSUQpOworICAgIH0KKwor
ICAgIHRpbWVyLT5maXJlZCgpOworfQorCitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVUaW1lcklE
KCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlVGltZXJJRCA9IDE7CisgICAgcmV0dXJu
IHVuaXF1ZVRpbWVySUQrKzsKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVu
TG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQorICAgICwgbV9JRChnZW5l
cmF0ZVRpbWVySUQoKSkKKyAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCit7Cit9CisKK1J1bkxv
b3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KQoreworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgbV9ydW5Mb29wLT5tX2Fj
dGl2ZVRpbWVycy5zZXQobV9JRCwgdGhpcyk7CisgICAgOjpTZXRUaW1lcihtX3J1bkxvb3AtPm1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQsIG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwLCAwKTsK
K30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQoreworICAgIFRpbWVyTWFwOjpp
dGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChtX0lEKTsKKyAgICBp
ZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOworICAgIDo6S2ls
bFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCk7Cit9CisKK2Jv
b2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzNDIwYjYyMjUyMzkwZjU1YWYxN2QwM2Zh
ODhiMDUzZTI1ZjQ2YmUyLi5mODk1OWVkNGE0ZTFhYTAxMTMzNzc1ZWYxNWEzMzY2NGRiN2VhNGNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTc4NSw3ICsxNzg1LDYgQEAgc2V0KFdlYkNvcmVf
U09VUkNFUwogICAgIHBsYXRmb3JtL05vdEltcGxlbWVudGVkLmNwcAogICAgIHBsYXRmb3JtL1Bs
YXRmb3JtRXZlbnQuY3BwCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAotICAg
IHBsYXRmb3JtL1J1bkxvb3AuY3BwCiAgICAgcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmNwcAogICAgIHBsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAogICAgIHBsYXRmb3JtL1Nj
cm9sbEFuaW1hdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZTJiMjJi
ZDZjNjk2NDRlNjQ5OGQ2MmMzMTFmNmQxN2EzZDJiMzk5NC4uZjhjMDQ1MDRlNGRjOTJhMmViOGNm
OGIzMTkyMzgyMjMwNjliOGRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC02
MDE1LDggKzYwMTUsNiBAQCBwbGF0Zm9ybV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVm
ZXJyZXJQb2xpY3kuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVmQ291bnRlZFN1cHBs
ZW1lbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAgXAotCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nl
YXJjaFBvcHVwTWVudS5oIFwKQEAgLTYxNzYsNyArNjE3NCw2IEBAIHBsYXRmb3JtZ3RrX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRH
dGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3Rr
LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggOGNkMmZkY2Y3ZWNlNzk2OTQ0OTEwMzQ1Zjk1
NmQ1MzI0YTcyZWI2MS4uMWEwNDQ1MGZjOTllY2Q4YTdlZTUzYTA4ZTVjNGNmNGQzZDhjNmZkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtMTIwLDcgKzEyMCw2
IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkv
UGxhdGZvcm1Ub3VjaFBvaW50QmxhY2tCZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5
L1BvcHVwTWVudUJsYWNrQmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9SZW5kZXJU
aGVtZUJsYWNrQmVycnkuY3BwCi0gICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tC
ZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1NTTEtleUdlbmVyYXRvckJsYWNrQmVy
cnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9TY3JvbGxiYXJUaGVtZUJsYWNrQmVycnku
Y3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9TZWFyY2hQb3B1cE1lbnVCbGFja0JlcnJ5LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAwZWE1MGUxYTJkNmE0NWZjMDc5N2MxZTc2
ZDM4ZjA3ZjFhMzUzOGY5Li4yZGJjYzcwMjJjMjgxNzU2OWU2NWE2NjIxZDE2ZjFjNjU3Mzg1Mjdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtODIsNyArODIsNiBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3Bw
CiAgICAgcGxhdGZvcm0vZWZsL1BsYXRmb3JtV2hlZWxFdmVudEVmbC5jcHAKICAgICBwbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCi0gICAgcGxhdGZvcm0vZWZsL1J1bkxvb3BFZmwuY3Bw
CiAgICAgcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvU2Ny
b2xsYmFyVGhlbWVFZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1NoYXJlZFRpbWVyRWZsLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA4ZmY4MWY4ZTA1MDI2MjZhOGZkMTM1ODg5NjQy
YTAwYjkzNGI4M2RhLi4yZDY3OWFlYjg3OWExYjVlYTBmMjViYmY3MzJmYjk4OTAxMTcwZDNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTY0LDcgKzE2NCw2IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKICAg
ICBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcAogICAgIHBsYXRmb3JtL2d0ay9SZW5k
ZXJUaGVtZUd0azMuY3BwCi0gICAgcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCiAgICAgcGxh
dGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCiAgICAgcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRo
ZW1lR3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0azIuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IDhkYWJlZDNlNDFlOGY5M2NhY2VjNDEzYzM5ZTUxZTRl
N2FjNmVlNzUuLmVkYzViNzViNzExZDVlYzU3NjY2MTc4MDkzNmFiNWIwYTU3YTNhNWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtV2luLmNtYWtlCkBAIC01MSw3ICs1MSw2IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUwogICAgIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCiAg
ICAgcGxhdGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9Q
b3B1cE1lbnVXaW4uY3BwCi0gICAgcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwCiAgICAgcGxh
dGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vU2Nyb2xs
YmFyVGhlbWVXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZDQ3YmEwODg2MmNlMmZjOWM1YzUxMmMwZmNhOWJmYTMz
YWVjNjQ1YS4uNjYwNWNhZjhjOWJjNDBmYzZhYWIwOTg5MDU4NDc4MTI3ODdmNjM3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KQEAgLTEwOTEsMTkgKzEwOTEsNiBAQCBfX1pON1dlYkNvcmU3SW50UmVj
dDlpbnRlcnNlY3RFUktTMF8KIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU18xMExheW91dFJl
Y3RFCiBfX1pON1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfOUZsb2F0UmVjdEUKIF9fWk43V2ViQ29y
ZTdJbnRTaXplQzFFUks2Q0dTaXplCi1fX1pON1dlYkNvcmU3UnVuTG9vcDE0cnVuRm9yRHVyYXRp
b25FZAotX19aTjdXZWJDb3JlN1J1bkxvb3AyMWluaXRpYWxpemVNYWluUnVuTG9vcEV2Ci1fX1pO
N1dlYkNvcmU3UnVuTG9vcDNydW5FdgotX19aTjdXZWJDb3JlN1J1bkxvb3A0bWFpbkV2Ci1fX1pO
N1dlYkNvcmU3UnVuTG9vcDRzdG9wRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wNmlzTWFpbkV2Ci1f
X1pON1dlYkNvcmU3UnVuTG9vcDZ3YWtlVXBFdgotX19aTjdXZWJDb3JlN1J1bkxvb3A3Y3VycmVu
dEV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDhkaXNwYXRjaEVSS04zV1RGOEZ1bmN0aW9uSUZ2dkVF
RQotX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlNHN0b3BFdgotX19aTjdXZWJDb3JlN1J1
bkxvb3A5VGltZXJCYXNlNXN0YXJ0RWRiCi1fX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2VD
MkVQUzBfCi1fX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2VEMkV2CiBfX1pON1dlYkNvcmU3
VGV4dFJ1bjE5YWxsb3dzUm91bmRpbmdIYWNrc0V2CiBfX1pON1dlYkNvcmU3VGV4dFJ1bjIxc19h
bGxvd3NSb3VuZGluZ0hhY2tzRQogX19aTjdXZWJDb3JlN1RleHRSdW4yMnNldEFsbG93c1JvdW5k
aW5nSGFja3NFYgpAQCAtMTcyOSw3ICsxNzE2LDYgQEAgX19aTks3V2ViQ29yZTdFbGVtZW50MTli
ZWZvcmVQc2V1ZG9FbGVtZW50RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdDEwaW50ZXJzZWN0c0VS
S1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCiBfX1pOSzdXZWJDb3Jl
N0ludFJlY3RjdjZDR1JlY3RFdgotX19aTks3V2ViQ29yZTdSdW5Mb29wOVRpbWVyQmFzZThpc0Fj
dGl2ZUV2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTFjb21wbGV0ZVVSTEVSS04zV1RGNlN0cmlu
Z0UKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxM2F4T2JqZWN0Q2FjaGVFdgogX19aTks3V2ViQ29y
ZThEb2N1bWVudDMxZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZ0VSS04zV1RGNlN0cmlu
Z0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmlu
ZGV4IDJmNWNmZWJhOGU3ZDI2MWMzNTIwOTk4ZWMyMTczYzlhMjY3MzY0ZDIuLjRjYjk2ZTI3ZjAz
NDA2OTYwYWUzNjBhZTczYTJhN2E0NTgxMWQzNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNzI0Niw3ICs3MjQ2LDYgQEAKICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXE5vdEltcGxlbWVudGVkLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFBsYXRmb3JtRXZlbnQuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFJ1bkxvb3AuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNjaGVt
ZVJlZ2lzdHJ5LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNj
cm9sbGFibGVBcmVhLmNwcCIgLz4KQEAgLTczMDUsNyArNzMwNCw2IEBACiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxQbGF0Zm9ybVNjcmVlbldp
bi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cUG9wdXBN
ZW51V2luLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxS
dW5Mb29wV2luLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdp
blxTY3JvbGxiYXJUaGVtZVNhZmFyaS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVx3aW5cU2Nyb2xsYmFyVGhlbWVXaW4uY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFNlYXJjaFBvcHVwTWVudVdpbi5jcHAiIC8+CkBAIC0x
ODczOCw3ICsxODczNiw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxQ
b3B1cE1lbnVTdHlsZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
UHVyZ2VhYmxlQnVmZmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxSZWZlcnJlclBvbGljeS5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZv
cm1cUnVuTG9vcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxw
bGF0Zm9ybVxTY2hlbWVSZWdpc3RyeS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cU2Nyb2xsYWJsZUFyZWEuaCIgLz4KQEAgLTIwNjI1LDQgKzIwNjIyLDQgQEAKICAg
PEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVkNUYXJnZXRzUGF0aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdldHMiIC8+
CiAgIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGJhYjNiZTIzYWEyNjcxZmU1YTFjZDE1OWJhOTY4N2IzZDE5NmY0
NjguLmNiMDIxMjk2Y2Y4M2Q0NTc4YzA4ZWZiODJmOWUwOWM5YjUyZTQyNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxMCw3
ICs5MTAsNiBAQAogCQkyOTdCRTNENzE2QzAzQzBFMDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjlFNEQ4REYxNkIwOTQwRjAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIu
aCAqLzsgfTsKIAkJMjk3QkUzRDgxNkMwM0NDRTAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyOUU0RDhFMDE2QjA5NTk4MDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1hYy5tbSAqLzsgfTsKIAkJMjk3QkUzREExNkMwNDNEODAwMzMxNkJEIC8qIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjk3QkUzRDkxNkMwNDNEODAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIuY3BwICovOyB9OwotCQkyOUEzMDlBQzE1NjFDOTlCMDBCQkQ4RTUgLyogUnVuTG9vcENG
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTMw
OUFCMTU2MUM5OUIwMEJCRDhFNSAvKiBSdW5Mb29wQ0YuY3BwICovOyB9OwogCQkyOUE4MTIyQjBG
QkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwRDBGQkI5QzFEMDA1MTAyOTMgLyog
QWNjZXNzaWJpbGl0eVRhYmxlLmggKi87IH07CiAJCTI5QTgxMjJDMEZCQjlDMUQwMDUxMDI5MyAv
KiBBY2Nlc3NpYmlsaXR5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjlBODEyMEUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlMaXN0
LmggKi87IH07CiAJCTI5QTgxMjJFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJ
QUdyaWRDZWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyOUE4MTIxMDBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5o
ICovOyB9OwpAQCAtNDY5Myw4ICs0NjkyLDYgQEAKIAkJQkMwNkVFMDQwQkZENzFBQTAwODU2RTlE
IC8qIEpTSFRNTFRhYmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzA2RUUwMjBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFibGVF
bGVtZW50LmNwcCAqLzsgfTsKIAkJQkMwNkVFMDUwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRh
YmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkMwNkVFMDMwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5oICovOyB9
OwogCQlCQzA3M0JBQTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252ZXJzaW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA3M0JBOTBDMzk5QjFG
MDAwRjU5NzkgLyogRmxvYXRDb252ZXJzaW9uLmggKi87IH07Ci0JCUJDMEIzNTg3MTRDNEY5ODMw
MDU1RTIyQSAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMEIzNTg1MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLzsg
fTsKLQkJQkMwQjM1ODgxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTg2MTRDNEY5ODMwMDU1RTIy
QSAvKiBSdW5Mb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkMwQjM2QTQwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM2QTEwQ0QzQzY3QzAw
QUM3RUI1IC8qIENvbnNvbGUuY3BwICovOyB9OwogCQlCQzBCMzZBNTBDRDNDNjdDMDBBQzdFQjUg
LyogQ29uc29sZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkMwQjM2QTIwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzEwRDc2NzE3RDhFRTZFMDA1RTI2
MjYgLyogUmVuZGVyQmxvY2tGbG93LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRkI0NUY0MTdEOEU0OTQwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zs
b3cuY3BwICovOyB9OwpAQCAtNzQwNiw3ICs3NDAzLDYgQEAKIAkJMjk4MUNBQUYxMzE4MjJFQzAw
RDEyRjJBIC8qIEFYT2JqZWN0Q2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVhPYmplY3RD
YWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5ODU3MDkyMTVDQzUzMkQw
MDYzNTVDRCAvKiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI5ODU3MDkzMTVDQzUzMkQwMDYzNTVDRCAvKiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkyOUEzMDlBQjE1NjFDOTlCMDBCQkQ4RTUgLyogUnVuTG9vcENGLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3BDRi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjBEMEZCQjlDMUQwMDUxMDI5MyAvKiBB
Y2Nlc3NpYmlsaXR5VGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNj
ZXNzaWJpbGl0eVRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjBF
MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5TGlzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyOUE4MTIxMDBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5
QVJJQUdyaWRDZWxsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTU2NSw4ICsx
MTU2MSw2IEBACiAJCUJDMDZGMjRDMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRQ
cm9jZXNzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCUJDMDZGMjREMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yTGli
eHNsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlCQzA3M0JBOTBDMzk5QjFGMDAwRjU5
NzkgLyogRmxvYXRDb252ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGbG9hdENvbnZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMwQjM1
ODUxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUnVuTG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUJDMEIzNTg2MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJ1bkxvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMwQjM2QTEwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnNvbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzBCMzZBMjBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzBCMzZBMzBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IENvbnNvbGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTM5NzQsNyArMTM5NjgsNiBAQAogCQkJCUUxQThFNTY1MTc1NTJCMkEwMDc0ODhFNyAvKiBD
RlVSTEV4dHJhcy5oICovLAogCQkJCTUxNjAzMDZCMENDNDM2MjMwMEM4QUMyNSAvKiBGaWxlU3lz
dGVtQ0YuY3BwICovLAogCQkJCTFBOTg5NTZBMEFBNzhGODAwMDVFRjVFRiAvKiBVUkxDRi5jcHAg
Ki8sCi0JCQkJMjlBMzA5QUIxNTYxQzk5QjAwQkJEOEU1IC8qIFJ1bkxvb3BDRi5jcHAgKi8sCiAJ
CQkJNTEyREQ4RTIwRDkxRTJCNDAwMEY4OUVFIC8qIFNoYXJlZEJ1ZmZlckNGLmNwcCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gY2Y7CkBAIC0xOTg0Myw4ICsxOTgzNiw2IEBACiAJCQkJN0UzM0NEMDAx
MjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLywKIAkJCQlBNzJFQTNCQTE1ODVD
RjU1MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCAqLywKIAkJCQk5ODMxQUU0OTE1
NDIyNUEyMDBGRTI2NDQgLyogUmVmZXJyZXJQb2xpY3kuaCAqLywKLQkJCQlCQzBCMzU4NTE0QzRG
OTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8sCi0JCQkJQkMwQjM1ODYxNEM0Rjk4MzAwNTVF
MjJBIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkyOTNFQUUyMDEzNTZCMzJFMDA2N0FDRjkgLyogUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAqLywKIAkJCQkyOTNFQUUxRTEzNTZCMkZFMDA2N0FD
RjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8sCiAJCQkJNTE2MkM3RjIxMUY3N0VG
QTAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmNwcCAqLywKQEAgLTIzODUxLDcgKzIzODQyLDYg
QEAKIAkJCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3OUJBREEyMTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlRmVhdHVyZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTc5QkFEQTQxNjFFN0YzRjAwQzJFNjUyIC8qIFJ1bGVTZXQuaCBp
biBIZWFkZXJzICovLAotCQkJCUJDMEIzNTg4MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQxRjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9h
cnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1
bnRpbWVfbWV0aG9kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQyMzBEN0UyQjgyMDA3QzM5
ODMgLyogcnVudGltZV9vYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMjUsOCArMjcwMTUs
NiBAQAogCQkJCUE3OUJBREExMTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlRmVhdHVyZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBNzlCQURBMzE2MUU3RjNGMDBDMkU2NTIgLyogUnVsZVNldC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwMjE3RDE0Q0VFMDA0MjBBQTEgLyogTWVkaWFTdHJl
YW1UcmFjay5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQzBCMzU4NzE0QzRGOTgzMDA1NUUyMkEg
LyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkyOUEzMDlBQzE1NjFDOTlCMDBCQkQ4
RTUgLyogUnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDMkJERDNEMTdDN0Y5OEMw
MDM4RkYxNSAvKiBKU0RPTUdsb2JhbE9iamVjdFRhc2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUE1NjlEMUUwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUE1NjlEMjAwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9v
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2E0ZWRkNTY4OWY3MThjZTI1NjBhNDBjYjI3M2I3N2Q3NzUzYzkw
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3Au
aCIKLQotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFk
U3BlY2lmaWMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgUnVuTG9vcCogc19t
YWluUnVuTG9vcDsKLQotLy8gSGVscGVyIGNsYXNzIGZvciBUaHJlYWRTcGVjaWZpY0RhdGEuCi1j
bGFzcyBSdW5Mb29wOjpIb2xkZXIgewotcHVibGljOgotICAgIEhvbGRlcigpCi0gICAgICAgIDog
bV9ydW5Mb29wKGFkb3B0UmVmKG5ldyBSdW5Mb29wKSkKLSAgICB7Ci0gICAgfQotCi0gICAgUnVu
TG9vcCogcnVuTG9vcCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuTG9vcC5nZXQoKTsgfQotCi1wcml2
YXRlOgotICAgIFJlZlB0cjxSdW5Mb29wPiBtX3J1bkxvb3A7Ci19OwotCi12b2lkIFJ1bkxvb3A6
OmluaXRpYWxpemVNYWluUnVuTG9vcCgpCi17Ci0gICAgaWYgKHNfbWFpblJ1bkxvb3ApCi0gICAg
ICAgIHJldHVybjsKLSAgICBzX21haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOwotfQot
Ci1SdW5Mb29wKiBSdW5Mb29wOjpjdXJyZW50KCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcDo6SG9sZGVyPiwgcnVuTG9vcEhvbGRlciwgKCkp
OwotICAgIHJldHVybiBydW5Mb29wSG9sZGVyLT5ydW5Mb29wKCk7Ci19Ci0KLVJ1bkxvb3AqIFJ1
bkxvb3A6Om1haW4oKQotewotICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKLSAgICByZXR1cm4g
c19tYWluUnVuTG9vcDsKLX0KLQotYm9vbCBSdW5Mb29wOjppc01haW4oKQotewotICAgIEFTU0VS
VChzX21haW5SdW5Mb29wKTsKLSAgICByZXR1cm4gc19tYWluUnVuTG9vcCA9PSBSdW5Mb29wOjpj
dXJyZW50KCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKQotewotICAgIC8vIEl0
IGlzIGltcG9ydGFudCB0byBoYW5kbGUgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgcXVldWUgb25lIGF0
IGEgdGltZSBiZWNhdXNlIHdoaWxlIGluc2lkZSBvbmUgb2YgdGhlc2UKLSAgICAvLyBmdW5jdGlv
bnMgd2UgbWlnaHQgcmUtZW50ZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKSBhbmQgd2UgbmVlZCB0
byBiZSBhYmxlIHRvIHBpY2sgdXAgd2hlcmUgd2UgbGVmdCBvZmYuCi0gICAgLy8gU2VlIGh0dHA6
Ly93ZWJraXQub3JnL2IvODk1OTAgZm9yIG1vcmUgZGlzY3Vzc2lvbi4KLQotICAgIC8vIE9uZSBw
b3NzaWJsZSBzY2VuYXJpbyB3aGVuIGhhbmRsaW5nIHRoZSBmdW5jdGlvbiBxdWV1ZSBpcyBhcyBm
b2xsb3dzOgotICAgIC8vIC0gUnVuTG9vcDo6cGVyZm9ybVdvcmsoKSBpcyBpbnZva2VkIHdpdGgg
MSBmdW5jdGlvbiBvbiB0aGUgcXVldWUKLSAgICAvLyAtIEhhbmRsaW5nIHRoYXQgZnVuY3Rpb24g
cmVzdWx0cyBpbiAxIG1vcmUgZnVuY3Rpb24gYmVpbmcgZW5xdWV1ZWQKLSAgICAvLyAtIEhhbmRs
aW5nIHRoYXQgb25lIHJlc3VsdHMgaW4geWV0IGFub3RoZXIgYmVpbmcgZW5xdWV1ZWQKLSAgICAv
LyAtIEFuZCBzbyBvbgotICAgIC8vCi0gICAgLy8gSW4gdGhpcyBzaXR1YXRpb24gb25lIGludm9j
YXRpb24gb2YgcGVyZm9ybVdvcmsoKSBuZXZlciByZXR1cm5zIHNvIGFsbCBvdGhlciBldmVudCBz
b3VyY2VzIGFyZSBibG9ja2VkLgotICAgIC8vIEJ5IG9ubHkgaGFuZGxpbmcgdXAgdG8gdGhlIG51
bWJlciBvZiBmdW5jdGlvbnMgdGhhdCB3ZXJlIGluIHRoZSBxdWV1ZSB3aGVuIHBlcmZvcm1Xb3Jr
KCkgaXMgY2FsbGVkCi0gICAgLy8gd2UgZ3VhcmFudGVlIHRvIG9jY2FzaW9uYWxseSByZXR1cm4g
ZnJvbSB0aGUgcnVuIGxvb3Agc28gb3RoZXIgZXZlbnQgc291cmNlcyB3aWxsIGJlIGFsbG93ZWQg
dG8gc3Bpbi4KLQotICAgIEZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb247Ci0gICAgc2l6ZV90IGZ1
bmN0aW9uc1RvSGFuZGxlID0gMDsKLQotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgICAgICBmdW5jdGlvbnNUb0hhbmRsZSA9IG1fZnVu
Y3Rpb25RdWV1ZS5zaXplKCk7Ci0KLSAgICAgICAgaWYgKG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5
KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnVuY3Rpb24gPSBtX2Z1bmN0aW9u
UXVldWUudGFrZUZpcnN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24oKTsKLQotICAgIGZvciAo
c2l6ZV90IGZ1bmN0aW9uc0hhbmRsZWQgPSAxOyBmdW5jdGlvbnNIYW5kbGVkIDwgZnVuY3Rpb25z
VG9IYW5kbGU7ICsrZnVuY3Rpb25zSGFuZGxlZCkgewotICAgICAgICB7Ci0gICAgICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7Ci0KLSAgICAgICAgICAgIC8v
IEV2ZW4gaWYgd2Ugc3RhcnQgb2ZmIHdpdGggTiBmdW5jdGlvbnMgdG8gaGFuZGxlIGFuZCB3ZSd2
ZSBvbmx5IGhhbmRsZWQgbGVzcyB0aGFuIE4gZnVuY3Rpb25zLCB0aGUgcXVldWUKLSAgICAgICAg
ICAgIC8vIHN0aWxsIG1pZ2h0IGJlIGVtcHR5IGJlY2F1c2UgdGhvc2UgZnVuY3Rpb25zIG1pZ2h0
IGhhdmUgYmVlbiBoYW5kbGVkIGluIGFuIGlubmVyIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkuCi0g
ICAgICAgICAgICAvLyBJbiB0aGF0IGNhc2Ugd2Ugc2hvdWxkIGJhaWwgaGVyZS4KLSAgICAgICAg
ICAgIGlmIChtX2Z1bmN0aW9uUXVldWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGJyZWFr
OwotCi0gICAgICAgICAgICBmdW5jdGlvbiA9IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsK
LSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgZnVuY3Rpb24oKTsKLSAgICB9Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCi17
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgIG1fZnVu
Y3Rpb25RdWV1ZS5hcHBlbmQoZnVuY3Rpb24pOwotCi0gICAgd2FrZVVwKCk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1
bkxvb3AuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggODMyNzE2NDJlMWM4MjQxZjdiM2RmZDVhNzU1NTkxMTkwZmMwNGUz
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNzUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEg
TW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
UnVuTG9vcF9oCi0jZGVmaW5lIFJ1bkxvb3BfaAotCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0j
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25EaXNwYXRjaGVy
Lmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
Ci0KLSNpZiBVU0UoR0xJQikKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jZW5k
aWYKLQotI2lmIFBMQVRGT1JNKEVGTCkKLSNpbmNsdWRlIDxFY29yZS5oPgotI2VuZGlmCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlvbkRpc3Bh
dGNoZXIgewotcHVibGljOgotICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhy
ZWFkIChleGNlcHQgZm9yIHRoZSBNYWMgcGxhdGZvcm0sIHdoZXJlIGl0Ci0gICAgLy8gY2FuIGJl
IGNhbGxlZCBmcm9tIGFueSB0aHJlYWQpLgotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVNYWlu
UnVuTG9vcCgpOwotCi0gICAgc3RhdGljIFJ1bkxvb3AqIGN1cnJlbnQoKTsKLSAgICBzdGF0aWMg
UnVuTG9vcCogbWFpbigpOwotICAgIHN0YXRpYyBib29sIGlzTWFpbigpOwotICAgIH5SdW5Mb29w
KCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYp
IE9WRVJSSURFOwotCi0gICAgc3RhdGljIHZvaWQgcnVuKCk7Ci0gICAgdm9pZCBzdG9wKCk7Ci0g
ICAgdm9pZCB3YWtlVXAoKTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lkIHJ1bkZvckR1
cmF0aW9uKGRvdWJsZSBkdXJhdGlvbik7Ci0jZW5kaWYKLSAgICAKLSAgICBjbGFzcyBUaW1lckJh
c2UgewotICAgICAgICBmcmllbmQgY2xhc3MgUnVuTG9vcDsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IGV4cGxpY2l0IFRpbWVyQmFzZShSdW5Mb29wKik7Ci0gICAgICAgIHZpcnR1YWwgflRpbWVyQmFz
ZSgpOwotCi0gICAgICAgIHZvaWQgc3RhcnRSZXBlYXRpbmcoZG91YmxlIHJlcGVhdEludGVydmFs
KSB7IHN0YXJ0KHJlcGVhdEludGVydmFsLCB0cnVlKTsgfQotICAgICAgICB2b2lkIHN0YXJ0T25l
U2hvdChkb3VibGUgaW50ZXJ2YWwpIHsgc3RhcnQoaW50ZXJ2YWwsIGZhbHNlKTsgfQotCi0gICAg
ICAgIHZvaWQgc3RvcCgpOwotICAgICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Q7Ci0KLSAgICAg
ICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdm9p
ZCBzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpOwotCi0gICAgICAg
IFJ1bkxvb3AqIG1fcnVuTG9vcDsKLQotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgc3RhdGlj
IHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwgdWludDY0X3QgSUQpOwotICAgICAgICB1aW50NjRf
dCBtX0lEOwotICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7Ci0jZWxpZiBQTEFURk9STShNQUMp
Ci0gICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQq
KTsKLSAgICAgICAgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBtX3RpbWVyOwotI2VsaWYg
UExBVEZPUk0oRUZMKQotICAgICAgICBzdGF0aWMgYm9vbCB0aW1lckZpcmVkKHZvaWQqIGRhdGEp
OwotICAgICAgICBFY29yZV9UaW1lciogbV90aW1lcjsKLSAgICAgICAgYm9vbCBtX2lzUmVwZWF0
aW5nOwotI2VsaWYgVVNFKEdMSUIpCi0gICAgICAgIHN0YXRpYyBnYm9vbGVhbiB0aW1lckZpcmVk
Q2FsbGJhY2soUnVuTG9vcDo6VGltZXJCYXNlKik7Ci0gICAgICAgIGdib29sZWFuIGlzUmVwZWF0
aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc1JlcGVhdGluZzsgfQotICAgICAgICB2b2lkIGNsZWFy
VGltZXJTb3VyY2UoKTsKLSAgICAgICAgR1JlZlB0cjxHU291cmNlPiBtX3RpbWVyU291cmNlOwot
ICAgICAgICBnYm9vbGVhbiBtX2lzUmVwZWF0aW5nOwotI2VuZGlmCi0gICAgfTsKLQotICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3M+Ci0gICAgY2xhc3MgVGltZXIgOiBwdWJs
aWMgVGltZXJCYXNlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVkZWYgdm9pZCAoVGltZXJG
aXJlZENsYXNzOjoqVGltZXJGaXJlZEZ1bmN0aW9uKSgpOwotCi0gICAgICAgIFRpbWVyKFJ1bkxv
b3AqIHJ1bkxvb3AsIFRpbWVyRmlyZWRDbGFzcyogbywgVGltZXJGaXJlZEZ1bmN0aW9uIGYpCi0g
ICAgICAgICAgICA6IFRpbWVyQmFzZShydW5Mb29wKQotICAgICAgICAgICAgLCBtX29iamVjdChv
KQotICAgICAgICAgICAgLCBtX2Z1bmN0aW9uKGYpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0g
ICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgeyAobV9vYmplY3QtPipt
X2Z1bmN0aW9uKSgpOyB9Ci0KLSAgICAgICAgVGltZXJGaXJlZENsYXNzKiBtX29iamVjdDsKLSAg
ICAgICAgVGltZXJGaXJlZEZ1bmN0aW9uIG1fZnVuY3Rpb247Ci0gICAgfTsKLQotICAgIGNsYXNz
IEhvbGRlcjsKLQotcHJpdmF0ZToKLSAgICBSdW5Mb29wKCk7Ci0KLSAgICB2b2lkIHBlcmZvcm1X
b3JrKCk7Ci0KLSAgICBNdXRleCBtX2Z1bmN0aW9uUXVldWVMb2NrOwotICAgIERlcXVlPEZ1bmN0
aW9uPHZvaWQoKT4+IG1fZnVuY3Rpb25RdWV1ZTsKLQotI2lmIFBMQVRGT1JNKFdJTikKLSAgICBz
dGF0aWMgYm9vbCByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKLSAgICBzdGF0
aWMgTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wV25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQ
QVJBTSk7Ci0gICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFS
QU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKLSAgICBIV05EIG1fcnVuTG9vcE1lc3NhZ2VXaW5k
b3c7Ci0KLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFRpbWVyQmFzZSo+IFRpbWVyTWFw
OwotICAgIFRpbWVyTWFwIG1fYWN0aXZlVGltZXJzOwotI2VsaWYgUExBVEZPUk0oTUFDKQotICAg
IHN0YXRpYyB2b2lkIHBlcmZvcm1Xb3JrKHZvaWQqKTsKLSAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29w
UmVmPiBtX3J1bkxvb3A7Ci0gICAgUmV0YWluUHRyPENGUnVuTG9vcFNvdXJjZVJlZj4gbV9ydW5M
b29wU291cmNlOwotICAgIGludCBtX25lc3RpbmdMZXZlbDsKLSNlbGlmIFBMQVRGT1JNKEVGTCkK
LSAgICBib29sIG1faW5pdEVmbDsKLQotICAgIE11dGV4IG1fcGlwZUxvY2s7Ci0gICAgT3duUHRy
PEVjb3JlX1BpcGU+IG1fcGlwZTsKLQotICAgIE11dGV4IG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWRM
b2NrOwotICAgIGJvb2wgbV93YWtlVXBFdmVudFJlcXVlc3RlZDsKLQotICAgIHN0YXRpYyB2b2lk
IHdha2VVcEV2ZW50KHZvaWQqIGRhdGEsIHZvaWQqLCB1bnNpZ25lZCBpbnQpOwotI2VsaWYgVVNF
KEdMSUIpCi1wdWJsaWM6Ci0gICAgc3RhdGljIGdib29sZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7
Ci0gICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wKCk7Ci0gICAgdm9pZCBwdXNoTmVzdGVkTWFp
bkxvb3AoR01haW5Mb29wKik7Ci0gICAgdm9pZCBwb3BOZXN0ZWRNYWluTG9vcCgpOwotcHJpdmF0
ZToKLSAgICBHUmVmUHRyPEdNYWluQ29udGV4dD4gbV9ydW5Mb29wQ29udGV4dDsKLSAgICBWZWN0
b3I8R1JlZlB0cjxHTWFpbkxvb3A+PiBtX3J1bkxvb3BNYWluTG9vcHM7Ci0jZW5kaWYKLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFJ1bkxvb3BfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTgyMDc4OGQ2YWJiMDkzODJlOWUx
OGNjZWVkZTY3NTMxMTExNzU2My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFj
a0JlcnJ5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
UnVuTG9vcC5oIgotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
fQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQot
dm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NmL1J1bkxvb3BDRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9SdW5Mb29wQ0Yu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNjE4ZTAyODc5MjI0ODM3NGZhMjJi
ZWM4MDE2M2E5NzE1YjY3OTU3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1J1bkxvb3BDRi5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDxDb3JlRm91bmRhdGlv
bi9Db3JlRm91bmRhdGlvbi5oPgotI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+Ci0jaW5j
bHVkZSA8d3RmL0F1dG9kcmFpbmVkUG9vbC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZv
aWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsodm9pZCogY29udGV4dCkKLXsKLSAgICBBdXRvZHJhaW5l
ZFBvb2wgcG9vbDsKLSAgICBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oY29udGV4dCktPnBlcmZvcm1X
b3JrKCk7Ci19Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotICAgIDogbV9ydW5Mb29wKENGUnVuTG9v
cEdldEN1cnJlbnQoKSkKLSAgICAsIG1fbmVzdGluZ0xldmVsKDApCi17Ci0gICAgQ0ZSdW5Mb29w
U291cmNlQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCBw
ZXJmb3JtV29yayB9OwotICAgIG1fcnVuTG9vcFNvdXJjZSA9IGFkb3B0Q0YoQ0ZSdW5Mb29wU291
cmNlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZjb250ZXh0KSk7Ci0gICAgQ0ZSdW5M
b29wQWRkU291cmNlKG1fcnVuTG9vcC5nZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgpLCBrQ0ZS
dW5Mb29wQ29tbW9uTW9kZXMpOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgQ0ZS
dW5Mb29wU291cmNlSW52YWxpZGF0ZShtX3J1bkxvb3BTb3VyY2UuZ2V0KCkpOwotfQotCi12b2lk
IFJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKLXsKLSAgICBDRlJ1bkxv
b3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCBkdXJhdGlvbiwgdHJ1ZSk7Ci19Ci0K
LXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBDRlJ1bkxvb3BTb3VyY2VTaWduYWwobV9y
dW5Mb29wU291cmNlLmdldCgpKTsKLSAgICBDRlJ1bkxvb3BXYWtlVXAobV9ydW5Mb29wLmdldCgp
KTsKLX0KLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5n
TGV2ZWwrKzsKLSAgICAKLSAgICB7Ci0gICAgICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwotICAg
ICAgICBDRlJ1bkxvb3BSdW4oKTsKLSAgICB9Ci0gICAgCi0gICAgY3VycmVudCgpLT5tX25lc3Rp
bmdMZXZlbC0tOwotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIEFTU0VSVChtX3J1
bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsKLSAgICBDRlJ1bkxvb3BTdG9wKG1fcnVu
TG9vcC5nZXQoKSk7Ci19Ci0KLS8vIFJ1bkxvb3A6OlRpbWVyCi0KLXZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjp0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKiBjb250ZXh0KQotewot
ICAgIFRpbWVyQmFzZSogdGltZXIgPSBzdGF0aWNfY2FzdDxUaW1lckJhc2UqPihjb250ZXh0KTsK
LQotICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwotICAgIHRpbWVyLT5maXJlZCgpOwotfQotCi1S
dW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDogbV9y
dW5Mb29wKHJ1bkxvb3ApCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgp
Ci17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91
YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAgIGlmIChtX3RpbWVyKQot
ICAgICAgICBzdG9wKCk7Ci0gICAgCi0gICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0IGNvbnRleHQg
PSB7IDAsIHRoaXMsIDAsIDAsIDAgfTsKLSAgICBDRlRpbWVJbnRlcnZhbCByZXBlYXRJbnRlcnZh
bCA9IHJlcGVhdCA/IG5leHRGaXJlSW50ZXJ2YWwgOiAwOwotICAgIG1fdGltZXIgPSBhZG9wdENG
KENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1l
R2V0Q3VycmVudCgpICsgbmV4dEZpcmVJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWwsIDAsIDAsIHRp
bWVyRmlyZWQsICZjb250ZXh0KSk7Ci0gICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLT5t
X3J1bkxvb3AuZ2V0KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci19
Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKLXsKLSAgICBpZiAoIW1fdGltZXIp
Ci0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBDRlJ1bkxvb3BUaW1lckludmFsaWRhdGUobV90
aW1lci5nZXQoKSk7Ci0gICAgbV90aW1lciA9IG51bGxwdHI7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6
VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZS
dW5Mb29wVGltZXJJc1ZhbGlkKG1fdGltZXIuZ2V0KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUnVuTG9vcEVm
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUnVuTG9vcEVmbC5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MmRjZGZlNzIzMWVkNTIxMmJmMGI1OTZhNGY3MmE3
NDY5MjU4NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1J1bkxvb3BFZmwuY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsMTM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVt
YmVkZGVkIHN5c3RlbXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgU2Ftc3VuZyBFbGVjdHJvbmljcwotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPEVjb3JlLmg+Ci0jaW5j
bHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLXN0YXRp
YyBjb25zdCBpbnQgZWNvcmVQaXBlTWVzc2FnZVNpemUgPSAxOwotc3RhdGljIGNvbnN0IGNoYXIg
d2FrdXBFY29yZVBpcGVNZXNzYWdlW10gPSAiVyI7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
UnVuTG9vcDo6UnVuTG9vcCgpCi0gICAgOiBtX2luaXRFZmwoZmFsc2UpCi0gICAgLCBtX3dha2VV
cEV2ZW50UmVxdWVzdGVkKGZhbHNlKQotewotICAgIG1fcGlwZSA9IGFkb3B0UHRyKGVjb3JlX3Bp
cGVfYWRkKHdha2VVcEV2ZW50LCB0aGlzKSk7Ci0gICAgbV9pbml0RWZsID0gdHJ1ZTsKLX0KLQot
UnVuTG9vcDo6flJ1bkxvb3AoKQotewotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAg
ZWNvcmVfbWFpbl9sb29wX2JlZ2luKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0g
ICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXBFdmVu
dCh2b2lkKiBkYXRhLCB2b2lkKiwgdW5zaWduZWQgaW50KQotewotICAgIFJ1bkxvb3AqIGxvb3Ag
PSBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oZGF0YSk7Ci0KLSAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihsb29wLT5tX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jayk7Ci0gICAgICAgIGxv
b3AtPm1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICBsb29wLT5w
ZXJmb3JtV29yaygpOwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2spOwotICAg
ICAgICBpZiAobV93YWtlVXBFdmVudFJlcXVlc3RlZCkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgbV93YWtlVXBFdmVudFJlcXVlc3RlZCA9IHRydWU7Ci0gICAgfQotCi0gICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9waXBlTG9jayk7Ci0gICAgICAgIGVjb3JlX3BpcGVf
d3JpdGUobV9waXBlLmdldCgpLCB3YWt1cEVjb3JlUGlwZU1lc3NhZ2UsIGVjb3JlUGlwZU1lc3Nh
Z2VTaXplKTsKLSAgICB9Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxv
b3AqKQotICAgIDogbV90aW1lcigwKQotICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsKLX0K
LQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0K
LWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHZvaWQqIGRhdGEpCi17Ci0gICAg
UnVuTG9vcDo6VGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFJ1bkxvb3A6OlRpbWVyQmFz
ZSo+KGRhdGEpOwotCi0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykKLSAgICAgICAgdGlt
ZXItPm1fdGltZXIgPSAwOwotCi0gICAgdGltZXItPmZpcmVkKCk7Ci0KLSAgICByZXR1cm4gdGlt
ZXItPm1faXNSZXBlYXRpbmcgPyBFQ09SRV9DQUxMQkFDS19SRU5FVyA6IEVDT1JFX0NBTExCQUNL
X0NBTkNFTDsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0
RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBpZiAoaXNBY3RpdmUoKSkKLSAgICAg
ICAgc3RvcCgpOwotCi0gICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKLSAgICBBU1NFUlQoIW1f
dGltZXIpOwotICAgIG1fdGltZXIgPSBlY29yZV90aW1lcl9hZGQobmV4dEZpcmVJbnRlcnZhbCwg
cmVpbnRlcnByZXRfY2FzdDxFY29yZV9UYXNrX0NiPih0aW1lckZpcmVkKSwgdGhpcyk7Ci19Ci0K
LXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKLXsKLSAgICBpZiAobV90aW1lcikgewot
ICAgICAgICBlY29yZV90aW1lcl9kZWwobV90aW1lcik7Ci0gICAgICAgIG1fdGltZXIgPSAwOwot
ICAgIH0KLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gKG1fdGltZXIpID8gdHJ1ZSA6IGZhbHNlOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmgKaW5kZXggYjQ1NmQ0ZjVmZWFlYjBjZjY0ZWNmZWI3NjkwMDRiZTVlNzc3OGFh
Yi4uZGQ5YWYyOGE3OTVmMjE0MmVjZGY3OWZjZWMwZjVkZGJiMTkyMjU3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtMzAs
NyArMzAsNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJUcmFuc2Zvcm0uaCIKICNpbmNsdWRl
ICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAj
aW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9y
ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKaW5kZXggMDI1
MDVkMGJhN2Q2Mjg5ZWU3YWY2ODY3MDIyMmViZmE2YjQ1OTVjOC4uMDdjZDU2MzRmY2M3ZDlhNTEx
N2VhYWI3NTZkOWVjOGVlNjlhZWY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUg
IkdyYXBoaWNzU3VyZmFjZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRT
aXplLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXIuaCIK
ICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiVGV4dHVy
ZU1hcHBlckZQU0NvdW50ZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9SdW5Mb29wR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29w
R3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmUzMjkyZDRlOTQ4YjI4YmRi
OGMwODVjNWE1NDVhYTg2MGY2MWQyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQg
KGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNp
bmNsdWRlIDxnZGsvZ2RrLmg+Ci0jaW5jbHVkZSA8Z2xpYi5oPgotCi0jaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SdW5Mb29wOjpSdW5Mb29wKCkK
LXsKLSAgICAvLyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgZG9lc24ndCBhZGQgYW4gZXh0cmEg
cmVmZXJlbmNlLgotICAgIG1fcnVuTG9vcENvbnRleHQgPSBpc01haW5UaHJlYWQoKSA/IGdfbWFp
bl9jb250ZXh0X2RlZmF1bHQoKSA6IGFkb3B0R1JlZihnX21haW5fY29udGV4dF9uZXcoKSk7Ci0g
ICAgQVNTRVJUKG1fcnVuTG9vcENvbnRleHQpOwotICAgIEdSZWZQdHI8R01haW5Mb29wPiBpbm5l
cm1vc3RMb29wID0gYWRvcHRHUmVmKGdfbWFpbl9sb29wX25ldyhtX3J1bkxvb3BDb250ZXh0Lmdl
dCgpLCBGQUxTRSkpOwotICAgIEFTU0VSVChpbm5lcm1vc3RMb29wKTsKLSAgICBtX3J1bkxvb3BN
YWluTG9vcHMuYXBwZW5kKGlubmVybW9zdExvb3ApOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgp
Ci17Ci0gICAgZm9yIChpbnQgaSA9IG1fcnVuTG9vcE1haW5Mb29wcy5zaXplKCkgLSAxOyBpID49
IDA7IC0taSkgewotICAgICAgICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29w
TWFpbkxvb3BzW2ldLmdldCgpKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBnX21h
aW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSk7Ci0gICAgfQotfQotCi12
b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgUnVuTG9vcCogbWFpblJ1bkxvb3AgPSBSdW5Mb29w
OjpjdXJyZW50KCk7Ci0gICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wID0gbWFpblJ1bkxvb3At
PmlubmVybW9zdExvb3AoKTsKLSAgICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcoaW5uZXJt
b3N0TG9vcCkpIHsKLSAgICAgICAgZ19tYWluX2xvb3BfcnVuKGlubmVybW9zdExvb3ApOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gQ3JlYXRlIGFuZCBydW4gYSBuZXN0ZWQgbG9v
cCBpZiB0aGUgaW5uZXJtb3N0IG9uZSB3YXMgYWxyZWFkeSBydW5uaW5nLgotICAgIEdNYWluTG9v
cCogbmVzdGVkTWFpbkxvb3AgPSBnX21haW5fbG9vcF9uZXcoMCwgRkFMU0UpOwotICAgIG1haW5S
dW5Mb29wLT5wdXNoTmVzdGVkTWFpbkxvb3AobmVzdGVkTWFpbkxvb3ApOwotICAgIGdfbWFpbl9s
b29wX3J1bihuZXN0ZWRNYWluTG9vcCk7Ci0gICAgbWFpblJ1bkxvb3AtPnBvcE5lc3RlZE1haW5M
b29wKCk7Ci19Ci0KLUdNYWluTG9vcCogUnVuTG9vcDo6aW5uZXJtb3N0TG9vcCgpCi17Ci0gICAg
Ly8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAgICBB
U1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwotICAgIHJldHVybiBtX3J1bkxv
b3BNYWluTG9vcHNbMF0uZ2V0KCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cHVzaE5lc3RlZE1haW5M
b29wKEdNYWluTG9vcCogbmVzdGVkTG9vcCkKLXsKLSAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4g
bG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgotICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxv
b3BzLmlzRW1wdHkoKSk7Ci0gICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChhZG9wdEdSZWYo
bmVzdGVkTG9vcCkpOwotfQotCi12b2lkIFJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKCkKLXsK
LSAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgot
ICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7Ci0gICAgbV9ydW5Mb29w
TWFpbkxvb3BzLnJlbW92ZUxhc3QoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAg
ICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgotICAg
IEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7Ci0gICAgR1JlZlB0cjxHTWFp
bkxvb3A+IGxhc3RNYWluTG9vcCA9IG1fcnVuTG9vcE1haW5Mb29wcy5sYXN0KCk7Ci0gICAgaWYg
KGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobGFzdE1haW5Mb29wLmdldCgpKSkKLSAgICAgICAgZ19t
YWluX2xvb3BfcXVpdChsYXN0TWFpbkxvb3AuZ2V0KCkpOwotfQotCi1nYm9vbGVhbiBSdW5Mb29w
OjpxdWV1ZVdvcmsoUnVuTG9vcCogcnVuTG9vcCkKLXsKLSAgICBydW5Mb29wLT5wZXJmb3JtV29y
aygpOwotICAgIHJldHVybiBGQUxTRTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewot
ICAgIEdSZWZQdHI8R1NvdXJjZT4gc291cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3
KCkpOwotICAgIGdfc291cmNlX3NldF9wcmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlf
REVGQVVMVCk7Ci0gICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRl
cnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOwot
ICAgIGdfc291cmNlX2F0dGFjaChzb3VyY2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQuZ2V0KCkp
OwotCi0gICAgZ19tYWluX2NvbnRleHRfd2FrZXVwKG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOwot
fQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAg
IDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX3RpbWVyU291cmNlKDApCi17Ci19Ci0KLVJ1
bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lk
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6Y2xlYXJUaW1lclNvdXJjZSgpCi17Ci0gICAgbV90aW1lclNv
dXJjZSA9IDA7Ci19Ci0KLWdib29sZWFuIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENh
bGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIpCi17Ci0gICAgR1NvdXJjZSogY3VycmVu
dFRpbWVyU291cmNlID0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCk7Ci0gICAgYm9vbCBpc1Jl
cGVhdGluZyA9IHRpbWVyLT5pc1JlcGVhdGluZygpOwotICAgIC8vIFRoaXMgY2FuIGNoYW5nZSB0
aGUgdGltZXJTb3VyY2UgYnkgc3RhcnRpbmcgYSBuZXcgdGltZXIgd2l0aGluIHRoZSBjYWxsYmFj
ay4KLSAgICBpZiAoIWlzUmVwZWF0aW5nICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+
bV90aW1lclNvdXJjZS5nZXQoKSkKLSAgICAgICAgdGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsK
LQotICAgIHRpbWVyLT5maXJlZCgpOwotICAgIHJldHVybiBpc1JlcGVhdGluZzsKLX0KLQotdm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KQotewotICAgIGlmIChtX3RpbWVyU291cmNlKQotICAgICAgICBzdG9wKCk7Ci0KLSAgICBt
X3RpbWVyU291cmNlID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0
PGd1aW50PihmaXJlSW50ZXJ2YWwgKiAxMDAwKSkpOwotICAgIG1faXNSZXBlYXRpbmcgPSByZXBl
YXQ7Ci0gICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50
ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRD
YWxsYmFjayksIHRoaXMsIDApOwotICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdl
dCgpLCBtX3J1bkxvb3AtPm1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOwotfQotCi12b2lkIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgaWYgKCFtX3RpbWVyU291cmNlKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBnX3NvdXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOwot
ICAgIGNsZWFyVGltZXJTb3VyY2UoKTsKLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6Omlz
QWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90aW1lclNvdXJjZTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4u
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjY5YzA2NDljNzNkMjU2OGExMWM3
N2U4Mzg2NGM5MjI3NDgwYjFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDE3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgotI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIGNvbnN0IFVJTlQgUGVyZm9ybVdvcmtN
ZXNzYWdlID0gV01fVVNFUiArIDE7Ci1zdGF0aWMgY29uc3QgTFBXU1RSIGtSdW5Mb29wTWVzc2Fn
ZVdpbmRvd0NsYXNzTmFtZSA9IEwiUnVuTG9vcE1lc3NhZ2VXaW5kb3ciOwotCi1MUkVTVUxUIENB
TExCQUNLIFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBX
UEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQotewotICAgIGlmIChSdW5Mb29wKiBydW5Mb29w
ID0gc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGdldFdpbmRvd1BvaW50ZXIoaFduZCwgMCkpKQotICAg
ICAgICByZXR1cm4gcnVuTG9vcC0+d25kUHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJh
bSk7Ci0KLSAgICBpZiAobWVzc2FnZSA9PSBXTV9DUkVBVEUpIHsKLSAgICAgICAgTFBDUkVBVEVT
VFJVQ1QgY3JlYXRlU3RydWN0ID0gcmVpbnRlcnByZXRfY2FzdDxMUENSRUFURVNUUlVDVD4obFBh
cmFtKTsKLQotICAgICAgICAvLyBBc3NvY2lhdGUgdGhlIFJ1bkxvb3Agd2l0aCB0aGUgd2luZG93
LgotICAgICAgICBzZXRXaW5kb3dQb2ludGVyKGhXbmQsIDAsIGNyZWF0ZVN0cnVjdC0+bHBDcmVh
dGVQYXJhbXMpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gOjpEZWZX
aW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKLX0KLQotTFJFU1VMVCBS
dW5Mb29wOjp3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBM
UEFSQU0gbFBhcmFtKQotewotICAgIHN3aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgUGVyZm9y
bVdvcmtNZXNzYWdlOgotICAgICAgICBwZXJmb3JtV29yaygpOwotICAgICAgICByZXR1cm4gMDsK
LSAgICBjYXNlIFdNX1RJTUVSOgotICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmly
ZWQodGhpcywgd1BhcmFtKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJu
IDo6RGVmV2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAgICBNU0cgbWVzc2FnZTsKLSAgICB3aGlsZSAoQk9PTCBy
ZXN1bHQgPSA6OkdldE1lc3NhZ2UoJm1lc3NhZ2UsIDAsIDAsIDApKSB7Ci0gICAgICAgIGlmIChy
ZXN1bHQgPT0gLTEpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgOjpUcmFuc2xhdGVNZXNz
YWdlKCZtZXNzYWdlKTsKLSAgICAgICAgOjpEaXNwYXRjaE1lc3NhZ2UoJm1lc3NhZ2UpOwotICAg
IH0KLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAgICA6OlBvc3RRdWl0TWVzc2FnZSgw
KTsKLX0KLQotYm9vbCBSdW5Mb29wOjpyZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3Mo
KQotewotICAgIC8vIEZJWE1FOiBUaGlzIHJlYWxseSBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBv
bmNlLgotCi0gICAgV05EQ0xBU1Mgd2luZG93Q2xhc3MgPSB7IDAgfTsKLSAgICB3aW5kb3dDbGFz
cy5scGZuV25kUHJvYyAgICAgPSBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYzsKLSAgICB3aW5kb3dD
bGFzcy5jYlduZEV4dHJhICAgICAgPSBzaXplb2YoUnVuTG9vcCopOwotICAgIHdpbmRvd0NsYXNz
Lmxwc3pDbGFzc05hbWUgICA9IGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZTsKLQotICAg
IHJldHVybiAhITo6UmVnaXN0ZXJDbGFzcygmd2luZG93Q2xhc3MpOwotfQotCi1SdW5Mb29wOjpS
dW5Mb29wKCkKLXsKLSAgICByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKLQot
ICAgIG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cgPSA6OkNyZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3Nh
Z2VXaW5kb3dDbGFzc05hbWUsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENXX1VTRURFRkFVTFQsIDAsIENXX1VTRURFRkFVTFQsIDAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgMCwg
dGhpcyk7Ci0gICAgQVNTRVJUKDo6SXNXaW5kb3cobV9ydW5Mb29wTWVzc2FnZVdpbmRvdykpOwot
fQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUg
d29yayBpdGVtIHF1ZXVlIGhlcmUuCi19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAg
ICAvLyBGSVhNRTogTm8gbmVlZCB0byB3YWtlIHVwIHRoZSBydW4gbG9vcCBpZiB3ZSd2ZSBhbHJl
YWR5IGNhbGxlZCBkaXNwYXRjaAotICAgIC8vIGJlZm9yZSB0aGUgcnVuIGxvb3AgaGFzIGhhZCB0
aGUgdGltZSB0byByZXNwb25kLgotICAgIDo6UG9zdE1lc3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdp
bmRvdywgUGVyZm9ybVdvcmtNZXNzYWdlLCByZWludGVycHJldF9jYXN0PFdQQVJBTT4odGhpcyks
IDApOwotfQotCi0vLyBSdW5Mb29wOjpUaW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
dGltZXJGaXJlZChSdW5Mb29wKiBydW5Mb29wLCB1aW50NjRfdCBJRCkKLXsKLSAgICBUaW1lck1h
cDo6aXRlcmF0b3IgaXQgPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKLSAgICBp
ZiAoaXQgPT0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpIHsKLSAgICAgICAgLy8gVGhl
IHRpbWVyIG11c3QgaGF2ZSBiZWVuIHN0b3BwZWQgYWZ0ZXIgdGhlIFdNX1RJTUVSIG1lc3NhZ2Ug
d2FzIHBvc3RlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZS4KLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIFRpbWVyQmFzZSogdGltZXIgPSBpdC0+dmFsdWU7Ci0KLSAgICBpZiAoIXRpbWVyLT5t
X2lzUmVwZWF0aW5nKSB7Ci0gICAgICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShp
dCk7Ci0gICAgICAgIDo6S2lsbFRpbWVyKHJ1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cs
IElEKTsKLSAgICB9Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsKLX0KLQotc3RhdGljIHVpbnQ2NF90
IGdlbmVyYXRlVGltZXJJRCgpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVRpbWVySUQg
PSAxOwotICAgIHJldHVybiB1bmlxdWVUaW1lcklEKys7Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFz
ZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxvb3AocnVuTG9vcCkK
LSAgICAsIG1fSUQoZ2VuZXJhdGVUaW1lcklEKCkpCi0gICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNl
KQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3Ao
KTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUlu
dGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OwotICAg
IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQsIHRoaXMpOwotICAgIDo6U2V0VGlt
ZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lELCBuZXh0RmlyZUludGVy
dmFsICogMTAwMCwgMCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKLXsK
LSAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZp
bmQobV9JRCk7Ci0gICAgaWYgKGl0ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3Zl
KGl0KTsKLSAgICA6OktpbGxUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cs
IG1fSUQpOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAot
ewotICAgIHJldHVybiBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmNvbnRhaW5zKG1fSUQpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJv
bi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCmluZGV4IDM4ZjEzNDdhMzRiYTRjMjA0MTQ2MWZlYzRm
ZTQ0YThlZGYwYTI2MjIuLmUxMTI4NzVjMWQ3YTIyOWQwN2EwNGFmYzBjYzkwNmJlYWFhNjcxZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1t
CkBAIC03Myw5ICs3Myw5IEBACiAjaW1wb3J0IDxhc3NlcnQuaD4KIAogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1w
b3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5n
LmgiCiAjaW1wb3J0ICJXZWJOU09iamVjdEV4dHJhcy5oIgpAQCAtMjcyLDcgKzI3Miw3IEBAIHN0
YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxS
ZWYgaW5FdmVudEhhbmRsZXJDYWxsCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7
CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAg
ICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29w
Ojppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWlu
VGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5
L1dlYkJhY2tGb3J3YXJkTGlzdC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFj
a0ZvcndhcmRMaXN0Lm1tCmluZGV4IDY2MTU1ZGJiOGE5ZmM2NzczYzFmZGI3ZGU5NDgyZDdiZGRh
ODAxMDIuLjRiZWZlNjY5NjdmMGE1NDQzNzNmNzU1MzFiYzQzYzAxMzdhZGVlZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCkBAIC00Miw3
ICs0Miw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdl
YkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMu
aD4KQEAgLTUwLDYgKzQ5LDcgQEAKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0
IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8
d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDUsNyArMTA1LDcgQEAgV2ViQmFja0ZvcndhcmRMaXN0ICpr
aXQoQmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QpCiB7CiAgICAgSlNDOjppbml0aWFs
aXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01h
aW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2Jq
Q0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNlL1dlYktpdC9tYWMvSGlz
dG9yeS9XZWJIaXN0b3J5SXRlbS5tbQppbmRleCA1NzlmZjZjYzUxYTE4NTkzYWYwODM4NTFlNDQ4
YjY2NjdlMWZiZDYzLi41NTBlNmUxYTIzNWYxZDU4MWYxMzYwMzVhODQ0OTM4ODIyOTFkYmE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KQEAgLTQ3LDEy
ICs0NywxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9JbWFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9V
UkwuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNv
cmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTk3LDcgKzk3LDcgQEAg
dm9pZCBXS05vdGlmeUhpc3RvcnlJdGVtQ2hhbmdlZChIaXN0b3J5SXRlbSopCiB7CiAgICAgSlND
Ojppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRv
UHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBX
ZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlz
Yy9XZWJDYWNoZS5tbQppbmRleCAwY2JlZDAxMjJmODk2MTJkN2MwNDZjN2Q3OTcxMGYxZmI3ZDk1
ODgwLi43NjUxODc2NTcyZTE3NzNlYzQwZDg4Njk3NTM1NTg2MGU1YzgwNmFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViQ2FjaGUubW0KQEAgLTMzLDkgKzMzLDkgQEAKICNpbXBvcnQgPFdlYkNvcmUv
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5Q
cmVmbGlnaHRSZXN1bHRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgot
I2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVU
aHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVu
TG9vcC5oPgogCiBAaW1wbGVtZW50YXRpb24gV2ViQ2FjaGUKIApAQCAtNDMsNyArNDMsNyBAQAog
ewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1h
aW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5p
dGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CiAgICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UoKTsgICAKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0KaW5kZXggMTdmMjIwMTkw
NzBjNDAxMTY1NTdiZTBjYTYzZjdjNGQ4ZDJkZWZmNi4uOTA5NGEzOGIyNmQ5YTgyZjY1NzY1NjE4
MTVmODE0NDEyZjk3ZTBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJF
bGVtZW50RGljdGlvbmFyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkVsZW1l
bnREaWN0aW9uYXJ5Lm1tCkBAIC0zOSwxMiArMzksMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJh
bWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9JbWFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NQ29yZS5oPgogI2ltcG9y
dCA8V2ViS2l0L0RPTUV4dGVuc2lvbnMuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRo
cmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5M
b29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC02Nyw3ICs2Nyw3IEBAIHN0
YXRpYyB2b2lkIGNhY2hlVmFsdWVGb3JLZXkoY29uc3Qgdm9pZCAqa2V5LCBjb25zdCB2b2lkICp2
YWx1ZSwgdm9pZCAqc2VsZikKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAg
ICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJl
YWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNv
bkRhdGFiYXNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0K
aW5kZXggN2Y4NzNhYjFlZGM2Y2UyOTY4YjM3NzJmZDVlOTBiNDFjNGUwOGI4NS4uMWUzOTkxYjBj
OWVlNzc0M2RlMTU5ZjU1OTAyODc0NjJlOTMyMzZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlz
Yy9XZWJJY29uRGF0YWJhc2UubW0KQEAgLTM5LDExICszOSwxMSBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9JY29uRGF0YWJhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW1hZ2UuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSW50U2l6ZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgog
I2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFp
blRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKQEAgLTkwLDcgKzkwLDcgQEAgc3RhdGljIFdlYkljb25EYXRhYmFzZUNsaWVudCog
ZGVmYXVsdENsaWVudCgpCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAg
V1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJD
b3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0
aWFsaXplTWFpblJ1bkxvb3AoKTsKIH0KIAogKyAoV2ViSWNvbkRhdGFiYXNlICopc2hhcmVkSWNv
bkRhdGFiYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9X
ZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggN2UwNWIzNDhhMWNk
NGYwMGQ1Nzc1NjIxZDk4MDBmZjEzYjAxYzY5My4uMTgxYWI3MDU5MTMzY2Q1M2Y2MjIxMmJiZTFj
OTVkYjY3NGE1ZWY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtNDYsMTIg
KzQ2LDEyIEBACiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckVtYmVkZGVkT2JqZWN0Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9i
akNFeHRyYXMuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9ydW50aW1lX3Jvb3QuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5o
PgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29w
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
QEAgLTczLDcgKzczLDcgQEAgZXh0ZXJuICJDIiB7CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhy
ZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJl
YWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAg
ICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFs
aXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIFdLU2VuZFVzZXJDaGFuZ2VOb3RpZmljYXRpb25z
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblZpZXcubW0KaW5kZXggYWJjYzgyYjI0YmEyZWIyYTM3ZTIxNmNmZmUxNjEzMTA3
OTI0MDY4ZS4uMTQ3NzViNTJjYTg4YWU2ZTFiMWEzYWZhMzYzMDAxNTY5ZTE2MjZkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2lu
Vmlldy5tbQpAQCAtNTUsMTMgKzU1LDEzIEBACiAjaW1wb3J0IDxXZWJDb3JlL1Byb3RlY3Rpb25T
cGFjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1JlbmRlcldpZGdldC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0
cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NUHJpdmF0ZS5oPgogI2ltcG9ydCA8cnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNkZWZpbmUgTG9naW5XaW5kb3dEaWRTd2l0Y2hGcm9tVXNl
ck5vdGlmaWNhdGlvbiAgICBAIldlYkxvZ2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmlj
YXRpb24iCkBAIC03NSw3ICs3NSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogewogICAg
IEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJl
YWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6
ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAg
ICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICBXS1NlbmRVc2Vy
Q2hhbmdlTm90aWZpY2F0aW9ucygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0KaW5kZXggNWIwN2I5ODA1OTJkZTIzYzBhZjI3Yzkw
YmQwZDk3NDRkMmUyMjk3NC4uMjQwYzQ5OGNkMGFlOWQxYTkzZTJkNTczZTNjZjNmOGYwMDBkZDhj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFj
a2FnZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNr
YWdlLm1tCkBAIC0yOSw3ICsyOSw2IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViQmFzZVBsdWdpblBh
Y2thZ2UuaD4KIAogI2ltcG9ydCA8YWxnb3JpdGhtPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV2ViS2l0TlNTdHJpbmdFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJOZXRzY2FwZVBs
dWdpblBhY2thZ2UuaD4KQEAgLTM4LDYgKzM3LDcgQEAKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1l
RXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5o
PgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC02OCw3ICs2OCw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwog
ICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAg
V2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6
aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRo
cmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5l
dHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA3ZjRjODhhNWJlZjAyYzllMTEyMDIwYzU3NDI4Yjk3
MDViZjE2MGY4Li42ZDBmM2RkOGFkOTEzNmJkODJiZTNmMzgyNWU1NWI0MzM4ZjhkOTk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5t
bQpAQCAtNjcsNyArNjcsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+IAogI2ltcG9ydCA8
V2ViQ29yZS9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1By
b3h5U2VydmVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPiAKQEAgLTgyLDYgKzgxLDcgQEAKICNp
bXBvcnQgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNkZWZpbmUgTG9naW5XaW5kb3dEaWRTd2l0Y2hGcm9t
VXNlck5vdGlmaWNhdGlvbiAgICBAIldlYkxvZ2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3Rp
ZmljYXRpb24iCkBAIC0xOTQsNyArMTk0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogewogICAgIEpT
Qzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRU
b1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1h
aW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAg
V2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICBXS1NlbmRVc2VyQ2hh
bmdlTm90aWZpY2F0aW9ucygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IGUyY2VhMGMwYzY4ZmFhMzlmNTU3NGUz
YzE2ZTY1ODRlZDIyNmI2YWQuLmRjMjY4ZTI2NjFjZjMwNzEyODA5ZDUxYTVhMWI1MGEzODVkMjA3
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0KQEAgLTYxLDcgKzYxLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2Vi
QXJjaGl2ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3BlcnR5U2V0Lmg+CkBAIC03MSw2ICs3MCw3IEBA
CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgorI2ltcG9ydCA8d3RmL1J1
bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgV2ViVmlld0luc2VydEFjdGlv
biBraXQoRWRpdG9ySW5zZXJ0QWN0aW9uIGNvcmVBY3Rpb24pCiB7CiAgICAgSlNDOjppbml0aWFs
aXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01h
aW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2Jq
Q0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IGRk
NTI2MzU5ZDNhMjFkODVmN2ZhNWIxYTVkMDdlNjhmMGM5MGQ1ZWEuLjZlNzhhMWNhYTk1NTU1ZGI3
NWY0NWY2MTRjZTUyMzVmOTU2Nzk4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xMTUsNyArMTE1
LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0Q29u
dHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KQEAgLTEyNyw2ICsxMjYsNyBAQAogI2ltcG9ydCA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5o
PgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlf
Rk9SX1ZJREVPKQpAQCAtMTk5OSw3ICsxOTk5LDcgQEAgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQK
IHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVN
YWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9v
cCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQppbmRleCA5ODkwZjhkZmE4YzcyMzhj
OWE3YjQ3OGQzZWQyN2IwMmJlODNkM2Y2Li43MjMzMTZmOWNhNzM4NGQzNmJmZTZmOTNkMWM4MDRk
MTllMjkwYWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hp
dmUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCkBAIC0z
NiwxMCArMzYsMTAgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRp
bmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2Jq
Q0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5M
b29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC02OSw3ICs2OSw3IEBAIHN0
YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdlYlN1YmZyYW1lQXJjaGl2ZXNLZXkgPSBAIldlYlN1YmZy
YW1lQXJjaGl2ZXMiOwogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdU
Rjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChz
ZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRh
U291cmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCmlu
ZGV4IDExNGRlOWZiMDg0ZDUwNWUxMTlhNzliNzVhMTgwNzNmZTdhZDEwYmIuLmNlZTYwY2UyM2Jh
NWI0ZGY3ZDE3ODY5NGM2Yjk0OTA4ODg3OWFkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkRhdGFTb3VyY2UubW0KQEAgLTU0LDcgKzU0LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUv
TUlNRVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVu
TG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVVSTFJlc3Bv
bnNlLmg+CkBAIC02NSw2ICs2NCw3IEBACiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2lt
cG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8
d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE0NSw3ICsx
NDUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGlj
dGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgIGlmIChzZWxmID09IFtXZWJEYXRh
U291cmNlIGNsYXNzXSkgewogICAgICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAg
ICAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAg
ICAgICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgICAg
IFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgICAgICBXZWJDb3JlT2JqQ0Zp
bmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IGViNWIxMTgxZWNiZDgyYjRlZWMyMGJkM2M0ZDU4ZDMx
NGVmNjBmODUuLjg5Mzg4NWZmZTgzYjcwMzdjMzJlZTVmMzhmZDAzMmEyNDAyMDM1NTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTExLDcgKzExMSw2IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVy
V2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TaW1wbGVGb250RGF0YS5oPgpAQCAtMTMxLDYgKzEzMCw3IEBACiAjaW1wb3J0IDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1w
b3J0IDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1
YXJ0ekNvcmUuaD4KQEAgLTU2NCw3ICs1NjQsNyBAQCBzdGF0aWMgTlNDZWxsU3RhdGVWYWx1ZSBr
aXQoVHJpU3RhdGUgc3RhdGUpCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAg
ICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBX
ZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjpp
bml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhy
ZWFkKHNlbGYpOwogICAgIAogICAgIGlmICghb2xkU2V0Q3Vyc29yRm9yTW91c2VMb2NhdGlvbklN
UCkgewpAQCAtMjI3Myw3ICsyMjczLDcgQEAgc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9m
Q2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVyblR5cGVzOltbc2VsZiBjbGFzc10gX2luc2VydGFibGVQYXN0ZWJvYXJkVHlwZXNdXTsK
ICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWlu
VGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRp
YWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDVjMGJlZjVjYTU1
OWRkNWYxY2YzOWFiMGUzN2U5MDYwM2VhNmE4N2QuLmFiNWNkYzgyY2UwZWM5NmVhZThiZmQyYjE3
NTRiNDMzODYyYTNlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQpAQCAtNDMsMTAgKzQzLDEwIEBACiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
PgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9S
dW5Mb29wLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBv
cnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0
IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMzA2LDcg
KzMwNiw3IEBAIHB1YmxpYzoKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAg
ICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOwogCiAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0ID0gW05TRGlj
dGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgogICAgICAgICBAIlRpbWVzIiwg
ICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFN0YW5kYXJkRm9udFByZWZlcmVuY2VLZXksCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQppbmRleCBhNGVjMzUzMTVhZmQ0
YmY0NWRjMmM1ZGU2NDcyMGEzMTYwN2M5MGNkLi5hYzJlMGE2NWVlMmU4ZTEwY2M3NDA5OTI1YTM4
NWJjZTEzYWUxNjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJl
c291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0K
QEAgLTM4LDEzICszOCwxMyBAQAogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFy
Y2hpdmUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEVuY29kaW5n
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVVUkxSZXNwb25zZS5o
PgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBOU1N0
cmluZyAqIGNvbnN0IFdlYlJlc291cmNlUmVzcG9uc2VLZXkgPSAgICAgICAgICBAIldlYlJlc291
cmNlUmVzcG9uc2UiCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RG
Ojppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNl
bGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJ
dGVyYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1t
CmluZGV4IDliMWJkOGZlYjU1M2ZkOGQxMTBhZGUyY2Y2MzY1ZGE0MjQxMDU3NmMuLmU4OTE0ZDk3
MmQ2OTAzMjQyOWRkNDUxZWM0NDgyNWU1NzM5NjRkZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1tCkBAIC0yOCwxMiArMjgsMTIgQEAKICNpbXBvcnQg
IkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NUmFuZ2VJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV2ViVHlwZXNJbnRlcm5hbC5oIgotI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgotI2ltcG9ydCA8
V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8
d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTAsNyArNTAsNyBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAg
ICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJl
YWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAyNzIx
MjRjNjhmYjE3ODE0OWE3NGVlNTU4NTgwMThjZDhlZTZiYTUwLi40NWU2NDcwYzcwYTY1ZjA5YjIx
YWE4MmMzYTNjNGNjYmJmMzgyMjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CkBAIC0xNjUsNyArMTY1LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjaGVtZVJlZ2lz
dHJ5Lmg+CkBAIC0yMDAsNiArMTk5LDcgQEAKICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJh
cy5oPgogI2ltcG9ydCA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2ltcG9ydCA8d3Rm
L1JlZlB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKQEAgLTMyMTIsNyArMzIx
Miw3IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiB0b1N0cmluZ1ZlY3RvcihOU0FycmF5KiBwYXR0
ZXJucykKICAgICBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSgpOwogICAgIEpTQzo6aW5pdGlh
bGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NN
YWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAKICAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6
QHNlbGVjdG9yKF9hcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUpIG5hbWU6TlNBcHBsaWNhdGlvbldp
bGxUZXJtaW5hdGVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwXTsKICAgICBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVj
dG9yKF9jYWNoZU1vZGVsQ2hhbmdlZE5vdGlmaWNhdGlvbjopIG5hbWU6V2ViUHJlZmVyZW5jZXND
YWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KaW5kZXggNjJkZGEwYjQ4YWU1N2VmNDZm
ZDE0ZGUwZjdlN2EyMDFhNGY4OGY2NS4uYzA1NzE3MzkyYTdmZDEyNTA4OGI1YmM3MzgxOGU5NGFl
YWUwNDA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCkBAIC0z
NCwxMCArMzQsMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9s
bGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0hpc3RvcnlJdGVtLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBv
cnQgPG9iamMvb2JqYy1hdXRvLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRp
bmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5o
PgogCiBCT09MIGFwcGxpY2F0aW9uSXNUZXJtaW5hdGluZyA9IE5POwogaW50IHBsdWdpbkRhdGFi
YXNlQ2xpZW50Q291bnQgPSAwOwpAQCAtNzQsNyArNzQsNyBAQCBXZWJWaWV3TGF5ZXJGbHVzaFNj
aGVkdWxlcjo6V2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXIoTGF5ZXJGbHVzaENvbnRyb2xsZXIq
IGZsdQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlh
bGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5S
dW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNz
LmNwcAppbmRleCAyMjk3Yjk0ZWE3NmNhMTY2ZDgxODU0NmRiMTA1MWM3M2IyODgxZDNjLi5hNWMw
ODQyMTBkZDliZWYzMDYxZDM1NTQzNmQwN2RlZWI3ZWQ3OGMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcApAQCAtMzEsOCArMzEs
NiBAQAogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogRGF0YWJhc2VQcm9jZXNzJiBEYXRhYmFz
ZVByb2Nlc3M6OnNoYXJlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4
IDFlOTQxZmJhY2Y5MGM5NGYzN2FkNzVlZTQyYTYxZjZhZjNjM2UyYzguLmE2ZmU3M2FiMzIyYjhm
NTRhMTNmNDEwNmYzZTA1N2U4YWE2Y2YzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzSURCRGF0
YWJhc2VCYWNrZW5kLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzSURCRGF0YWJhc2VCYWNr
ZW5kTWVzc2FnZXMuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCmluZGV4IDAzYWYxYzRmZjIxOGY5ZGFmZmU2YjJlMjVmZjU5YjE0M2Fi
MGQyMTYuLmUwMDdmZDYzNzVjNjQyOTM3YTc4ODRjZmQ1YjlmMWYzMzUxNjNkNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRl
ck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNDQ0OWUxNzM1YzkwZDQxYjcxMjdiMGI5Njc5
YmVjMzk5Njg1OTJmMS4uYTNhNjBiZGU5ZWE5ZWNjNzRhZWFkMWQwNTQwZjdjMjljYjMyZWNkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cApAQCAtNDQsNyArNDQsNyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgVVNFKFNFQ1VSSVRZX0ZS
QU1FV09SSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCmluZGV4IGQ2ZjBlMGRkMGFmYmM3ZmZiMmU2MDE4N2NhYzRlMDZlODFmYTg3YjEuLjFhODJi
MGM1MTI1YTk3ZmIxYThiNDk4YjhkN2E1YTYwZDVhODBmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzcsNyArMzcsNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDZXJ0aWZpY2F0ZUluZm87Ci1jbGFzcyBSdW5Mb29w
OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggOGNhMjI3YTIxZmY3OTBl
OWYwNDNhOTc0ZDJjNzI1MmViMWQyN2QzNC4uMzI3YWUzNGNjN2I0ZDJhNTRiYTFlMWE1NzNiNGJh
NTRiMGJiZjE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlSGFuZGxlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxv
YWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Cisj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGQ2FjaGVk
VVJMUmVzcG9uc2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCmluZGV4IGMxMzc5
OTVlNWI4ZTUwZmU5ZDYwZTRhZDFmZDQ3ODAxYmVkNjEzYWQuLjQ5ZDBjMGY2ZTYwYzM3ZjEwNTA2
N2NmOGZlNGI0NjI1MmUwOWMxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5j
bHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGQ2FjaGVkVVJMUmVzcG9uc2UqIENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguY3BwCmluZGV4IGQwODBiNzg0
MGEzMjYzYjE0YzkxOGNiYjdiMWZjOTJlNTNjNzVjZWYuLjBiODNhNGE0OTcyYzRmYTI0N2U5M2Jh
NmI0MzBhNmE1M2Y5MDExMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01haW5Vbml4LmNwcApAQCAtMzIsMTIg
KzMyLDEyIEBACiAjaW5jbHVkZSAiUHJveHlSZXNvbHZlclNvdXAuaCIKICNpbmNsdWRlICJXS0Jh
c2UuaCIKICNpbmNsdWRlICJXZWJLaXQySW5pdGlhbGl6ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
UnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYktpdDIvTmV0d29ya1Byb2Nlc3MuaD4KICNpbmNsdWRl
IDxlcnJvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2lu
Y2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CiAKICNpZiBQ
TEFURk9STShFRkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0
aW9uLmNwcAppbmRleCBlMjkxNDEwYjUwZGUyYTA0ZmZiMjUwOTg2NGIwZWIxNTZiYWY0NmFkLi41
MmYyYmYyOGZhMGJiMTM4NGI0YzBiOTFiNDJhNjQwYzhhMjA5N2UwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTI2LDE0ICsyNiwxMiBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKIAotI2luY2x1
ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1h
cGhvcmUuaD4KIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBDb3JlSVBD
IHsKIAogY2xhc3MgQ29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZSA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlPiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCmluZGV4IGJhODAwNDEwZTVkMTFm
ODU5MjM3MmYzYjAwMTFjN2RiODUwOWI3MDQuLmVhNjNhM2ZmYTJlY2ZlNmI4M2EyNjIxMmExYmEx
YmEzYzA0ODM4NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVj
dGlvbi5oCkBAIC01MSw3ICs1MSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNzSWRlbnRp
Zmllci5oIgogI2VuZGlmCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXVEYgewog
Y2xhc3MgUnVuTG9vcDsKIH0KIApAQCAtMTI3LDggKzEyNyw4IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBpZGVudGlmaWVySXNOdWxsKElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4g
IWlkZW50aWZpZXI7IH0KICNlbmRpZgogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVjdGlv
bj4gY3JlYXRlU2VydmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBXZWJDb3JlOjpS
dW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9u
PiBjcmVhdGVDbGllbnRDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVudCosIFdlYkNvcmU6OlJ1
bkxvb3AqIGNsaWVudFJ1bkxvb3ApOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+
IGNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV1RGOjpSdW5Mb29w
KiBjbGllbnRSdW5Mb29wKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVh
dGVDbGllbnRDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVudCosIFdURjo6UnVuTG9vcCogY2xp
ZW50UnVuTG9vcCk7CiAgICAgfkNvbm5lY3Rpb24oKTsKIAogICAgIENsaWVudCogY2xpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KQEAgLTE3Nyw3ICsxNzcsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpblNlbmRTeW5jKCkgY29uc3QgeyByZXR1cm4gbV9pblNlbmRTeW5jQ291bnQ7IH0K
IAogcHJpdmF0ZToKLSAgICBDb25uZWN0aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENs
aWVudCosIFdlYkNvcmU6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOworICAgIENvbm5lY3Rpb24o
SWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50KiwgV1RGOjpSdW5Mb29wKiBjbGllbnRS
dW5Mb29wKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShJZGVudGlmaWVyKTsKICAgICB2
b2lkIHBsYXRmb3JtSW52YWxpZGF0ZSgpOwogICAgIApAQCAtMjIzLDcgKzIyMyw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1faXNDb25uZWN0ZWQ7CiAgICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV9j
b25uZWN0aW9uUXVldWU7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOwor
ICAgIFdURjo6UnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOwogCiAgICAgSGFzaE1hcDxTdHJpbmdS
ZWZlcmVuY2UsIHN0ZDo6cGFpcjxSZWZQdHI8V29ya1F1ZXVlPiwgUmVmUHRyPFdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlcj4+PiBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnM7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3Bw
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAK
aW5kZXggZmY1Njc0OWEwNzE5OWYyNjBiMDQ3ZmM0YmI1ZjljNWI4ODAwYWZhNC4uZGQ2NzhjODVh
MWU5YzMzYjkzNWJlODg1NWE0MTFiOTAzZjg2ZWZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKQEAgLTMwLDE2ICsz
MCwxNCBAQAogI2luY2x1ZGUgIkltcG9ydGFuY2VBc3NlcnRpb24uaCIKICNpbmNsdWRlICJNYWNo
UG9ydC5oIgogI2luY2x1ZGUgIk1hY2hVdGlsaXRpZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDxtYWNoL21hY2hfZXJyb3IuaD4KICNpbmNsdWRlIDxtYWNoL3Zt
X21hcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBIQVZFKFhQQykKICNpbmNs
dWRlIDx4cGMveHBjLmg+CiAjZW5kaWYKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5h
bWVzcGFjZSBDb3JlSVBDIHsKIAogc3RhdGljIGNvbnN0IHNpemVfdCBpbmxpbmVNZXNzYWdlTWF4
U2l6ZSA9IDQwOTY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2lu
UHJvY2Vzc01haW4ubW0KaW5kZXggYTg3MWYxMjFhOTczNDlkN2ZmODU4OGRkYmNhNDQ3N2Q1MTZk
MmQ0Yy4uZWFiYWJkZDkzOWMxNmQ0MzI0OGJlOTcyYzRjM2E2MzhkYmM1OTAwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9j
ZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQpAQCAt
MzIsNyArMzIsNyBAQAogI2ltcG9ydCAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbXBvcnQg
IlBsdWdpblByb2Nlc3MuaCIKICNpbXBvcnQgIldLQmFzZS5oIgotI2ltcG9ydCA8V2ViQ29yZS9S
dW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgVVNFKEFQUEtJVCkKIEBp
bnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAoV2ViTlNBcHBsaWNhdGlvbkRldGFpbHMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0K
aW5kZXggMTIxZDk0OTkwNjg0NDQyZDYwOTZmNWQ4OWMxNGU3Y2ZhNTc3OGVkNi4uMGZjZTQ3YzAw
ZGI1Y2VhNmM0NjI2N2FiNzJlYjAxY2Y2Nzk2OGRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VF
bnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtMzEsNyArMzEs
NyBAQAogI2ltcG9ydCAiUGx1Z2luUHJvY2Vzcy5oIgogI2ltcG9ydCAiV0tCYXNlLmgiCiAjaW1w
b3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+
CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNjEs
NyArNjEsNiBAQCBwdWJsaWM6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi11c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIGV4dGVybiAiQyIgV0tf
RVhQT1JUIHZvaWQgUGx1Z2luU2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29u
bmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAppbmRleCBj
ZTRlZjE2MGI2NTA1ZmFkODM2YjdjNzljMDE3NTc0OWQ0MWM0ZjkzLi5lODdjN2E3YTRkZTBmMjVm
OTY2MTc3Y2M0MTI3ZDE0YzBlZDFlZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKQEAgLTM0LDkgKzM0LDkgQEAKICNp
bmNsdWRlICJQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNoYXJl
YWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewogICAgIGNsYXNzIERhdGFSZWZlcmVuY2U7
CkBAIC0xODMsMTQgKzE4MywxNCBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkludFJlY3QgbV9k
aXJ0eVJlY3Q7CiAKICAgICAvLyBUaGUgcGFpbnQgdGltZXIsIHVzZWQgZm9yIGNvYWxlc2Npbmcg
cGFpbnRpbmcuCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclBy
b3h5PiBtX3BhaW50VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclBy
b3h5PiBtX3BhaW50VGltZXI7CiAgICAgCiAgICAgLy8gQSBjb3VudGVyIHVzZWQgdG8gcHJldmVu
dCB0aGUgcGx1Zy1pbiBmcm9tIGJlaW5nIGRlc3Ryb3llZC4KICAgICB1bnNpZ25lZCBtX3BsdWdp
bkRlc3RydWN0aW9uUHJvdGVjdENvdW50OwogCiAgICAgLy8gQSB0aW1lciB0aGF0IHdlIHVzZSB0
byBwcmV2ZW50IGRlc3RydWN0aW9uIG9mIHRoZSBwbHVnLWluIHdoaWxlIHBsdWctaW4KICAgICAv
LyBjb2RlIGlzIG9uIHRoZSBzdGFjay4KLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVn
aW5Db250cm9sbGVyUHJveHk+IG1fcGx1Z2luRGVzdHJveVRpbWVyOworICAgIFJ1bkxvb3A6OlRp
bWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wbHVnaW5EZXN0cm95VGltZXI7CiAKICAgICAv
LyBXaGV0aGVyIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSBwbHVnLWluIHByb3h5IGluIHRoZSB3ZWIg
cHJvY2VzcyB0byBkcmF3IHRoZSBjb250ZW50cyBvZiBpdHMKICAgICAvLyBiYWNraW5nIHN0b3Jl
IGludG8gdGhlIHdlYiBwcm9jZXNzIGJhY2tpbmcgc3RvcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCAzNmQxZmM0YTE2NWU1NWIxMDZm
NmEzYjM2NTc0ODU3YzJjZjcxY2ZjLi44ZmViOWZmZTcyYWM2NzM4ZWM1ZDA4ZjUyZmRmMzFjMjFi
NjRhNzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vz
cy5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgor
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSA8
Y3J0X2V4dGVybnMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmgKaW5kZXggN2EyMGVkMDViMmFhOWRjNWViZWQyODUyYWI2MTY1YjkzNWVkYjJmZi4uMTZm
MzIzODg1YTU3MzQ5NTAwYTEzNzI4NjkxNzc2NmE5MGQxZWUyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBwcml2
YXRlOgogICAgIAogICAgIGJvb2wgbV9zdXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxp
emF0aW9uOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luUHJvY2Vzcz4gbV9t
aW5pbXVtTGlmZXRpbWVUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxQbHVnaW5Qcm9jZXNzPiBt
X21pbmltdW1MaWZldGltZVRpbWVyOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBQTEFURk9STShNQUMpCiAgICAgLy8gVGhlIE1hY2ggcG9ydCB1c2VkIGZvciBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggYzcxYzFkNDgyZGNkNGYyNmVjYTU5MmQx
OWU3YjdjMjM2OGM3NTg1NC4uM2E0ZDE1YWQ1OWZkMjVkMjFkMjU5NTBjNTU5YThmNjYzYzExM2Ni
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKQEAgLTM5LDggKzM5LDggQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNwcApp
bmRleCAwYTU2NDYxYzk4YzFkY2UwODlmNjNkMWQ5NDMyNTRiMWUyNmNlYjY2Li4wNjdkNWQwZjVm
MzE0Y2IwMjlmMTYyZjY1ZDQ0NWY5NTgyMmZmMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNwcApA
QCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCiAjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYktpdDJJbml0aWFsaXplLmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpZiBQTEFU
Rk9STShHVEspCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2lmIFBMQVRGT1JNKFgxMSkgJiYgZGVm
aW5lZChHREtfV0lORE9XSU5HX1gxMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5j
cHAKaW5kZXggYjIyMzNhMzVhMWExMzk2OGEwMDA0YTIwYzExODg3MjRiYWIwODEyNS4uOGUwZGI4
YjQzZTBiOTQ3NmFkZTdmZTMzZmNkZmI4NjRjMzM5ZTUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0NoaWxkUHJvY2Vzcy5jcHAKQEAgLTI5LDggKzI5LDYgQEAKICNpbmNsdWRlICJTYW5kYm94SW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogQ2hpbGRQcm9jZXNzOjpD
aGlsZFByb2Nlc3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCmluZGV4IGJhNzIy
NjJmYTFmYzhlZmZlNzk2NDcwMDI5MDBkZGYzYTAzNGViYTkuLjM2NGY4M2U5ZmMwMjI0OTNiY2Zh
ODFkMGMwNTc1MDU1ZDlmYjExOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
aGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgK
QEAgLTI5LDkgKzI5LDkgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUg
PFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBA
IC0xMTQsNyArMTE0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBhZnRlciBhIGdpdmVuIHBlcmlvZCBv
ZiB0aW1lLgogICAgIHVuc2lnbmVkIG1fdGVybWluYXRpb25Db3VudGVyOwogCi0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6VGltZXI8Q2hpbGRQcm9jZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CisgICAg
UnVuTG9vcDo6VGltZXI8Q2hpbGRQcm9jZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CiAKICAgICBS
ZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIENvcmVJUEM6Ok1l
c3NhZ2VSZWNlaXZlck1hcCBtX21lc3NhZ2VSZWNlaXZlck1hcDsKQEAgLTEyNCw3ICsxMjQsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZEludGVybmFs
KGJvb2wpOwogICAgIHNpemVfdCBtX2FjdGl2ZVRhc2tDb3VudDsKICAgICBib29sIG1fc2hvdWxk
U3VzcGVuZDsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxDaGlsZFByb2Nlc3M+IG1fc3Vz
cGVuc2lvbkh5c3RlcmVzaXNUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxDaGlsZFByb2Nlc3M+
IG1fc3VzcGVuc2lvbkh5c3RlcmVzaXNUaW1lcjsKICAgICBSZXRhaW5QdHI8aWQ+IG1fcHJvY2Vz
c1N1cHByZXNzaW9uQXNzZXJ0aW9uOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKaW5kZXggZTliYWY5MTY0YmQ4OTk4ZmRmZGJmNDlmNjU5
Yzc1NTc1NzY0NTkwNC4uMTFlMDg2ODJlYTVmMGMxMjIxNzFiMGVkOWFiNTYzNmIzYzY1NDZiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCkBAIC0yNiw5
ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzUHJv
eHkuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgotCi11c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
bWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9j
ZXNzRW50cnlQb2ludC5oCmluZGV4IGM0Yzg1ODI5NGZmNWUyODFiODdmMjMwMzAxODhjNWI1NTk1
N2ZmYzcuLjkxZTI5NzY4NTBmNGI4MzVjMzI0NTFmMzEzNDc2YTdjNWQ0NjUwNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQ
cm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRy
eVBvaW50LmgKQEAgLTI5LDkgKzI5LDkgQEAKICNpbXBvcnQgIkNoaWxkUHJvY2Vzcy5oIgogI2lt
cG9ydCAiQ29tbWFuZExpbmUuaCIKICNpbXBvcnQgIldlYktpdDJJbml0aWFsaXplLmgiCi0jaW1w
b3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5o
PgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVBy
b2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5tbQppbmRleCA5NmE3ODFlNzUzNTM2OWY1N2Jk
NDU2ZWFkMTc1NjUxYjA0MWQwMmM5Li41ZjhmZjRlMDMxYWMyOWZlYTViNzZlYzYxYjlkNWRiNzUy
ZGU5YzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxp
dGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNz
L0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQubW0KQEAgLTM0LDggKzM0LDYgQEAKIAogI2RlZmluZSBT
SE9XX0NSQVNIX1JFUE9SVEVSIDEKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU6On5DaGlsZFByb2Nlc3NN
YWluRGVsZWdhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMv
TlBPYmplY3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVj
dFByb3h5LmNwcAppbmRleCBlNzRjYTJjNmFlYjdmZThkNzA3YWFhZTcxMzI0ZWI0YzllZDFkNGVl
Li5hMzRmMTlkYzU4NDQ2ZmRmMWJlMmYzYjY5M2ZmNDA1NjY3OWQwNjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmNwcApAQCAtMzUsMTAgKzM1
LDggQEAKICNpbmNsdWRlICJOUFJlbW90ZU9iamVjdE1hcC5oIgogI2luY2x1ZGUgIk5QUnVudGlt
ZVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIk5QVmFyaWFudERhdGEuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotCi11c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFs
aXplLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKaW5k
ZXggYzg4ODJkOGFlMWY0OWJiNjkwNWE4ZTAxMzQ3ODJiZWZmZGIwNzVkMC4uZmU5ZjVhZTdiYmYz
YzBhOGIwNTRiYTMwZWJiMzFlNjQ5ZmU2MGMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViS2l0MkluaXRpYWxpemUuY3BwCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9S
dW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYg
UExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIldlYlN5c3RlbUludGVyZmFjZS5oIgpAQCAtNDYsNyAr
NDYsNyBAQCB2b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKIAogICAgIEpTQzo6aW5pdGlhbGl6ZVRo
cmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKIAogI2lmICFMT0dfRElTQUJMRUQKICAgICBXZWJDb3JlOjppbml0
aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwCmlu
ZGV4IGI1MzE1NWY5ZDViOTg3YjU4NjI2NDBmOGM1YjNmMTE4ZjU3N2M1MDEuLjY3YzhmZDQzMDQ5
MmUyMWQxOGE4ZDdhMTM3NmQ1MjYzM2EzMGMxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcApAQCAt
MjcsOCArMjcsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ludFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvRmluZElu
ZGljYXRvcldpbmRvdy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvRmluZElu
ZGljYXRvcldpbmRvdy5oCmluZGV4IDhlNDc4MDE2OTMyMDlmYmYxN2YzNTNkZTQyZDEzM2FmNDZm
ZmYwNTQuLjY4NjRiNjQ5YmYwMTE5YzMwZjcwNTA5MWY0MDcyYzkyMjYwNmRhN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2lu
ZG93LmgKQEAgLTI3LDEwICsyNywxMCBAQAogI2RlZmluZSBGaW5kSW5kaWNhdG9yV2luZG93X2gK
IAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2ltcG9ydCA8d3RmL1JlZlB0
ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
IAogQGNsYXNzIFdLRmluZEluZGljYXRvcldpbmRvd0FuaW1hdGlvbjsKIEBjbGFzcyBXS1ZpZXc7
CkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgV0tXaW5kb3dCb3VuY2VBbmltYXRpb25D
b250ZXh0UmVmIG1fYm91bmNlQW5pbWF0aW9uQ29udGV4dDsKICAgICBSZXRhaW5QdHI8V0tGaW5k
SW5kaWNhdG9yV2luZG93QW5pbWF0aW9uPiBtX2JvdW5jZUFuaW1hdGlvbjsKIAotICAgIFdlYkNv
cmU6OlJ1bkxvb3A6OlRpbWVyPEZpbmRJbmRpY2F0b3JXaW5kb3c+IG1fc3RhcnRGYWRlT3V0VGlt
ZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RmluZEluZGljYXRvcldpbmRvdz4gbV9zdGFydEZhZGVP
dXRUaW1lcjsKICAgICBSZXRhaW5QdHI8V0tGaW5kSW5kaWNhdG9yV2luZG93QW5pbWF0aW9uPiBt
X2ZhZGVPdXRBbmltYXRpb247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCmluZGV4IDBlY2I4MWM5YWIzMjcwMGYzNmNkZmI2
OGJkOGY0NDY0OWQ3OGRiNjQuLjZhOTJlNDdiNTViZWYzYzU1M2ViNDI1MTk5M2UxNjQxNTcyNTNh
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRp
bmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRp
bmdWaWV3Lm1tCkBAIC0zNCw4ICszNCw4IEBACiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNp
bXBvcnQgPFBERktpdC9QREZLaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29y
ZU9iakNFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBjNGM1YTIzMWU1NDM5NjQ5NGQ5ZDYwMmNmYjdl
NWNlOGQ1ZGM2ODY3Li4zZmYwZmI2OTM2YWNlOWUyMWM2ZDM1MDgxZDllMTc0ZDY0NmI3YzEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC03OSw3ICs3
OSw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlZ2lvbi5o
PgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1
ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZU5TU3RyaW5nRXh0cmFzLmg+CkBAIC05MCw2ICs4OSw3IEBA
CiAjaW1wb3J0IDxzeXMvc3RhdC5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogLyogQVBJIGludGVy
bmFscy4gKi8KICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4
IGE0MjVhNGYxMzU2ODQwNGMxMjI1NGY4YTY0YTBkYjY0OTU2ZTFjZGIuLjkzZWZlMjIwYWFkZGZk
ZDc4Y2Y0NmUyMGY3ZmQ0MDRhY2VmMjE2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0zMiw4ICszMiw4IEBACiAjaW5jbHVkZSAiQmFj
a2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIkxh
eWVyVHJlZUNvbnRleHQuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgUmVnaW9uOwpAQCAtMTE2LDcgKzExNiw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2lzQmFja2luZ1N0b3JlRGlzY2FyZGFibGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEJh
Y2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1l
cjxDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk+IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVy
OworICAgIFJ1bkxvb3A6OlRpbWVyPENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eT4gbV9kaXNj
YXJkQmFja2luZ1N0b3JlVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKaW5kZXggNDdi
YTI0MTMzMzA3NjM5NmRhYTMwMmZlMDE0YzEyNzczOWMyNjYwNy4uZjZlZGI0NmU5ZjdjMzU4YzE3
MTQzMjNlZjdhNjM4ODlmN2NmMTY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKQEAgLTI5LDggKzI5LDggQEAKICNpbmNsdWRlICJCYWNr
aW5nU3RvcmUuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiTGF5
ZXJUcmVlQ29udGV4dC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBSZWdpb247CkBAIC0xMTIsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNCYWNraW5nU3RvcmVEaXNjYXJkYWJsZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QmFj
a2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVy
PERyYXdpbmdBcmVhUHJveHlJbXBsPiBtX2Rpc2NhcmRCYWNraW5nU3RvcmVUaW1lcjsKKyAgICBS
dW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5SW1wbD4gbV9kaXNjYXJkQmFja2luZ1N0b3Jl
VGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNw
cAppbmRleCAzYmQxZWE2MDNlMzE4OGI0M2MzMDU5NTU1MTZmNzE3MWZlYTZkNDIyLi42OWU2Yjgz
YmNkMjQ3YTBhM2U5N2Q0YjQwNmExZDU5NGQyNjJmNGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwu
Y3BwCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VIYW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCmluZGV4IGRkODAw
NTYxODBjMTBmNmY5YTFlOTk4NzJmZDFkOTQ1YzU1NzE5MWUuLmYwNjM0ZTk5ZWQ1ZWY3YTdhNjY3
MjhjNDg5OWIzMzhjYmZkZjI3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKQEAgLTMzLDEw
ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFu
ZGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4K
ICNpbmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8bG9jYWxlLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbQppbmRleCBiNGU5MjU4MjQ3MmYwOTFhOThkNzE0YTVmY2Q2YTIwY2YzNWY1
OTM0Li4xYmUxNzQ4MmZjN2NiNWE2MTdjMjVjZDIyMGY5MjAzMDI5NmUyZDMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbQpAQCAtMjksNyArMjksNiBAQAogI2ltcG9ydCAiRHluYW1pY0xpbmtlckVu
dmlyb25tZW50RXh0cmFjdG9yLmgiCiAjaW1wb3J0ICJFbnZpcm9ubWVudFZhcmlhYmxlcy5oIgog
I2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbXBvcnQgPGNydF9leHRlcm5zLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgog
I2ltcG9ydCA8bWFjaC9tYWNoaW5lLmg+CkBAIC00MCw2ICszOSw3IEBACiAjaW1wb3J0IDxzeXMv
c3RhdC5oPgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTQ4LDggKzQ4LDYgQEAKICNpbXBvcnQgPHhwYy94cGMuaD4KICNlbmRpZgogCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogLy8gRklYTUU6IFdlIHNob3VsZCBiZSBkb2luZyB0
aGlzIGFub3RoZXIgd2F5LgogZXh0ZXJuICJDIiBrZXJuX3JldHVybl90IGJvb3RzdHJhcF9yZWdp
c3RlcjIobWFjaF9wb3J0X3QsIG5hbWVfdCwgbWFjaF9wb3J0X3QsIHVpbnQ2NF90KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAppbmRleCAwOTQwZGI0YjAwNTM4MDgxN2RhOTFlOWU3ODhjNjA2OWEyZjI4NDRm
Li5mZGY2Yzc5ZTI0ZTRmNTQ2NjAzMDU0MjNiMTc1YzEwM2VmN2VkYmYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2Vz
LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KIAogI2lmIFVTRShTRUNVUklUWV9GUkFNRVdPUkspCiAjaW5jbHVkZSAiU2VjSXRlbVNoaW1Q
cm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NQcm94eS5jcHAKaW5kZXggN2FkMTcyYTQwN2IyYTY2NjNkMjcxNzZjOTNhZWIw
ZWRjODJhNGE0YS4uZGE2MzdjNDE1NWZkZWU2Zjg2NjU1Y2UzMjAyNDc5MzMwNTg0MjhjZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzUHJveHkuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSAiV2ViUGx1Z2luU2l0ZURh
dGFNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFj
aFBvcnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZl
bmVzc1RpbWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1Rp
bWVyLmNwcAppbmRleCA3NjZhZTBlMjBjMjdlZGI0OTE3ZTc2ZmIxNTYyMWQ2NzE0ZjViYWJiLi45
NzM5ZmEzYTExZjU0MDhhNjEwMGIwNjM4ZWJiMTAzYTU5ODQ2ZmJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCkBAIC0yNiw4ICsyNiw2
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzcG9uc2l2ZW5lc3NUaW1lci5o
IgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0
YXRpYyBjb25zdCBkb3VibGUgcmVzcG9uc2l2ZW5lc3NUaW1lb3V0ID0gMzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCmluZGV4IDhkYjI4NzJmZGVh
ZmU3OTdjOWFmNGU3ZWM3MTI5MTZlMjZiN2VlZWMuLmY3NWMwYTk5OGZmNDY3ZGFjOTNiYTczYWJj
MGUyYTU2YjZjODE1OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNw
b25zaXZlbmVzc1RpbWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNp
dmVuZXNzVGltZXIuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBSZXNwb25zaXZlbmVzc1Rp
bWVyX2gKICNkZWZpbmUgUmVzcG9uc2l2ZW5lc3NUaW1lcl9oCiAKLSNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogICAgIFJlc3BvbnNpdmVuZXNzVGltZXI6
OkNsaWVudCogbV9jbGllbnQ7CiAgICAgYm9vbCBtX2lzUmVzcG9uc2l2ZTsKIAotICAgIFdlYkNv
cmU6OlJ1bkxvb3A6OlRpbWVyPFJlc3BvbnNpdmVuZXNzVGltZXI+IG1fdGltZXI7CisgICAgUnVu
TG9vcDo6VGltZXI8UmVzcG9uc2l2ZW5lc3NUaW1lcj4gbV90aW1lcjsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1By
b3ZpZGVyLmgKaW5kZXggZTBlNTMxMDI1YjFkYTcwMjNhNThkMjMzMTlkZWFjMWI4NDJkYzZhOS4u
YzBkNGVjOTYzNzEwMjRmZWZjZTE4ZjI0OTM3NjZiMGM4NmJiOGY4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oCkBAIC0yOCw5ICsyOCw5IEBA
CiAKICNpbmNsdWRlICJWaXNpdGVkTGlua1RhYmxlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5r
SGFzaC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAg
IFZpc2l0ZWRMaW5rVGFibGUgbV90YWJsZTsKIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6TGlua0hh
c2gsIFdlYkNvcmU6OkxpbmtIYXNoSGFzaD4gbV9wZW5kaW5nVmlzaXRlZExpbmtzOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFZpc2l0ZWRMaW5rUHJvdmlkZXI+IG1fcGVuZGluZ1Zpc2l0
ZWRMaW5rc1RpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFZpc2l0ZWRMaW5rUHJvdmlkZXI+IG1f
cGVuZGluZ1Zpc2l0ZWRMaW5rc1RpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggMTc2MjZmY2YzNjk4NGE5
MjE0MjA4YTFmOGYxNjRiMmM5MzAyZjI2NS4uNDliYjJhMmQ1Mjk5NTU2MzkxMWU5YjAzZWNiNGFh
NTJjYjY0MWEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAt
NjAsMTEgKzYwLDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFs
aXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQogI2luY2x1
ZGUgIldlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMGMzY2VjMGQzMzY1NmU4OTA4NDgwMWI4MmRiZjg1
Yzk0NzIzMmYzNS4uYmUxYmQ3NGQ5OGVmM2QxNjFmZGEwNzc1OWJlM2I3YmYxMmEyZWMyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTQxLDEw
ICs0MSwxMCBAQAogI2luY2x1ZGUgIldlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1ZGRlblRlcm1pbmF0aW9uLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9VUkwuaD4KICNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFi
YXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcApp
bmRleCAwZWExMDliMjM0MGI5MjM4NDk2NDdlZjE4MDg5YmE0ZThlNmY5ZjBiLi40NGFhNjVmODEz
OTcwNjhjNTU5OTQ3ZmE1NDcxOGYxN2ZkNGE0NmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJEYXRhYmFz
ZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kLmgiCi0jaW5jbHVkZSA8
V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbQppbmRleCAzNjVjYjM2MTI1NTkwOWM4MzFlM2ZhZGQz
ODVjYmFkNmE4NzIyNTRmLi5mNTBkZmI3NjZiMjAxZTA3MWMxYWUzMjQzNDZjNDg4ZWI2OGZlYjVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xl
Z2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vz
c01haW4ubW0KQEAgLTMxLDEyICszMSwxMiBAQAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgi
CiAjaW1wb3J0ICJXS0Jhc2UuaCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+CiAjaW1wb3J0IDxz
ZXJ2ZXJzL2Jvb3RzdHJhcC5oPgogI2ltcG9ydCA8c3Bhd24uaD4KICNpbXBvcnQgPHN0ZGlvLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2lt
cG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VF
bnRyeVBvaW50Lm1tCmluZGV4IDIxZWIzMzZkOTAyY2Q3NTNlZGIwNjYxNzlmNDM2Y2FhYmJmZjNm
YTkuLjU3YjgzYjhlOGQ0Y2U0MjMwYmM3NWNhMjY3YjAwYTJkNDM5MWM5ZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJD
b250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5t
bQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV0tCYXNlLmgiCiAjaW1wb3J0ICJXZWJQcm9j
ZXNzLmgiCiAjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgotI2ltcG9ydCA8V2ViQ29y
ZS9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgK
aW5kZXggN2VlMmE3ZWQxM2IxMjMyZGUwMGRmOTI3ZmI2YmY2Yzg0OTgxMmViNi4uMjZjMmQ4MTNl
ZTMwZWJjMTRjMjE4YWY1MjFmMTQ2OTRiZmZhODcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
aApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkUHJpb3Jp
dHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3Au
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKIApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW50ZXJuYWxseUZhaWxl
ZExvYWRUaW1lckZpcmVkKCk7CiAgICAgCiAgICAgSGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6UmVz
b3VyY2VMb2FkZXI+PiBtX2ludGVybmFsbHlGYWlsZWRSZXNvdXJjZUxvYWRlcnM7Ci0gICAgV2Vi
Q29yZTo6UnVuTG9vcDo6VGltZXI8V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyPiBtX2ludGVybmFs
bHlGYWlsZWRMb2FkVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyPiBtX2ludGVybmFsbHlGYWlsZWRMb2FkVGltZXI7CiAgICAgCiAgICAgSGFzaE1hcDx1
bnNpZ25lZCBsb25nLCBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkZXI+PiBtX3dlYlJlc291cmNlTG9h
ZGVyczsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaAppbmRleCBlNTE3OGFkMTc0
Njc1YzVkYzI3OGJhYjk0NzU3MTI4MGYxNzQ3NDgyLi5mYWRlNDFkZjU4ZDQ3OTgxZDMxNGM5YThm
NDRhZDMxYTcwZmFlZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oCkBAIC0yOCwx
MSArMjgsMTEgQEAKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCi0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CiAjaW5jbHVkZSA8
aGVhcC9XZWFrSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBzdHJ1Y3QgTlBPYmpl
Y3Q7CiB0eXBlZGVmIHN0cnVjdCBfTlBWYXJpYW50IE5QVmFyaWFudDsKQEAgLTk4LDcgKzk4LDcg
QEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPEpTQzo6SlNPYmplY3QqLCBOUEpTT2JqZWN0Kj4gbV9u
cEpTT2JqZWN0czsKICAgICBIYXNoTWFwPE5QT2JqZWN0KiwgSlNDOjpXZWFrPEpTTlBPYmplY3Q+
PiBtX2pzTlBPYmplY3RzOwogICAgIFZlY3RvcjxOUE9iamVjdCo+IG1fbnBPYmplY3RzVG9GaW5h
bGl6ZTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxOUFJ1bnRpbWVPYmplY3RNYXA+IG1f
ZmluYWxpemF0aW9uVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8TlBSdW50aW1lT2JqZWN0TWFw
PiBtX2ZpbmFsaXphdGlvblRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZVBsdWdpbi5oCmluZGV4IGI2NDlhMjBlMDhmNzYwMThmZWQwNzFiMTI2YTRkZDE2N2M2
NGQ4MmUuLjI5MTU3ZjI1YzY4ZTYyZGI4OTM0OWQ0MWMxZGFhN2FjZTZkNGIxZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBs
dWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZVBsdWdpbi5oCkBAIC0zMyw4ICszMyw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BZmZp
bmVUcmFuc2Zvcm0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
IApAQCAtMzMwLDcgKzMzMCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgbV9yZXBlYXQ7CiAg
ICAgICAgIFRpbWVyRnVuYyBtX3RpbWVyRnVuYzsKIAotICAgICAgICBXZWJDb3JlOjpSdW5Mb29w
OjpUaW1lcjxUaW1lcj4gbV90aW1lcjsKKyAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZXI+IG1f
dGltZXI7CiAgICAgfTsKICAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIHN0ZDo6dW5pcXVl
X3B0cjxUaW1lcj4+IFRpbWVyTWFwOwogICAgIFRpbWVyTWFwIG1fdGltZXJzOwpAQCAtMzc3LDcg
KzM3Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBGSVhNRTogSXQncyBhIGJpdCB3YXN0ZWZ1bCB0
byBoYXZlIG9uZSBudWxsIGV2ZW50IHRpbWVyIHBlciBwbHVnLWluLgogICAgIC8vIFdlIHNob3Vs
ZCBpbnZlc3RpZ2F0ZSBoYXZpbmcgb25lIHBlciB3aW5kb3cuCi0gICAgV2ViQ29yZTo6UnVuTG9v
cDo6VGltZXI8TmV0c2NhcGVQbHVnaW4+IG1fbnVsbEV2ZW50VGltZXI7CisgICAgUnVuTG9vcDo6
VGltZXI8TmV0c2NhcGVQbHVnaW4+IG1fbnVsbEV2ZW50VGltZXI7CiAgICAgTlBfQ0dDb250ZXh0
IG1fbnBDR0NvbnRleHQ7CiAjZW5kaWYKICNlbGlmIFBMVUdJTl9BUkNISVRFQ1RVUkUoV0lOKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luU3RyZWFtLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAppbmRleCBiMzUwMTg2MzU2ZTQ5NTYwM2Y0
Y2UwMmYxOTk0ZThiOTkzOTFjMTU3Li5hZDgyYzdhYTMyOGY1MzE1ZmFhMjhmMWI2ZGRhMjgyN2Nk
YjJjY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaApAQCAtMjksMTIgKzI5
LDEyIEBACiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKICNpbmNsdWRlIDxXZWJD
b3JlL0ZpbGVTeXN0ZW0uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL25wcnVudGltZV9pbnRlcm5hbC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTA1
LDcgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgQ1N0cmluZyBtX21pbWVUeXBlOwogICAgIENTdHJp
bmcgbV9oZWFkZXJzOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVn
aW5TdHJlYW0+IG1fZGVsaXZlcnlEYXRhVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8TmV0c2Nh
cGVQbHVnaW5TdHJlYW0+IG1fZGVsaXZlcnlEYXRhVGltZXI7CiAgICAgT3duUHRyPCBWZWN0b3I8
dWludDhfdD4+IG1fZGVsaXZlcnlEYXRhOwogICAgIGJvb2wgbV9zdG9wU3RyZWFtV2hlbkRvbmVE
ZWxpdmVyaW5nOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5oCmluZGV4IDJkMDQzM2Q1ODM5NmQxMGVkMjhiNTdiNWI4Y2U5OTUyZjJlMTY2OTcu
Ljg5MWU4NDk3NmE4YWNmZWU1Yzg3N2I3ZTU2NmRhZDhjNjM2MGJjMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMzYsOSArMzYsOSBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+
CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogLy8g
RklYTUU6IEV2ZW50dWFsbHkgdGhpcyBzaG91bGQgbW92ZSB0byBXZWJDb3JlLgogCkBAIC0yMzQs
NyArMjM0LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFBlbmRpbmcgVVJMUmVxdWVzdHMgdGhhdCB0
aGUgcGx1Zy1pbiBoYXMgbWFkZS4KICAgICBEZXF1ZTxSZWZQdHI8VVJMUmVxdWVzdD4+IG1fcGVu
ZGluZ1VSTFJlcXVlc3RzOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBsdWdpblZpZXc+
IG1fcGVuZGluZ1VSTFJlcXVlc3RzVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luVmll
dz4gbV9wZW5kaW5nVVJMUmVxdWVzdHNUaW1lcjsKIAogICAgIC8vIFBlbmRpbmcgZnJhbWUgbG9h
ZHMgdGhhdCB0aGUgcGx1Zy1pbiBoYXMgbWFkZS4KICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRy
PFdlYkZyYW1lPiwgUmVmUHRyPFVSTFJlcXVlc3Q+PiBGcmFtZUxvYWRNYXA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZERyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmgKaW5kZXggMjQy
ZDlkYzIyNzMwMzZkMzk1MjU5YzQwYmIzNjE0OTA4Yzg4ZGVkMC4uOTM5NjI2Y2Y4MTgzNWZiNmNh
YTE3Njc0N2VhMGQwNjllMDk5YTNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUg
IkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVnaW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTEyNCw4ICsxMjQsOCBA
QCBwcml2YXRlOgogICAgIC8vIHdvbid0IHBhaW50IHVudGlsIHBhaW50aW5nIGhhcyByZXN1bWVk
IGFnYWluLgogICAgIGJvb2wgbV9pc1BhaW50aW5nU3VzcGVuZGVkOwogCi0gICAgV2ViQ29yZTo6
UnVuTG9vcDo6VGltZXI8Q29vcmRpbmF0ZWREcmF3aW5nQXJlYT4gbV9kaXNwbGF5VGltZXI7Ci0g
ICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8Q29vcmRpbmF0ZWREcmF3aW5nQXJlYT4gbV9leGl0
Q29tcG9zaXRpbmdUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxDb29yZGluYXRlZERyYXdpbmdB
cmVhPiBtX2Rpc3BsYXlUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxDb29yZGluYXRlZERyYXdp
bmdBcmVhPiBtX2V4aXRDb21wb3NpdGluZ1RpbWVyOwogCiAgICAgLy8gVGhlIGxheWVyIHRyZWUg
aG9zdCB0aGF0IGhhbmRsZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCiAgICAgUmVmUHRyPExh
eWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAppbmRleCAzZTVhODkwYWEwYmRlZWI0
YzgzYTYzOTkwMTgwNjgwMDVmMTBiMDQxLi4xYjEzZWQwNzVlMDBlYTczYzY0MjBkM2UxODgzNWE1
Y2EwZjNmZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWFJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhSW1wbC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiRHJhd2luZ0Fy
ZWEuaCIKICNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdp
b24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwpA
QCAtMTI3LDggKzEyNyw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUGFpbnRpbmdTdXNwZW5k
ZWQ7CiAgICAgYm9vbCBtX2Fsd2F5c1VzZUNvbXBvc2l0aW5nOwogCi0gICAgV2ViQ29yZTo6UnVu
TG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBtX2Rpc3BsYXlUaW1lcjsKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZXhpdENvbXBvc2l0aW5nVGltZXI7
CisgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBtX2Rpc3BsYXlUaW1lcjsKKyAg
ICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZXhpdENvbXBvc2l0aW5nVGltZXI7
CiAKICAgICAvLyBUaGUgbGF5ZXIgdHJlZSBob3N0IHRoYXQgaGFuZGxlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZy4KICAgICBSZWZQdHI8TGF5ZXJUcmVlSG9zdD4gbV9sYXllclRyZWVIb3N0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLmNwcAppbmRleCAxYzFlMjE0NWExMTM2MWNlYmUyYzlmYjc4MTdiYjdiMTA3ZTZlNmM0Li43
MjAxNzg3Y2I0YzAxMDRmYWRjZmNjM2JiNzMyYTBlYmI3ODJmZGNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAt
MzMsOCArMzMsOCBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCiAjaW5jbHVk
ZSA8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaAppbmRleCA4OTZmMTI2NzU4MTg1NTdlNjk1
MjBiMzZhOWZiNDMyYTA3ZGE1ODg5Li42MWM2ODE4ZGQ2YjVmYmMwYzVjOTQ0MzY2OWY4Zjk5Njc5
ZGM3MTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFn
ZU92ZXJsYXkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92
ZXJsYXkuaApAQCAtMjgsOCArMjgsOCBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5j
bHVkZSAiV0tCYXNlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwpAQCAtOTAsNyArOTAsNyBAQCBw
cml2YXRlOgogICAgIENsaWVudCogbV9jbGllbnQ7CiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwog
Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UGFnZU92ZXJsYXk+IG1fZmFkZUFuaW1hdGlv
blRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFBhZ2VPdmVybGF5PiBtX2ZhZGVBbmltYXRpb25U
aW1lcjsKICAgICBkb3VibGUgbV9mYWRlQW5pbWF0aW9uU3RhcnRUaW1lOwogICAgIGRvdWJsZSBt
X2ZhZGVBbmltYXRpb25EdXJhdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDRiMWRkNGY2OWQ0NWZjYjUxNDA3NWZhNmFlMTJkZGUw
ZmZjMTNlMzcuLjhiMDdiMTUzMjlkZTQ5MGZiNWZkZDUzMGFiNGY4NWJjYTUxMzkyMTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyMyw3
ICsxMjMsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXNwb25zZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVn
aXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KQEAgLTE0MCw2
ICsxMzksNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJMRShNSFRNTCkKICNpbmNsdWRlIDxXZWJDb3Jl
L01IVE1MQXJjaGl2ZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggY2RmNjllNjViYjJiN2QxOGZiNDE2N2Q3M2IxNmVmMjQ2OGMxZDk3MC4uZDZm
YzE3MWYxNzk3YmEzOWY3NGRkNDU3MDc0NGI5NDM1NjNmYjE5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC04NTUsNyArODU1LDcgQEAgcHJpdmF0
ZToKICAgICBTdHJpbmcgbV9wcmltYXJ5UGx1Z0luUGFnZU9yaWdpbjsKICAgICBTdHJpbmcgbV9w
cmltYXJ5UGx1Z0luT3JpZ2luOwogICAgIFN0cmluZyBtX3ByaW1hcnlQbHVnSW5NaW1lVHlwZTsK
LSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX2RldGVybWluZVByaW1hcnlT
bmFwc2hvdHRlZFBsdWdJblRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fZGV0
ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luVGltZXI7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKE1BQykKQEAgLTg5Nyw4ICs4OTcsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxQYWdlQmFu
bmVyPiBtX2hlYWRlckJhbm5lcjsKICAgICBSZWZQdHI8UGFnZUJhbm5lcj4gbV9mb290ZXJCYW5u
ZXI7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX3NldENhblN0YXJ0
TWVkaWFUaW1lcjsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX3NlbmRE
aWRVcGRhdGVJbldpbmRvd1N0YXRlVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4g
bV9zZXRDYW5TdGFydE1lZGlhVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9z
ZW5kRGlkVXBkYXRlSW5XaW5kb3dTdGF0ZVRpbWVyOwogICAgIGJvb2wgbV9tYXlTdGFydE1lZGlh
V2hlbkluV2luZG93OwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlVuZG9TdGVw
Pj4gbV91bmRvU3RlcE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CmluZGV4IGMwOTBmNDQ1NTU2M2E4OGJmZDFlNjgwOTgzNThjY2I3OGFiYWQzYzIuLjM0NDQzNDdh
OGJhMjVjNTMzZTk1MjYwNTE1NmI2ZjhjNjcwZjM4NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNzQsNyArNzQsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vj
dXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC04Myw2ICs4
Miw3IEBACiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hD
b3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogI2lmIEVOQUJM
RShORVRXT1JLX0lORk8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Vm
bC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9X
ZWJQcm9jZXNzTWFpbkVmbC5jcHAKaW5kZXggNWIzNDgwZGE0ZmRhM2JkM2M4NGIwMWYzN2FmNWZl
ZDAzYWRkMGUwMi4uNGQyNDlkYmQyMzhhMjgyMjg3ZjExN2ViN2VjMzMxYTZhZjQwNzNmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZs
LmNwcApAQCAtMzYsMTEgKzM2LDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlv
bkNoYWxsZW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJQcm9jZXNzLmg+CiAjaW5jbHVkZSA8bGlic291
cC9zb3VwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8dW5p
c3RkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKICNpZmRlZiBIQVZFX0VDT1JFX1gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcAppbmRleCA1NGM4ZGYzZTBjYmNlYzc1
ZDcwOTJjMmIyNDI2YWM3ZmY1MWM0ZWY4Li5iNDgxZWUzNGYyM2UzYWI4YWZlZTRlYmI1MmFlYjUw
ZTAyMzc1MzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQ
cm9jZXNzTWFpbkd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2Vi
UHJvY2Vzc01haW5HdGsuY3BwCkBAIC0zMiwxMiArMzIsMTIgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5n
Q29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dlYlByb2Nlc3MuaD4KICNp
bmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8bGliaW50bC5oPgogI2luY2x1ZGUgPGxpYnNv
dXAvc291cC5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dSZWZQdHIuaD4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214714</attachid>
            <date>2013-10-21 01:51:41 -0700</date>
            <delta_ts>2013-11-09 01:54:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116606-20131021105139.patch</filename>
            <type>text/plain</type>
            <size>166601</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlZGRlYWU1ZTUwMWQzY2ViMTRhMzc0
OTFlNWE1YTExMDAxNGUzZDkuLjQyZTAzZDg4N2VkM2YxODQxNWFmNzc3MGIxNDI0NDYyZTZkZTUx
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTAwIEBACisyMDEzLTEwLTIxICBQYXRyaWNrIEdhbnN0ZXJlciAg
PHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgUnVuTG9vcCBmcm9tIFdlYkNvcmUg
dG8gV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY2MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aXRoIHRoaXMgY2hhbmdlIFJ1bkxvb3AgY2FuIGJlIHVzZWQgaW4gSmF2YVNjcmlwdENvcmUgdG9v
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYudmN4cHJv
ai9XVEYudmN4cHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL1BsYXRmb3JtQmxh
Y2tCZXJyeS5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAg
ICogd3RmL1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVdpbi5jbWFr
ZToKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6SG9sZGVyOjpI
b2xkZXIpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpIb2xkZXI6OnJ1bkxvb3ApOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpjdXJyZW50KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6bWFpbik6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OmlzTWFpbik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnBlcmZvcm1X
b3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2gpOgorICAgICAgICAqIHd0Zi9S
dW5Mb29wLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmgu
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnRSZXBlYXRpbmcpOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0T25lU2hvdCk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNSZXBlYXRpbmcpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lcjo6VGltZXIpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lcjo6ZmlyZWQp
OgorICAgICAgICAqIHd0Zi9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVy
cnkuY3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAg
ICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2YvUnVuTG9vcENGLmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cGVyZm9y
bVdvcmspOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpydW5Gb3JEdXJhdGlv
bik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXVEY6OlJ1bkxv
b3A6OnJ1bik6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnN0b3ApOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpU
aW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQpOgor
ICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYvZWZsL1J1bkxvb3BF
ZmwuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1J1bkxvb3BF
ZmwuY3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpydW4pOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwRXZl
bnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGlt
ZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQpOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYvZ3RrL1J1bkxvb3BHdGsu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsu
Y3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpydW4pOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjppbm5lcm1vc3RMb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cHVz
aE5lc3RlZE1haW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cG9wTmVzdGVkTWFpbkxv
b3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6cXVldWVXb3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1l
ckJhc2U6OmNsZWFyVGltZXJTb3VyY2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJh
c2U6OnRpbWVyRmlyZWRDYWxsYmFjayk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFz
ZTo6c3RhcnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAgKiB3dGYv
d2luL1J1bkxvb3BXaW4uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1J1bkxvb3BXaW4uY3BwLgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpSdW5Mb29wV25kUHJv
Yyk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnduZFByb2MpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpydW4pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKToKKyAgICAgICAgKFdU
Rjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6On5SdW5Mb29wKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdURjo6Z2VuZXJhdGVUaW1lcklEKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UpOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNl
OjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisK
IDIwMTMtMTAtMjAgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBT
dHJ1Y3R1cmVTdHViSW5mbydzIHVzZWRSZWdpc3RlcnMgc2V0IHNob3VsZCBiZSBhYmxlIHRvIHRy
YWNrIGFsbCByZWdpc3RlcnMsIG5vdCBqdXN0IHRoZSBvbmVzIHRoYXQgb3VyIEpJVCdzIHZpZXcg
YXMgdGVtcG9yYXJpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ODk2ZGZmY2RiNDIzYzJhMWRlYjNlNTUxNmRj
MWE5YzM1ZGRlNzBhLi4wZTM2ODUzOGY0YjY0ZTQ4Yjc3ZGMxNGJjNjFkNDZlMWUzYTQxYzYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMTAtMjEgIFBhdHJpY2sgR2Fuc3RlcmVy
ICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29y
ZSB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExNjYwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21h
a2U6CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1XaW4u
Y21ha2U6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKwogMjAxMy0x
MC0yMSAgU2FudG9zaCBNYWh0byAgPHNhbnRvc2gubWFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAg
QVNTRVJUSU9OIEZBSUxFRDogIXN0eWxlLT5wcm9wZXJ0eUlzSW1wb3J0YW50KHByb3BlcnR5SUQp
IGluIFdlYkNvcmU6OnNldFRleHREZWNvcmF0aW9uUHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCAzZGM1ZmViMzJhYTBkOGQ2MDUyZDIwYTI0NTdjMDQ4NWE4MGUzYjM0Li5kMDZhNjEzMDJiNTIx
ZmM2OGQwYzY5ZWMwMmQ5OGZlZGZkMjIwMmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDkgQEAKKzIwMTMtMTAtMjEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29yZSB0byBXVEYKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjYwNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW06CisgICAgICAgICgrW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdGlhbGl6ZV0p
OgorICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tOgorICAgICAgICAoK1tX
ZWJCYWNrRm9yd2FyZExpc3QgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhpc3RvcnkvV2ViSGlz
dG9yeUl0ZW0ubW06CisgICAgICAgICgrW1dlYkhpc3RvcnlJdGVtIGluaXRpYWxpemVdKToKKyAg
ICAgICAgKiBNaXNjL1dlYkNhY2hlLm1tOgorICAgICAgICAoK1tXZWJDYWNoZSBpbml0aWFsaXpl
XSk6CisgICAgICAgICogTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbToKKyAgICAgICAgKCtb
V2ViRWxlbWVudERpY3Rpb25hcnkgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIE1pc2MvV2ViSWNv
bkRhdGFiYXNlLm1tOgorICAgICAgICAoK1tXZWJJY29uRGF0YWJhc2UgaW5pdGlhbGl6ZV0pOgor
ICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToK
KyAgICAgICAgKCtbV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGluaXRpYWxpemVdKToKKyAg
ICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICog
UGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5l
dHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKCtbV2ViTmV0c2NhcGVQbHVnaW5WaWV3IGlu
aXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06
CisgICAgICAgICgrW1dlYlVuZG9TdGVwIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkFy
Y2hpdmUubW06CisgICAgICAgICgrW1dlYkFyY2hpdmVQcml2YXRlIGluaXRpYWxpemVdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAgICgrW1dlYkRhdGFTb3Vy
Y2UgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAg
ICAgICgrW1dlYkhUTUxWaWV3UHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICgrW1dlYkhU
TUxWaWV3IGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
OgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJSZXNvdXJjZS5tbToKKyAgICAgICAgKCtbV2ViUmVzb3VyY2VQcml2YXRlIGluaXRp
YWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbToKKyAgICAgICAg
KCtbV2ViVGV4dEl0ZXJhdG9yUHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoK1tXZWJWaWV3IGluaXRpYWxpemVdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgorICAgICAgICAoK1tXZWJWaWV3UHJpdmF0ZSBpbml0
aWFsaXplXSk6CisKIDIwMTMtMTAtMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCByb2xsIG91dCBvZiByMTU3Njk1OyBicm9rZSBNYWMgYnVp
bGRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGE4Y2M0YjgyYTEzMDIzY2YyYTllMGMzZDJhYWIxZmFhYmNmZTUx
ZTkuLjdjMDNmNmQ5MWE4YzA3ZjAwY2IxMzg4NDQxZDc4NjExM2E2ZTkwNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3MCBAQAorMjAxMy0xMC0yMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
d2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEYXRhYmFz
ZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3Iu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXgu
Y3BwOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
ICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29y
ZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50
cnlQb2ludC5tbToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHA6CisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vz
cy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy91bml4
L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vz
cy5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAgICAqIFNoYXJl
ZC9DaGlsZFByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGls
aXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oOgorICAgICAg
ICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJv
Y2Vzc0VudHJ5UG9pbnQubW06CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94
eS5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
RmluZEluZGljYXRvcldpbmRvdy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLUHJp
bnRpbmdWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdB
cmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHA6
CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1t
OgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRM
aW5rUHJvdmlkZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nl
c3NNYWluLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vydmlj
ZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1BhZ2VPdmVybGF5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Vm
bC9XZWJQcm9jZXNzTWFpbkVmbC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9ndGsvV2ViUHJv
Y2Vzc01haW5HdGsuY3BwOgorCiAyMDEzLTEwLTIwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBMb2FkaW5nIHByb2dyZXNzIEFQSQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDAwZTY3Y2MwNDY1ZDkyZWJhMDljNGNlYjMyNjI4OGNhMzU0YzE3NTMu
LmJlNGM0MTRiZWVmNjQ3ZmQ4MTVmNzRmYjU0NWU0MzgzNDhmMDQ1MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTEzOCw2ICsxMzgsOCBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNl
L1dURi93dGYvUmVmUHRyLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1JlZlB0ckhhc2hNYXAuaCBc
CiAgICAgU291cmNlL1dURi93dGYvUmV0YWluUHRyLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL1J1
bkxvb3AuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggXAogICAgIFNvdXJjZS9X
VEYvd3RmL1NIQTEuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9TSEExLmggXAogICAgIFNvdXJj
ZS9XVEYvd3RmL1NhdHVyYXRlZEFyaXRobWV0aWMuaCBcCkBAIC0yMTcsNiArMjE5LDcgQEAgd3Rm
X3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5j
cHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5oIFwKICAgICBT
b3VyY2UvV1RGL3d0Zi9ndGsvTWFpblRocmVhZEd0ay5jcHAgXAorICAgIFNvdXJjZS9XVEYvd3Rm
L2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9BU0NJSUZhc3RQ
YXRoLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcCBcCiAgICAg
U291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYu
dmN4cHJvagppbmRleCBjMWRiMzk5YjhjMzMyMjg4OGJhNzJhMWZjZGRhOGY4NDA3NWQ0NWNmLi5m
ZjExOWI3ZDVkNjlhZTJiMTY0NGQzMTEzN2RlMzc5OTI4NTM1N2ZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHBy
b2ovV1RGLnZjeHByb2oKQEAgLTg5LDYgKzg5LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHd0ZlxSQU1TaXplLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZc
UmFuZG9tTnVtYmVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcUmVm
Q291bnRlZExlYWtDb3VudGVyLmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3
dGZcUnVuTG9vcC5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFNIQTEu
Y3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxTaXhDaGFyYWN0ZXJIYXNo
LmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcU2l6ZUxpbWl0cy5jcHAi
IC8+DQpAQCAtMTExLDYgKzExMiw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZc
dW5pY29kZVxpY3VcQ29sbGF0b3JJQ1UuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHd0Zlx1bmljb2RlXFVURjguY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHd0Zlx3aW5cTWFpblRocmVhZFdpbi5jcHAiIC8+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cd3RmXHdpblxSdW5Mb29wV2luLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
Llx3dGZcV1RGVGhyZWFkRGF0YS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
d3RmXFNjaGVkdWxlUGFpckNGLmNwcCIgLz4NCiAgIDwvSXRlbUdyb3VwPg0KQEAgLTIxOCw2ICsy
MjAsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJlZlB0ci5oIiAvPg0KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxSZWZQdHJIYXNoTWFwLmgiIC8+DQogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJldGFpblB0ci5oIiAvPg0KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHd0ZlxSdW5Mb29wLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cd3RmXFNhdHVyYXRlZEFyaXRobWV0aWMuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlx3dGZcU2NoZWR1bGVQYWlyLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
d3RmXFNlZ21lbnRlZFZlY3Rvci5oIiAvPg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDZhNWUwMDkzNTZkYjM2NTZmMjlhYTJiOTRkNDRlMDZhZWI4NTg2NjMu
LmQ1YzQ1Mzc3MTUxNjFhMWYwNzIzYmM5ODkzNzRhMzkxNWRjODk3NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjAsNiArNjAsOSBAQAogCQkyNjI5OUI2
RTE3QTlFNUI4MDBBREVCRTUgLyogUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNjI5OUI2RDE3QTlFNUI4MDBBREVCRTUgLyogUmVmLmggKi87IH07
CiAJCTJDMDUzODU0MTVCQzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRlVGltZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwNTM4NTMxNUJDODE5
MDAwRjIxQjk2IC8qIEdyZWdvcmlhbkRhdGVUaW1lLmggKi87IH07CiAJCTJDQ0Q4OTJBMTVDMDM5
MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0NEODkyOTE1QzAzOTAyMDAyODUwODMgLyogR3Jl
Z29yaWFuRGF0ZVRpbWUuY3BwICovOyB9OworCQkyQ0RFRDBFRjE4MTE1QzM4MDA0REJBNzAgLyog
UnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovOyB9OworCQky
Q0RFRDBGMzE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBGMTE4MTE1Qzg1MDA0REJBNzAgLyog
UnVuTG9vcC5jcHAgKi87IH07CisJCTJDREVEMEY0MTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29w
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBG
MjE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovOyB9OwogCQk0NEY2NjAwODE3MUFGQUU2
MDBFNEFEMTkgLyogRW51bUNsYXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NEY2NjAwNzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi87
IH07CiAJCTRGMDMyMUJDMTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVC
QUY2IC8qIEJpdEFycmF5LmggKi87IH07CiAJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBP
YmpjUnVudGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0UyOUMzM0QxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmgg
Ki87IH07CkBAIC0zMTksNiArMzIyLDkgQEAKIAkJMjYyOTlCNkQxN0E5RTVCODAwQURFQkU1IC8q
IFJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWYuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMwNTM4NTMxNUJDODE5MDAwRjIxQjk2IC8qIEdyZWdvcmlh
bkRhdGVUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyZWdvcmlhbkRh
dGVUaW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDQ0Q4OTI5MTVDMDM5MDIw
MDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmVnb3JpYW5EYXRlVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUnVuTG9vcENGLmNwcDsgcGF0aCA9IGNm
L1J1bkxvb3BDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDREVEMEYxMTgx
MTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJ1bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0RF
RDBGMjE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSdW5Mb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0REVF
NzRBMTUyMjc0QkIwMEM2RUMzNyAvKiBpT1MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29u
ZmlnOyBwYXRoID0gaU9TLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NEY2NjAwNzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVu
dW1DbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjAzMjFCQjE1NkFBOEQx
MDA2RUJBRjYgLyogQml0QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Qml0QXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1NSw2ICs1NjEsMTQg
QEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQky
Q0RFRDBGMDE4MTE1QzNGMDA0REJBNzAgLyogY2YgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29w
Q0YuY3BwICovLAorCQkJKTsKKwkJCW5hbWUgPSBjZjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01OTYsNiArNjEwLDcgQEAKIAkJQTg3NkRCRDYxNTE4
MTZFNTAwREFEQjk1IC8qIHd0ZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMkNERUQwRjAxODExNUMzRjAwNERCQTcwIC8qIGNmICovLAogCQkJCUE4QTQ3
MjgxMTUxQTgyNUEwMDQxMjNGRiAvKiBkdG9hICovLAogCQkJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2
OEQxQiAvKiBpb3MgKi8sCiAJCQkJQThBNDcyQzQxNTFBODI1QTAwNDEyM0ZGIC8qIG1hYyAqLywK
QEAgLTczNiw2ICs3NTEsOCBAQAogCQkJCUE4QTQ3MzAzMTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZQ
dHIuaCAqLywKIAkJCQlBOEE0NzMwNDE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5o
ICovLAogCQkJCUE4QTQ3MzA1MTUxQTgyNUIwMDQxMjNGRiAvKiBSZXRhaW5QdHIuaCAqLywKKwkJ
CQkyQ0RFRDBGMTE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgKi8sCisJCQkJMkNERUQw
RjIxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkxNDY5NDE5MDE2RUFBRjZE
MDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi8sCiAJCQkJMTQ2OTQxOTExNkVBQUY2RDAwMjRF
MTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAqLywKIAkJCQkxNEYzQjBGNjE1RTQ1RTQ2MDAyMTAw
NjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpYy5oICovLApAQCAtMTAyNSw2ICsxMDQyLDcgQEAKIAkJ
CQlBOEE0NzQxQzE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEE0NzQxRDE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDc0MUUxNTFBODI1QjAwNDEyM0ZGIC8qIFJldGFpblB0ci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMkNERUQwRjQxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTE0RjNCMEY3MTVFNDVFNDYwMDIxMDA2OSAvKiBTYXR1cmF0ZWRB
cml0aG1ldGljLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDY5NDE5NjE2RUFBRkY4MDAyNEUxNDYg
LyogU2NoZWR1bGVQYWlyLmggaW4gSGVhZGVycyAqLywKQEAgLTExOTcsNiArMTIxNSw4IEBACiAJ
CQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzQxQTE1MUE4MjVCMDA0MTIzRkYgLyogUmVmQ291bnRlZExlYWtD
b3VudGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDREVEMEYzMTgxMTVDODUwMDREQkE3MCAv
KiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDREVEMEVGMTgxMTVDMzgwMDREQkE3
MCAvKiBSdW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ2OTQxOTMxNkVBQUY2RDAw
MjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Njk0MTk5
MTZFQUIwNDEwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDY5NDE5NzE2RUFBRkY4MDAyNEUxNDYgLyogU2NoZWR1bGVQYWlyTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IGI2MTdiN2RmOGQ2MjVmODg3MjI3MmNkMjZj
ZTQwYzBhZDEyZTAzMTEuLmFiMmU0YmY1Y2RkODhjM2U2ZGNjN2NmNGE4ZGEyODJlMDdhZjUwNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC04Niw2ICs4Niw3IEBAIHNldChXVEZfSEVBREVSUwog
ICAgIFJlZlB0ci5oCiAgICAgUmVmUHRySGFzaE1hcC5oCiAgICAgUmV0YWluUHRyLmgKKyAgICBS
dW5Mb29wLmgKICAgICBTSEExLmgKICAgICBTYXR1cmF0ZWRBcml0aG1ldGljLmgKICAgICBTZWdt
ZW50ZWRWZWN0b3IuaApAQCAtMTczLDYgKzE3NCw3IEBAIHNldChXVEZfU09VUkNFUwogICAgIFJB
TVNpemUuY3BwCiAgICAgUmFuZG9tTnVtYmVyLmNwcAogICAgIFJlZkNvdW50ZWRMZWFrQ291bnRl
ci5jcHAKKyAgICBSdW5Mb29wLmNwcAogICAgIFNIQTEuY3BwCiAgICAgU2l4Q2hhcmFjdGVySGFz
aC5jcHAKICAgICBTdGFja0JvdW5kcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtQmxhY2tCZXJyeS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJy
eS5jbWFrZQppbmRleCBiNWRlMzA1MjMzNmQ5NTEzNTc0MTc4MGYxYTM4ZTRkMGJjZjA1YzJiLi4w
ODU3NjZjNDZjMTJlOWVmNWIyNzFiZmRkYTZiNjUzYTI1NzI3OGI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCkBAIC0xLDMgKzEsNCBAQAogbGlzdChBUFBFTkQgV1RG
X1NPVVJDRVMKICAgICBibGFja2JlcnJ5L01haW5UaHJlYWRCbGFja0JlcnJ5LmNwcAorICAgIGJs
YWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtl
CmluZGV4IDc3MWM4MmUyNGJjNGJmMThlMzJlYzM0ZTdiMGI0OWY2OTI4MzlmNjYuLmUxMGE0NDIz
OGM5NTI5ZDlkMDUxOGI0YTFmMDljNDdhYzE0NDJmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNt
YWtlCkBAIC0yLDYgKzIsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGVmbC9NYWlu
VGhyZWFkRWZsLmNwcAogICAgIGVmbC9Pd25QdHJFZmwuY3BwCiAgICAgZWZsL1JlZlB0ckVmbC5j
cHAKKyAgICBlZmwvUnVuTG9vcEVmbC5jcHAKIAogICAgIGdvYmplY3QvR093blB0ci5jcHAKICAg
ICBnb2JqZWN0L0dSZWZQdHIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUdUSy5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDY4OTQw
ZmYyNGNlOGM3NmJkM2IyYTlkNzFkMWI2MWQxYWYwNWMzMGEuLjQzZGE3MDk1NmYwOTI3NDZmYzYx
NWM0MTVlYmQ0NGYwYTAwYTU4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
R1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC00LDYg
KzQsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGdvYmplY3QvR2xpYlV0aWxpdGll
cy5jcHAKIAogICAgIGd0ay9NYWluVGhyZWFkR3RrLmNwcAorICAgIGd0ay9SdW5Mb29wR3RrLmNw
cAogKQogCiBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtl
CmluZGV4IDg4YmRhZjcxM2U1MjhjMTQ4OGU4YjlhYWZkNzE5OTczYTA4ZmYwOGMuLjg4MzRkMjUy
ZjRjMDQ5YzlkZGZiMzM1Njg4NDg0MjkzODQ1MTA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNt
YWtlCkBAIC0yLDYgKzIsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHRocmVhZHMv
d2luL0JpbmFyeVNlbWFwaG9yZVdpbi5jcHAKIAogICAgIHdpbi9NYWluVGhyZWFkV2luLmNwcAor
ICAgIHdpbi9SdW5Mb29wV2luLmNwcAogKQogCiBpZiAoV0lOQ0UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9SdW5Mb29wLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU5Nzg2NWQ3YjlhNmIzOWQ3OWI3MjQ4YzM3NGNhNzY3NDRjYjM1NDIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcApAQCAtMCwwICsxLDEzMSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisK
KyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNp
ZmljLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgUnVuTG9vcCogc19tYWluUnVuTG9v
cDsKKworLy8gSGVscGVyIGNsYXNzIGZvciBUaHJlYWRTcGVjaWZpY0RhdGEuCitjbGFzcyBSdW5M
b29wOjpIb2xkZXIgeworcHVibGljOgorICAgIEhvbGRlcigpCisgICAgICAgIDogbV9ydW5Mb29w
KGFkb3B0UmVmKG5ldyBSdW5Mb29wKSkKKyAgICB7CisgICAgfQorCisgICAgUnVuTG9vcCogcnVu
TG9vcCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuTG9vcC5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IFJlZlB0cjxSdW5Mb29wPiBtX3J1bkxvb3A7Cit9OworCit2b2lkIFJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpCit7CisgICAgaWYgKHNfbWFpblJ1bkxvb3ApCisgICAgICAgIHJldHVy
bjsKKyAgICBzX21haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworfQorCitSdW5Mb29w
KiBSdW5Mb29wOjpjdXJyZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VGhy
ZWFkU3BlY2lmaWM8UnVuTG9vcDo6SG9sZGVyPiwgcnVuTG9vcEhvbGRlciwgKCkpOworICAgIHJl
dHVybiBydW5Mb29wSG9sZGVyLT5ydW5Mb29wKCk7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6Om1h
aW4oKQoreworICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKKyAgICByZXR1cm4gc19tYWluUnVu
TG9vcDsKK30KKworYm9vbCBSdW5Mb29wOjppc01haW4oKQoreworICAgIEFTU0VSVChzX21haW5S
dW5Mb29wKTsKKyAgICByZXR1cm4gc19tYWluUnVuTG9vcCA9PSBSdW5Mb29wOjpjdXJyZW50KCk7
Cit9CisKK3ZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKQoreworICAgIC8vIEl0IGlzIGltcG9y
dGFudCB0byBoYW5kbGUgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgcXVldWUgb25lIGF0IGEgdGltZSBi
ZWNhdXNlIHdoaWxlIGluc2lkZSBvbmUgb2YgdGhlc2UKKyAgICAvLyBmdW5jdGlvbnMgd2UgbWln
aHQgcmUtZW50ZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKSBhbmQgd2UgbmVlZCB0byBiZSBhYmxl
IHRvIHBpY2sgdXAgd2hlcmUgd2UgbGVmdCBvZmYuCisgICAgLy8gU2VlIGh0dHA6Ly93ZWJraXQu
b3JnL2IvODk1OTAgZm9yIG1vcmUgZGlzY3Vzc2lvbi4KKworICAgIC8vIE9uZSBwb3NzaWJsZSBz
Y2VuYXJpbyB3aGVuIGhhbmRsaW5nIHRoZSBmdW5jdGlvbiBxdWV1ZSBpcyBhcyBmb2xsb3dzOgor
ICAgIC8vIC0gUnVuTG9vcDo6cGVyZm9ybVdvcmsoKSBpcyBpbnZva2VkIHdpdGggMSBmdW5jdGlv
biBvbiB0aGUgcXVldWUKKyAgICAvLyAtIEhhbmRsaW5nIHRoYXQgZnVuY3Rpb24gcmVzdWx0cyBp
biAxIG1vcmUgZnVuY3Rpb24gYmVpbmcgZW5xdWV1ZWQKKyAgICAvLyAtIEhhbmRsaW5nIHRoYXQg
b25lIHJlc3VsdHMgaW4geWV0IGFub3RoZXIgYmVpbmcgZW5xdWV1ZWQKKyAgICAvLyAtIEFuZCBz
byBvbgorICAgIC8vCisgICAgLy8gSW4gdGhpcyBzaXR1YXRpb24gb25lIGludm9jYXRpb24gb2Yg
cGVyZm9ybVdvcmsoKSBuZXZlciByZXR1cm5zIHNvIGFsbCBvdGhlciBldmVudCBzb3VyY2VzIGFy
ZSBibG9ja2VkLgorICAgIC8vIEJ5IG9ubHkgaGFuZGxpbmcgdXAgdG8gdGhlIG51bWJlciBvZiBm
dW5jdGlvbnMgdGhhdCB3ZXJlIGluIHRoZSBxdWV1ZSB3aGVuIHBlcmZvcm1Xb3JrKCkgaXMgY2Fs
bGVkCisgICAgLy8gd2UgZ3VhcmFudGVlIHRvIG9jY2FzaW9uYWxseSByZXR1cm4gZnJvbSB0aGUg
cnVuIGxvb3Agc28gb3RoZXIgZXZlbnQgc291cmNlcyB3aWxsIGJlIGFsbG93ZWQgdG8gc3Bpbi4K
KworICAgIEZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb247CisgICAgc2l6ZV90IGZ1bmN0aW9uc1Rv
SGFuZGxlID0gMDsKKworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rp
b25RdWV1ZUxvY2spOworICAgICAgICBmdW5jdGlvbnNUb0hhbmRsZSA9IG1fZnVuY3Rpb25RdWV1
ZS5zaXplKCk7CisKKyAgICAgICAgaWYgKG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgZnVuY3Rpb24gPSBtX2Z1bmN0aW9uUXVldWUudGFr
ZUZpcnN0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24oKTsKKworICAgIGZvciAoc2l6ZV90IGZ1
bmN0aW9uc0hhbmRsZWQgPSAxOyBmdW5jdGlvbnNIYW5kbGVkIDwgZnVuY3Rpb25zVG9IYW5kbGU7
ICsrZnVuY3Rpb25zSGFuZGxlZCkgeworICAgICAgICB7CisgICAgICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7CisKKyAgICAgICAgICAgIC8vIEV2ZW4gaWYg
d2Ugc3RhcnQgb2ZmIHdpdGggTiBmdW5jdGlvbnMgdG8gaGFuZGxlIGFuZCB3ZSd2ZSBvbmx5IGhh
bmRsZWQgbGVzcyB0aGFuIE4gZnVuY3Rpb25zLCB0aGUgcXVldWUKKyAgICAgICAgICAgIC8vIHN0
aWxsIG1pZ2h0IGJlIGVtcHR5IGJlY2F1c2UgdGhvc2UgZnVuY3Rpb25zIG1pZ2h0IGhhdmUgYmVl
biBoYW5kbGVkIGluIGFuIGlubmVyIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkuCisgICAgICAgICAg
ICAvLyBJbiB0aGF0IGNhc2Ugd2Ugc2hvdWxkIGJhaWwgaGVyZS4KKyAgICAgICAgICAgIGlmICht
X2Z1bmN0aW9uUXVldWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBmdW5jdGlvbiA9IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24oKTsKKyAgICB9Cit9CisKK3ZvaWQgUnVuTG9v
cDo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOworICAgIG1fZnVuY3Rpb25RdWV1
ZS5hcHBlbmQoZnVuY3Rpb24pOworCisgICAgd2FrZVVwKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93
dGYvUnVuTG9vcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3Y2NhNzkxYTFlZjU0YjljZGZlZTNmZDI3ZDk3YjFl
ZWIyNDhlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAg
LTAsMCArMSwxNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAy
MDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFJ1bkxvb3BfaAorI2RlZmluZSBSdW5Mb29wX2gKKworI2luY2x1ZGUgPHd0
Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uRGlzcGF0Y2hlci5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CisjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Jl
ZlB0ci5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8RWNvcmUuaD4K
KyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5j
dGlvbkRpc3BhdGNoZXIgeworcHVibGljOgorICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhl
IG1haW4gdGhyZWFkIChleGNlcHQgZm9yIHRoZSBNYWMgcGxhdGZvcm0sIHdoZXJlIGl0CisgICAg
Ly8gY2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQpLgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGF0aWMgUnVuTG9vcCogY3VycmVudCgpOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgUnVuTG9vcCogbWFpbigpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMg
Ym9vbCBpc01haW4oKTsKKyAgICB+UnVuTG9vcCgpOworCisgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKSBPVkVSUklERTsKKworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGF0aWMgdm9pZCBydW4oKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBz
dG9wKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FrZVVwKCk7CisKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcnVuRm9yRHVyYXRpb24oZG91
YmxlIGR1cmF0aW9uKTsKKyNlbmRpZgorICAgIAorICAgIGNsYXNzIFRpbWVyQmFzZSB7CisgICAg
ICAgIGZyaWVuZCBjbGFzcyBSdW5Mb29wOworICAgIHB1YmxpYzoKKyAgICAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIGV4cGxpY2l0IFRpbWVyQmFzZShSdW5Mb29wKik7CisgICAgICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2aXJ0dWFsIH5UaW1lckJhc2UoKTsKKworICAgICAgICB2b2lkIHN0YXJ0UmVw
ZWF0aW5nKGRvdWJsZSByZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1
ZSk7IH0KKyAgICAgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0
KGludGVydmFsLCBmYWxzZSk7IH0KKworICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBz
dG9wKCk7CisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzQWN0aXZlKCkgY29uc3Q7
CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOworCisgICAgcHJpdmF0ZToKKyAg
ICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2
YWwsIGJvb2wgcmVwZWF0KTsKKworICAgICAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisKKyNpZiBQ
TEFURk9STShXSU4pCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVp
bnQ2NF90IElEKTsKKyAgICAgICAgdWludDY0X3QgbV9JRDsKKyAgICAgICAgYm9vbCBtX2lzUmVw
ZWF0aW5nOworI2VsaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZp
cmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CisgICAgICAgIFJldGFpblB0cjxDRlJ1bkxv
b3BUaW1lclJlZj4gbV90aW1lcjsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICAgICAgc3RhdGlj
IGJvb2wgdGltZXJGaXJlZCh2b2lkKiBkYXRhKTsKKyAgICAgICAgRWNvcmVfVGltZXIqIG1fdGlt
ZXI7CisgICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZzsKKyNlbGlmIFVTRShHTElCKQorICAgICAg
ICBzdGF0aWMgZ2Jvb2xlYW4gdGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSop
OworICAgICAgICBnYm9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBl
YXRpbmc7IH0KKyAgICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7CisgICAgICAgIEdSZWZQ
dHI8R1NvdXJjZT4gbV90aW1lclNvdXJjZTsKKyAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGlu
ZzsKKyNlbmRpZgorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENs
YXNzPgorICAgIGNsYXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7CisgICAgcHVibGljOgor
ICAgICAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlv
bikoKTsKKworICAgICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xhc3Mq
IG8sIFRpbWVyRmlyZWRGdW5jdGlvbiBmKQorICAgICAgICAgICAgOiBUaW1lckJhc2UocnVuTG9v
cCkKKyAgICAgICAgICAgICwgbV9vYmplY3QobykKKyAgICAgICAgICAgICwgbV9mdW5jdGlvbihm
KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwg
dm9pZCBmaXJlZCgpIHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQorCisgICAgICAgIFRp
bWVyRmlyZWRDbGFzcyogbV9vYmplY3Q7CisgICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBtX2Z1
bmN0aW9uOworICAgIH07CisKKyAgICBjbGFzcyBIb2xkZXI7CisKK3ByaXZhdGU6CisgICAgUnVu
TG9vcCgpOworCisgICAgdm9pZCBwZXJmb3JtV29yaygpOworCisgICAgTXV0ZXggbV9mdW5jdGlv
blF1ZXVlTG9jazsKKyAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX2Z1bmN0aW9uUXVldWU7
CisKKyNpZiBQTEFURk9STShXSU4pCisgICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJSdW5Mb29wTWVz
c2FnZVdpbmRvd0NsYXNzKCk7CisgICAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcFdu
ZFByb2MoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOworICAgIExSRVNVTFQgd25kUHJvYyhI
V05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7Cisg
ICAgSFdORCBtX3J1bkxvb3BNZXNzYWdlV2luZG93OworCisgICAgdHlwZWRlZiBIYXNoTWFwPHVp
bnQ2NF90LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKKyAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVy
czsKKyNlbGlmIFBMQVRGT1JNKE1BQykKKyAgICBzdGF0aWMgdm9pZCBwZXJmb3JtV29yayh2b2lk
Kik7CisgICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4gbV9ydW5Mb29wOworICAgIFJldGFpblB0
cjxDRlJ1bkxvb3BTb3VyY2VSZWY+IG1fcnVuTG9vcFNvdXJjZTsKKyAgICBpbnQgbV9uZXN0aW5n
TGV2ZWw7CisjZWxpZiBQTEFURk9STShFRkwpCisgICAgYm9vbCBtX2luaXRFZmw7CisKKyAgICBN
dXRleCBtX3BpcGVMb2NrOworICAgIE93blB0cjxFY29yZV9QaXBlPiBtX3BpcGU7CisKKyAgICBN
dXRleCBtX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jazsKKyAgICBib29sIG1fd2FrZVVwRXZlbnRS
ZXF1ZXN0ZWQ7CisKKyAgICBzdGF0aWMgdm9pZCB3YWtlVXBFdmVudCh2b2lkKiBkYXRhLCB2b2lk
KiwgdW5zaWduZWQpOworI2VsaWYgVVNFKEdMSUIpCitwdWJsaWM6CisgICAgc3RhdGljIGdib29s
ZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7CisgICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wKCk7
CisgICAgdm9pZCBwdXNoTmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKik7CisgICAgdm9pZCBwb3BO
ZXN0ZWRNYWluTG9vcCgpOworcHJpdmF0ZToKKyAgICBHUmVmUHRyPEdNYWluQ29udGV4dD4gbV9y
dW5Mb29wQ29udGV4dDsKKyAgICBWZWN0b3I8R1JlZlB0cjxHTWFpbkxvb3A+PiBtX3J1bkxvb3BN
YWluTG9vcHM7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6
OlJ1bkxvb3A7CisKKyNlbmRpZiAvLyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dURi93dGYvYmxh
Y2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJiODZiNWI1MTE4NTE3
NzA0MjVmNGQ5MjhmM2RmODVkZjFkZTQ2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL2JsYWNrYmVycnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKwor
bmFtZXNwYWNlIFdURiB7CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jZi9S
dW5Mb29wQ0YuY3BwIGIvU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45Njc1ODY3MDI2MTE0YzI1ODJhNzExOWJmM2Q2MzU5NDI5ODYzMWNhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNwcApAQCAtMCwwICsxLDEyOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29w
LmgiCisKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2luY2x1
ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CisjaW5jbHVkZSA8d3RmL0F1dG9kcmFpbmVkUG9vbC5o
PgorCituYW1lc3BhY2UgV1RGIHsKKwordm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yayh2b2lkKiBj
b250ZXh0KQoreworICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOworICAgIHN0YXRpY19jYXN0PFJ1
bkxvb3AqPihjb250ZXh0KS0+cGVyZm9ybVdvcmsoKTsKK30KKworUnVuTG9vcDo6UnVuTG9vcCgp
CisgICAgOiBtX3J1bkxvb3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKQorICAgICwgbV9uZXN0aW5n
TGV2ZWwoMCkKK3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VDb250ZXh0IGNvbnRleHQgPSB7IDAsIHRo
aXMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIHBlcmZvcm1Xb3JrIH07CisgICAgbV9ydW5Mb29wU291
cmNlID0gYWRvcHRDRihDRlJ1bkxvb3BTb3VyY2VDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
MCwgJmNvbnRleHQpKTsKKyAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLmdldCgpLCBt
X3J1bkxvb3BTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Cit9CisKK1J1bkxv
b3A6On5SdW5Mb29wKCkKK3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VJbnZhbGlkYXRlKG1fcnVuTG9v
cFNvdXJjZS5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuRm9yRHVyYXRpb24oZG91Ymxl
IGR1cmF0aW9uKQoreworICAgIENGUnVuTG9vcFJ1bkluTW9kZShrQ0ZSdW5Mb29wRGVmYXVsdE1v
ZGUsIGR1cmF0aW9uLCB0cnVlKTsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAg
IENGUnVuTG9vcFNvdXJjZVNpZ25hbChtX3J1bkxvb3BTb3VyY2UuZ2V0KCkpOworICAgIENGUnVu
TG9vcFdha2VVcChtX3J1bkxvb3AuZ2V0KCkpOworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7
CisgICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCsrOworICAgIAorICAgIHsKKyAgICAgICAg
QXV0b2RyYWluZWRQb29sIHBvb2w7CisgICAgICAgIENGUnVuTG9vcFJ1bigpOworICAgIH0KKyAg
ICAKKyAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsLS07Cit9CisKK3ZvaWQgUnVuTG9vcDo6
c3RvcCgpCit7CisgICAgQVNTRVJUKG1fcnVuTG9vcCA9PSBDRlJ1bkxvb3BHZXRDdXJyZW50KCkp
OworICAgIENGUnVuTG9vcFN0b3AobV9ydW5Mb29wLmdldCgpKTsKK30KKworLy8gUnVuTG9vcDo6
VGltZXIKKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGlt
ZXJSZWYsIHZvaWQqIGNvbnRleHQpCit7CisgICAgVGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19j
YXN0PFRpbWVyQmFzZSo+KGNvbnRleHQpOworCisgICAgQXV0b2RyYWluZWRQb29sIHBvb2w7Cisg
ICAgdGltZXItPmZpcmVkKCk7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1
bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKK3sKK30KKworUnVuTG9v
cDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVu
TG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBl
YXQpCit7CisgICAgaWYgKG1fdGltZXIpCisgICAgICAgIHN0b3AoKTsKKyAgICAKKyAgICBDRlJ1
bkxvb3BUaW1lckNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCB9OworICAgIENG
VGltZUludGVydmFsIHJlcGVhdEludGVydmFsID0gcmVwZWF0ID8gbmV4dEZpcmVJbnRlcnZhbCA6
IDA7CisgICAgbV90aW1lciA9IGFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBuZXh0RmlyZUludGVydmFs
LCByZXBlYXRJbnRlcnZhbCwgMCwgMCwgdGltZXJGaXJlZCwgJmNvbnRleHQpKTsKKyAgICBDRlJ1
bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcC5nZXQoKSwgbV90aW1lci5nZXQoKSwg
a0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0
b3AoKQoreworICAgIGlmICghbV90aW1lcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIENG
UnVuTG9vcFRpbWVySW52YWxpZGF0ZShtX3RpbWVyLmdldCgpKTsKKyAgICBtX3RpbWVyID0gbnVs
bHB0cjsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV90aW1lciAmJiBDRlJ1bkxvb3BUaW1lcklzVmFsaWQobV90aW1lci5nZXQo
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
ZWZsL1J1bkxvb3BFZmwuY3BwIGIvU291cmNlL1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRhMzg0OTdlYjM1NTRjMmU2MDBhMzZmZWI0ODkzMWY1ZGZjMWFlOGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvUnVuTG9vcEVmbC5jcHAKQEAgLTAsMCAr
MSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVtYmVkZGVkIHN5
c3RlbXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPEVjb3JlLmg+CisjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK3N0YXRpYyBjb25zdCBp
bnQgZWNvcmVQaXBlTWVzc2FnZVNpemUgPSAxOworc3RhdGljIGNvbnN0IGNoYXIgd2FrdXBFY29y
ZVBpcGVNZXNzYWdlW10gPSAiVyI7CisKK25hbWVzcGFjZSBXVEYgeworCitSdW5Mb29wOjpSdW5M
b29wKCkKKyAgICA6IG1faW5pdEVmbChmYWxzZSkKKyAgICAsIG1fd2FrZVVwRXZlbnRSZXF1ZXN0
ZWQoZmFsc2UpCit7CisgICAgbV9waXBlID0gYWRvcHRQdHIoZWNvcmVfcGlwZV9hZGQod2FrZVVw
RXZlbnQsIHRoaXMpKTsKKyAgICBtX2luaXRFZmwgPSB0cnVlOworfQorCitSdW5Mb29wOjp+UnVu
TG9vcCgpCit7Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBlY29yZV9tYWluX2xv
b3BfYmVnaW4oKTsKK30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAgICBlY29yZV9tYWlu
X2xvb3BfcXVpdCgpOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcEV2ZW50KHZvaWQqIGRhdGEs
IHZvaWQqLCB1bnNpZ25lZCkKK3sKKyAgICBSdW5Mb29wKiBsb29wID0gc3RhdGljX2Nhc3Q8UnVu
TG9vcCo+KGRhdGEpOworCisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobG9vcC0+
bV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2spOworICAgICAgICBsb29wLT5tX3dha2VVcEV2ZW50
UmVxdWVzdGVkID0gZmFsc2U7CisgICAgfQorCisgICAgbG9vcC0+cGVyZm9ybVdvcmsoKTsKK30K
Kwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWRMb2NrKTsKKyAgICAgICAgaWYgKG1fd2FrZVVw
RXZlbnRSZXF1ZXN0ZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fd2FrZVVwRXZl
bnRSZXF1ZXN0ZWQgPSB0cnVlOworICAgIH0KKworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fcGlwZUxvY2spOworICAgICAgICBlY29yZV9waXBlX3dyaXRlKG1fcGlwZS5nZXQo
KSwgd2FrdXBFY29yZVBpcGVNZXNzYWdlLCBlY29yZVBpcGVNZXNzYWdlU2l6ZSk7CisgICAgfQor
fQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKikKKyAgICA6IG1fdGlt
ZXIoMCkKKyAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCit7Cit9CisKK1J1bkxvb3A6OlRpbWVy
QmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCitib29sIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6dGltZXJGaXJlZCh2b2lkKiBkYXRhKQoreworICAgIFJ1bkxvb3A6OlRpbWVyQmFz
ZSogdGltZXIgPSBzdGF0aWNfY2FzdDxSdW5Mb29wOjpUaW1lckJhc2UqPihkYXRhKTsKKworICAg
IGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpCisgICAgICAgIHRpbWVyLT5tX3RpbWVyID0gMDsK
KworICAgIHRpbWVyLT5maXJlZCgpOworCisgICAgcmV0dXJuIHRpbWVyLT5tX2lzUmVwZWF0aW5n
ID8gRUNPUkVfQ0FMTEJBQ0tfUkVORVcgOiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7Cit9CisKK3Zv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9v
bCByZXBlYXQpCit7CisgICAgaWYgKGlzQWN0aXZlKCkpCisgICAgICAgIHN0b3AoKTsKKworICAg
IG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgQVNTRVJUKCFtX3RpbWVyKTsKKyAgICBtX3Rp
bWVyID0gZWNvcmVfdGltZXJfYWRkKG5leHRGaXJlSW50ZXJ2YWwsIHJlaW50ZXJwcmV0X2Nhc3Q8
RWNvcmVfVGFza19DYj4odGltZXJGaXJlZCksIHRoaXMpOworfQorCit2b2lkIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKG1fdGltZXIpIHsKKyAgICAgICAgZWNvcmVfdGlt
ZXJfZGVsKG1fdGltZXIpOworICAgICAgICBtX3RpbWVyID0gMDsKKyAgICB9Cit9CisKK2Jvb2wg
UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChtX3Rp
bWVyKSA/IHRydWUgOiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9ndGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9ndGsv
UnVuTG9vcEd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGEyZWEyMjBjZGVjOGQ4OGFhNDEyMzgxMDMzNDI2
Njc3ZTZkOGI0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2d0ay9SdW5Mb29w
R3RrLmNwcApAQCAtMCwwICsxLDE2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIw
MTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRl
IDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKworbmFtZXNwYWNlIFdURiB7
CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQoreworICAgIC8vIGdfbWFpbl9jb250ZXh0X2RlZmF1bHQo
KSBkb2Vzbid0IGFkZCBhbiBleHRyYSByZWZlcmVuY2UuCisgICAgbV9ydW5Mb29wQ29udGV4dCA9
IGlzTWFpblRocmVhZCgpID8gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpIDogYWRvcHRHUmVmKGdf
bWFpbl9jb250ZXh0X25ldygpKTsKKyAgICBBU1NFUlQobV9ydW5Mb29wQ29udGV4dCk7CisgICAg
R1JlZlB0cjxHTWFpbkxvb3A+IGlubmVybW9zdExvb3AgPSBhZG9wdEdSZWYoZ19tYWluX2xvb3Bf
bmV3KG1fcnVuTG9vcENvbnRleHQuZ2V0KCksIEZBTFNFKSk7CisgICAgQVNTRVJUKGlubmVybW9z
dExvb3ApOworICAgIG1fcnVuTG9vcE1haW5Mb29wcy5hcHBlbmQoaW5uZXJtb3N0TG9vcCk7Cit9
CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBmb3IgKGludCBpID0gbV9ydW5Mb29wTWFp
bkxvb3BzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIGlmICghZ19tYWluX2xv
b3BfaXNfcnVubmluZyhtX3J1bkxvb3BNYWluTG9vcHNbaV0uZ2V0KCkpKQorICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9ydW5Mb29wTWFpbkxvb3BzW2ld
LmdldCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBSdW5Mb29w
KiBtYWluUnVuTG9vcCA9IFJ1bkxvb3A6OmN1cnJlbnQoKTsKKyAgICBHTWFpbkxvb3AqIGlubmVy
bW9zdExvb3AgPSBtYWluUnVuTG9vcC0+aW5uZXJtb3N0TG9vcCgpOworICAgIGlmICghZ19tYWlu
X2xvb3BfaXNfcnVubmluZyhpbm5lcm1vc3RMb29wKSkgeworICAgICAgICBnX21haW5fbG9vcF9y
dW4oaW5uZXJtb3N0TG9vcCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBDcmVh
dGUgYW5kIHJ1biBhIG5lc3RlZCBsb29wIGlmIHRoZSBpbm5lcm1vc3Qgb25lIHdhcyBhbHJlYWR5
IHJ1bm5pbmcuCisgICAgR01haW5Mb29wKiBuZXN0ZWRNYWluTG9vcCA9IGdfbWFpbl9sb29wX25l
dygwLCBGQUxTRSk7CisgICAgbWFpblJ1bkxvb3AtPnB1c2hOZXN0ZWRNYWluTG9vcChuZXN0ZWRN
YWluTG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKG5lc3RlZE1haW5Mb29wKTsKKyAgICBtYWlu
UnVuTG9vcC0+cG9wTmVzdGVkTWFpbkxvb3AoKTsKK30KKworR01haW5Mb29wKiBSdW5Mb29wOjpp
bm5lcm1vc3RMb29wKCkKK3sKKyAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQg
YWx3YXlzIGJlIHRoZXJlLgorICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHko
KSk7CisgICAgcmV0dXJuIG1fcnVuTG9vcE1haW5Mb29wc1swXS5nZXQoKTsKK30KKwordm9pZCBS
dW5Mb29wOjpwdXNoTmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKiBuZXN0ZWRMb29wKQoreworICAg
IC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAg
QVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKKyAgICBtX3J1bkxvb3BNYWlu
TG9vcHMuYXBwZW5kKGFkb3B0R1JlZihuZXN0ZWRMb29wKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6
cG9wTmVzdGVkTWFpbkxvb3AoKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNo
b3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNF
bXB0eSgpKTsKKyAgICBtX3J1bkxvb3BNYWluTG9vcHMucmVtb3ZlTGFzdCgpOworfQorCit2b2lk
IFJ1bkxvb3A6OnN0b3AoKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3Vs
ZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0
eSgpKTsKKyAgICBHUmVmUHRyPEdNYWluTG9vcD4gbGFzdE1haW5Mb29wID0gbV9ydW5Mb29wTWFp
bkxvb3BzLmxhc3QoKTsKKyAgICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmluZyhsYXN0TWFpbkxv
b3AuZ2V0KCkpKQorICAgICAgICBnX21haW5fbG9vcF9xdWl0KGxhc3RNYWluTG9vcC5nZXQoKSk7
Cit9CisKK2dib29sZWFuIFJ1bkxvb3A6OnF1ZXVlV29yayhSdW5Mb29wKiBydW5Mb29wKQorewor
ICAgIHJ1bkxvb3AtPnBlcmZvcm1Xb3JrKCk7CisgICAgcmV0dXJuIEZBTFNFOworfQorCit2b2lk
IFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgR1JlZlB0cjxHU291cmNlPiBzb3VyY2UgPSBhZG9w
dEdSZWYoZ19pZGxlX3NvdXJjZV9uZXcoKSk7CisgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNv
dXJjZS5nZXQoKSwgR19QUklPUklUWV9ERUZBVUxUKTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJh
Y2soc291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6
cXVldWVXb3JrKSwgdGhpcywgMCk7CisgICAgZ19zb3VyY2VfYXR0YWNoKHNvdXJjZS5nZXQoKSwg
bV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7CisKKyAgICBnX21haW5fY29udGV4dF93YWtldXAobV9y
dW5Mb29wQ29udGV4dC5nZXQoKSk7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNl
KFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKKyAgICAsIG1fdGlt
ZXJTb3VyY2UoMCkKK3sKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sK
KyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpjbGVhclRpbWVyU291
cmNlKCkKK3sKKyAgICBtX3RpbWVyU291cmNlID0gMDsKK30KKworZ2Jvb2xlYW4gUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJCYXNlKiB0aW1lcikK
K3sKKyAgICBHU291cmNlKiBjdXJyZW50VGltZXJTb3VyY2UgPSB0aW1lci0+bV90aW1lclNvdXJj
ZS5nZXQoKTsKKyAgICBib29sIGlzUmVwZWF0aW5nID0gdGltZXItPmlzUmVwZWF0aW5nKCk7Cisg
ICAgLy8gVGhpcyBjYW4gY2hhbmdlIHRoZSB0aW1lclNvdXJjZSBieSBzdGFydGluZyBhIG5ldyB0
aW1lciB3aXRoaW4gdGhlIGNhbGxiYWNrLgorICAgIGlmICghaXNSZXBlYXRpbmcgJiYgY3VycmVu
dFRpbWVyU291cmNlID09IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpKQorICAgICAgICB0aW1l
ci0+Y2xlYXJUaW1lclNvdXJjZSgpOworCisgICAgdGltZXItPmZpcmVkKCk7CisgICAgcmV0dXJu
IGlzUmVwZWF0aW5nOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91Ymxl
IGZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgaWYgKG1fdGltZXJTb3VyY2UpCisg
ICAgICAgIHN0b3AoKTsKKworICAgIG1fdGltZXJTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0
X3NvdXJjZV9uZXcoc3RhdGljX2Nhc3Q8Z3VpbnQ+KGZpcmVJbnRlcnZhbCAqIDEwMDApKSk7Cisg
ICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV90
aW1lclNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6
OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKSwgdGhpcywgMCk7CisgICAgZ19zb3VyY2Vf
YXR0YWNoKG1fdGltZXJTb3VyY2UuZ2V0KCksIG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4dC5n
ZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBpZiAo
IW1fdGltZXJTb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGdfc291cmNlX2Rlc3Ryb3ko
bV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgY2xlYXJUaW1lclNvdXJjZSgpOworfQorCitib29s
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3Rp
bWVyU291cmNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2lu
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMzUzMWI2Mzk0YzQ4MmZjMmQzOWVmZDZkMDgxNmJhZDVmZjBkNDY5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCkBA
IC0wLDAgKzEsMTc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUg
PHd0Zi9XaW5kb3dzRXh0cmFzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFj
ZSBXVEYgeworCitzdGF0aWMgY29uc3QgVUlOVCBQZXJmb3JtV29ya01lc3NhZ2UgPSBXTV9VU0VS
ICsgMTsKK3N0YXRpYyBjb25zdCBMUFdTVFIga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1l
ID0gTCJSdW5Mb29wTWVzc2FnZVdpbmRvdyI7CisKK0xSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcDo6
UnVuTG9vcFduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQ
QVJBTSBsUGFyYW0pCit7CisgICAgaWYgKFJ1bkxvb3AqIHJ1bkxvb3AgPSBzdGF0aWNfY2FzdDxS
dW5Mb29wKj4oZ2V0V2luZG93UG9pbnRlcihoV25kLCAwKSkpCisgICAgICAgIHJldHVybiBydW5M
b29wLT53bmRQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKKworICAgIGlmICht
ZXNzYWdlID09IFdNX0NSRUFURSkgeworICAgICAgICBMUENSRUFURVNUUlVDVCBjcmVhdGVTdHJ1
Y3QgPSByZWludGVycHJldF9jYXN0PExQQ1JFQVRFU1RSVUNUPihsUGFyYW0pOworCisgICAgICAg
IC8vIEFzc29jaWF0ZSB0aGUgUnVuTG9vcCB3aXRoIHRoZSB3aW5kb3cuCisgICAgICAgIHNldFdp
bmRvd1BvaW50ZXIoaFduZCwgMCwgY3JlYXRlU3RydWN0LT5scENyZWF0ZVBhcmFtcyk7CisgICAg
ICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFduZCwg
bWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworfQorCitMUkVTVUxUIFJ1bkxvb3A6OnduZFByb2Mo
SFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7
CisgICAgc3dpdGNoIChtZXNzYWdlKSB7CisgICAgY2FzZSBQZXJmb3JtV29ya01lc3NhZ2U6Cisg
ICAgICAgIHBlcmZvcm1Xb3JrKCk7CisgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgV01fVElN
RVI6CisgICAgICAgIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZCh0aGlzLCB3UGFyYW0p
OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9j
KGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKK30KKwordm9pZCBSdW5Mb29wOjpydW4o
KQoreworICAgIE1TRyBtZXNzYWdlOworICAgIHdoaWxlIChCT09MIHJlc3VsdCA9IDo6R2V0TWVz
c2FnZSgmbWVzc2FnZSwgMCwgMCwgMCkpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICA6OlRyYW5zbGF0ZU1lc3NhZ2UoJm1lc3NhZ2UpOwor
ICAgICAgICA6OkRpc3BhdGNoTWVzc2FnZSgmbWVzc2FnZSk7CisgICAgfQorfQorCit2b2lkIFJ1
bkxvb3A6OnN0b3AoKQoreworICAgIDo6UG9zdFF1aXRNZXNzYWdlKDApOworfQorCitib29sIFJ1
bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcygpCit7CisgICAgLy8gRklY
TUU6IFRoaXMgcmVhbGx5IG9ubHkgbmVlZHMgdG8gYmUgY2FsbGVkIG9uY2UuCisKKyAgICBXTkRD
TEFTUyB3aW5kb3dDbGFzcyA9IHsgMCB9OworICAgIHdpbmRvd0NsYXNzLmxwZm5XbmRQcm9jICAg
ICA9IFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jOworICAgIHdpbmRvd0NsYXNzLmNiV25kRXh0cmEg
ICAgICA9IHNpemVvZihSdW5Mb29wKik7CisgICAgd2luZG93Q2xhc3MubHBzekNsYXNzTmFtZSAg
ID0ga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lOworCisgICAgcmV0dXJuICEhOjpSZWdp
c3RlckNsYXNzKCZ3aW5kb3dDbGFzcyk7Cit9CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQoreworICAg
IHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcygpOworCisgICAgbV9ydW5Mb29wTWVz
c2FnZVdpbmRvdyA9IDo6Q3JlYXRlV2luZG93KGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFt
ZSwgMCwgMCwKKyAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1dfVVNFREVGQVVMVCwgMCwgSFdO
RF9NRVNTQUdFLCAwLCAwLCB0aGlzKTsKKyAgICBBU1NFUlQoOjpJc1dpbmRvdyhtX3J1bkxvb3BN
ZXNzYWdlV2luZG93KSk7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICAvLyBGSVhN
RTogVGVhciBkb3duIHRoZSB3b3JrIGl0ZW0gcXVldWUgaGVyZS4KK30KKwordm9pZCBSdW5Mb29w
Ojp3YWtlVXAoKQoreworICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIHdha2UgdXAgdGhlIHJ1biBs
b29wIGlmIHdlJ3ZlIGFscmVhZHkgY2FsbGVkIGRpc3BhdGNoCisgICAgLy8gYmVmb3JlIHRoZSBy
dW4gbG9vcCBoYXMgaGFkIHRoZSB0aW1lIHRvIHJlc3BvbmQuCisgICAgOjpQb3N0TWVzc2FnZSht
X3J1bkxvb3BNZXNzYWdlV2luZG93LCBQZXJmb3JtV29ya01lc3NhZ2UsIHJlaW50ZXJwcmV0X2Nh
c3Q8V1BBUkFNPih0aGlzKSwgMCk7Cit9CisKKy8vIFJ1bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVu
TG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIHVpbnQ2NF90IElE
KQoreworICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJz
LmZpbmQoSUQpOworICAgIGlmIChpdCA9PSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkg
eworICAgICAgICAvLyBUaGUgdGltZXIgbXVzdCBoYXZlIGJlZW4gc3RvcHBlZCBhZnRlciB0aGUg
V01fVElNRVIgbWVzc2FnZSB3YXMgcG9zdGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlLgorICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgVGltZXJCYXNlKiB0aW1lciA9IGl0LT52YWx1ZTsKKwor
ICAgIGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpIHsKKyAgICAgICAgcnVuTG9vcC0+bV9hY3Rp
dmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICAgICAgOjpLaWxsVGltZXIocnVuTG9vcC0+bV9ydW5M
b29wTWVzc2FnZVdpbmRvdywgSUQpOworICAgIH0KKworICAgIHRpbWVyLT5maXJlZCgpOworfQor
CitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVUaW1lcklEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0
X3QgdW5pcXVlVGltZXJJRCA9IDE7CisgICAgcmV0dXJuIHVuaXF1ZVRpbWVySUQrKzsKK30KKwor
UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1f
cnVuTG9vcChydW5Mb29wKQorICAgICwgbV9JRChnZW5lcmF0ZVRpbWVySUQoKSkKKyAgICAsIG1f
aXNSZXBlYXRpbmcoZmFsc2UpCit7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFz
ZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQo
ZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQoreworICAgIG1faXNSZXBlYXRp
bmcgPSByZXBlYXQ7CisgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5zZXQobV9JRCwgdGhp
cyk7CisgICAgOjpTZXRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1f
SUQsIG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwLCAwKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1l
ckJhc2U6OnN0b3AoKQoreworICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+
bV9hY3RpdmVUaW1lcnMuZmluZChtX0lEKTsKKyAgICBpZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2Fj
dGl2ZVRpbWVycy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ydW5Mb29wLT5tX2Fj
dGl2ZVRpbWVycy5yZW1vdmUoaXQpOworICAgIDo6S2lsbFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5M
b29wTWVzc2FnZVdpbmRvdywgbV9JRCk7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjpp
c0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMu
Y29udGFpbnMobV9JRCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCAzNDIwYjYyMjUyMzkwZjU1YWYxN2QwM2ZhODhiMDUzZTI1ZjQ2YmUyLi5mODk1OWVk
NGE0ZTFhYTAxMTMzNzc1ZWYxNWEzMzY2NGRiN2VhNGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMTc4NSw3ICsxNzg1LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL05v
dEltcGxlbWVudGVkLmNwcAogICAgIHBsYXRmb3JtL1BsYXRmb3JtRXZlbnQuY3BwCiAgICAgcGxh
dGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAotICAgIHBsYXRmb3JtL1J1bkxvb3AuY3BwCiAg
ICAgcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAogICAgIHBsYXRmb3JtL1Nj
aGVtZVJlZ2lzdHJ5LmNwcAogICAgIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZTJiMjJiZDZjNjk2NDRlNjQ5OGQ2MmMzMTFmNmQx
N2EzZDJiMzk5NC4uZjhjMDQ1MDRlNGRjOTJhMmViOGNmOGIzMTkyMzgyMjMwNjliOGRkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC02MDE1LDggKzYwMTUsNiBAQCBwbGF0Zm9y
bV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUmVmQ291bnRlZFN1cHBsZW1lbnQuaCBcCi0JU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxv
b3AuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oIFwKQEAgLTYx
NzYsNyArNjE3NCw2IEBAIHBsYXRmb3JtZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcCBcCi0JU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1NlYXJjaFBvcHVwTWVudUd0ay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hh
cmVkQnVmZmVyR3RrLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJs
YWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UK
aW5kZXggOGNkMmZkY2Y3ZWNlNzk2OTQ0OTEwMzQ1Zjk1NmQ1MzI0YTcyZWI2MS4uMWEwNDQ1MGZj
OTllY2Q4YTdlZTUzYTA4ZTVjNGNmNGQzZDhjNmZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
QmxhY2tCZXJyeS5jbWFrZQpAQCAtMTIwLDcgKzEyMCw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUwogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvUGxhdGZvcm1Ub3VjaFBvaW50QmxhY2tC
ZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BvcHVwTWVudUJsYWNrQmVycnkuY3Bw
CiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9SZW5kZXJUaGVtZUJsYWNrQmVycnkuY3BwCi0gICAg
cGxhdGZvcm0vYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9i
bGFja2JlcnJ5L1NTTEtleUdlbmVyYXRvckJsYWNrQmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxh
Y2tiZXJyeS9TY3JvbGxiYXJUaGVtZUJsYWNrQmVycnkuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2ti
ZXJyeS9TZWFyY2hQb3B1cE1lbnVCbGFja0JlcnJ5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFr
ZQppbmRleCAwZWE1MGUxYTJkNmE0NWZjMDc5N2MxZTc2ZDM4ZjA3ZjFhMzUzOGY5Li4yZGJjYzcw
MjJjMjgxNzU2OWU2NWE2NjIxZDE2ZjFjNjU3Mzg1MjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5j
bWFrZQpAQCAtODIsNyArODIsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBw
bGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1BsYXRm
b3JtV2hlZWxFdmVudEVmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3Bw
Ci0gICAgcGxhdGZvcm0vZWZsL1J1bkxvb3BFZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1Njcm9s
bGJhckVmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyVGhlbWVFZmwuY3BwCiAgICAg
cGxhdGZvcm0vZWZsL1NoYXJlZFRpbWVyRWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpp
bmRleCA4ZmY4MWY4ZTA1MDI2MjZhOGZkMTM1ODg5NjQyYTAwYjkzNGI4M2RhLi4yZDY3OWFlYjg3
OWExYjVlYTBmMjViYmY3MzJmYjk4OTAxMTcwZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFr
ZQpAQCAtMTY0LDcgKzE2NCw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhl
bWVHdGsyLmNwcAogICAgIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCi0gICAgcGxh
dGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCiAgICAgcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsu
Y3BwCiAgICAgcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcAogICAgIHBsYXRmb3Jt
L2d0ay9TY3JvbGxiYXJUaGVtZUd0azIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4
IDhkYWJlZDNlNDFlOGY5M2NhY2VjNDEzYzM5ZTUxZTRlN2FjNmVlNzUuLmVkYzViNzViNzExZDVl
YzU3NjY2MTc4MDkzNmFiNWIwYTU3YTNhNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCkBA
IC01MSw3ICs1MSw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3Jt
L3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL1BsYXRmb3Jt
U2NyZWVuV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCi0gICAgcGxh
dGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRv
cldpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vU2Nyb2xsYmFyVGhlbWVXaW4uY3BwCiAgICAgcGxh
dGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
ZDQ3YmEwODg2MmNlMmZjOWM1YzUxMmMwZmNhOWJmYTMzYWVjNjQ1YS4uNjYwNWNhZjhjOWJjNDBm
YzZhYWIwOTg5MDU4NDc4MTI3ODdmNjM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwOTEs
MTkgKzEwOTEsNiBAQCBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRlcnNlY3RFUktTMF8KIF9fWk43
V2ViQ29yZTdJbnRSZWN0QzFFUktOU18xMExheW91dFJlY3RFCiBfX1pON1dlYkNvcmU3SW50UmVj
dEMxRVJLTlNfOUZsb2F0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRTaXplQzFFUks2Q0dTaXplCi1f
X1pON1dlYkNvcmU3UnVuTG9vcDE0cnVuRm9yRHVyYXRpb25FZAotX19aTjdXZWJDb3JlN1J1bkxv
b3AyMWluaXRpYWxpemVNYWluUnVuTG9vcEV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDNydW5Fdgot
X19aTjdXZWJDb3JlN1J1bkxvb3A0bWFpbkV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDRzdG9wRXYK
LV9fWk43V2ViQ29yZTdSdW5Mb29wNmlzTWFpbkV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDZ3YWtl
VXBFdgotX19aTjdXZWJDb3JlN1J1bkxvb3A3Y3VycmVudEV2Ci1fX1pON1dlYkNvcmU3UnVuTG9v
cDhkaXNwYXRjaEVSS04zV1RGOEZ1bmN0aW9uSUZ2dkVFRQotX19aTjdXZWJDb3JlN1J1bkxvb3A5
VGltZXJCYXNlNHN0b3BFdgotX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlNXN0YXJ0RWRi
Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2VDMkVQUzBfCi1fX1pON1dlYkNvcmU3UnVu
TG9vcDlUaW1lckJhc2VEMkV2CiBfX1pON1dlYkNvcmU3VGV4dFJ1bjE5YWxsb3dzUm91bmRpbmdI
YWNrc0V2CiBfX1pON1dlYkNvcmU3VGV4dFJ1bjIxc19hbGxvd3NSb3VuZGluZ0hhY2tzRQogX19a
TjdXZWJDb3JlN1RleHRSdW4yMnNldEFsbG93c1JvdW5kaW5nSGFja3NFYgpAQCAtMTcyOSw3ICsx
NzE2LDYgQEAgX19aTks3V2ViQ29yZTdFbGVtZW50MTliZWZvcmVQc2V1ZG9FbGVtZW50RXYKIF9f
Wk5LN1dlYkNvcmU3SW50UmVjdDEwaW50ZXJzZWN0c0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRS
ZWN0OGNvbnRhaW5zRVJLUzBfCiBfX1pOSzdXZWJDb3JlN0ludFJlY3RjdjZDR1JlY3RFdgotX19a
Tks3V2ViQ29yZTdSdW5Mb29wOVRpbWVyQmFzZThpc0FjdGl2ZUV2CiBfX1pOSzdXZWJDb3JlOERv
Y3VtZW50MTFjb21wbGV0ZVVSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmU4RG9jdW1l
bnQxM2F4T2JqZWN0Q2FjaGVFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDMxZGlzcGxheVN0cmlu
Z01vZGlmaWVkQnlFbmNvZGluZ0VSS04zV1RGNlN0cmluZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDJmNWNmZWJhOGU3ZDI2MWMzNTIw
OTk4ZWMyMTczYzlhMjY3MzY0ZDIuLjRjYjk2ZTI3ZjAzNDA2OTYwYWUzNjBhZTczYTJhN2E0NTgx
MWQzNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagpAQCAtNzI0Niw3ICs3MjQ2LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXE5vdEltcGxlbWVudGVkLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXFBsYXRmb3JtRXZlbnQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXFJ1bkxvb3AuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNjaGVtZVJlZ2lzdHJ5LmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNjcm9sbGFibGVBcmVhLmNwcCIgLz4KQEAg
LTczMDUsNyArNzMwNCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3
aW5cUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHBsYXRmb3JtXHdpblxQbGF0Zm9ybVNjcmVlbldpbi5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cUG9wdXBNZW51V2luLmNwcCIgLz4KLSAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxSdW5Mb29wV2luLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTY3JvbGxiYXJUaGVtZVNhZmFyaS5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cU2Nyb2xsYmFy
VGhlbWVXaW4uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2lu
XFNlYXJjaFBvcHVwTWVudVdpbi5jcHAiIC8+CkBAIC0xODczOCw3ICsxODczNiw2IEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxQb3B1cE1lbnVTdHlsZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUHVyZ2VhYmxlQnVmZmVyLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxSZWZlcnJlclBvbGljeS5oIiAvPgot
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUnVuTG9vcC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxTY2hlbWVSZWdpc3RyeS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cU2Nyb2xsYWJsZUFyZWEu
aCIgLz4KQEAgLTIwNjI1LDQgKzIwNjIyLDQgQEAKICAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRl
bnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcQnVp
bGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdldHMiIC8+CiAgIDwvSW1wb3J0R3JvdXA+Ci08L1By
b2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJhYjNi
ZTIzYWEyNjcxZmU1YTFjZDE1OWJhOTY4N2IzZDE5NmY0NjguLmNiMDIxMjk2Y2Y4M2Q0NTc4YzA4
ZWZiODJmOWUwOWM5YjUyZTQyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxMCw3ICs5MTAsNiBAQAogCQkyOTdCRTNENzE2
QzAzQzBFMDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlFNEQ4REYxNkIwOTQwRjAwQzg0
NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCAqLzsgfTsKIAkJMjk3QkUzRDgxNkMw
M0NDRTAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUU0RDhFMDE2QjA5NTk4MDBD
ODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbSAqLzsgfTsKIAkJMjk3QkUz
REExNkMwNDNEODAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3QkUzRDkxNkMwNDNE
ODAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwICovOyB9OwotCQkyOUEz
MDlBQzE1NjFDOTlCMDBCQkQ4RTUgLyogUnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTMwOUFCMTU2MUM5OUIwMEJCRDhFNSAvKiBS
dW5Mb29wQ0YuY3BwICovOyB9OwogCQkyOUE4MTIyQjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNz
aWJpbGl0eVRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyOUE4MTIwRDBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmggKi87
IH07CiAJCTI5QTgxMjJDMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5TGlzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMEUwRkJC
OUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlMaXN0LmggKi87IH07CiAJCTI5QTgxMjJFMEZC
QjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIxMDBGQkI5QzFEMDA1MTAy
OTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oICovOyB9OwpAQCAtNDY5Myw4ICs0Njky
LDYgQEAKIAkJQkMwNkVFMDQwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA2RUUw
MjBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50LmNwcCAqLzsgfTsKIAkJQkMw
NkVFMDUwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkVFMDMwQkZENzFBQTAwODU2
RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5oICovOyB9OwogCQlCQzA3M0JBQTBDMzk5QjFGMDAw
RjU5NzkgLyogRmxvYXRDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzA3M0JBOTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252ZXJz
aW9uLmggKi87IH07Ci0JCUJDMEIzNTg3MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTg1MTRD
NEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLzsgfTsKLQkJQkMwQjM1ODgxNEM0Rjk4MzAw
NTVFMjJBIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMEIzNTg2MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMwQjM2QTQwQ0QzQzY3
QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMwQjM2QTEwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwICov
OyB9OwogCQlCQzBCMzZBNTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM2QTIwQ0QzQzY3QzAwQUM3
RUI1IC8qIENvbnNvbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQzEwRDc2NzE3RDhFRTZFMDA1RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkI0NUY0
MTdEOEU0OTQwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3BwICovOyB9OwpAQCAtNzQwNiw3
ICs3NDAzLDYgQEAKIAkJMjk4MUNBQUYxMzE4MjJFQzAwRDEyRjJBIC8qIEFYT2JqZWN0Q2FjaGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVhPYmplY3RDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTI5ODU3MDkyMTVDQzUzMkQwMDYzNTVDRCAvKiBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5ODU3MDkzMTVDQzUzMkQwMDYz
NTVDRCAvKiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyOUEzMDlB
QjE1NjFDOTlCMDBCQkQ4RTUgLyogUnVuTG9vcENGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3BDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI5QTgxMjBEMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRhYmxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjBFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nl
c3NpYmlsaXR5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3Np
YmlsaXR5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4MTIxMDBGQkI5
QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTU2NSw4ICsxMTU2MSw2IEBACiAJCUJDMDZGMjRDMDZE
MThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRQcm9jZXNzb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJDMDZGMjREMDZE
MThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYU0xUUHJvY2Vzc29yTGli
eHNsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwogCQlCQzA3M0JBOTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252ZXJzaW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdENvbnZlcnNpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMwQjM1ODUxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1
bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9vcC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMEIzNTg2MTRDNEY5ODMwMDU1RTIy
QSAvKiBSdW5Mb29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bkxvb3Au
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwQjM2QTEwQ0QzQzY3QzAwQUM3RUI1
IC8qIENvbnNvbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENv
bnNvbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzBCMzZBMjBDRDNDNjdD
MDBBQzdFQjUgLyogQ29uc29sZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzBCMzZBMzBDRDNDNjdD
MDBBQzdFQjUgLyogQ29uc29sZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENvbnNvbGUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM5NzQsNyArMTM5NjgsNiBAQAog
CQkJCUUxQThFNTY1MTc1NTJCMkEwMDc0ODhFNyAvKiBDRlVSTEV4dHJhcy5oICovLAogCQkJCTUx
NjAzMDZCMENDNDM2MjMwMEM4QUMyNSAvKiBGaWxlU3lzdGVtQ0YuY3BwICovLAogCQkJCTFBOTg5
NTZBMEFBNzhGODAwMDVFRjVFRiAvKiBVUkxDRi5jcHAgKi8sCi0JCQkJMjlBMzA5QUIxNTYxQzk5
QjAwQkJEOEU1IC8qIFJ1bkxvb3BDRi5jcHAgKi8sCiAJCQkJNTEyREQ4RTIwRDkxRTJCNDAwMEY4
OUVFIC8qIFNoYXJlZEJ1ZmZlckNGLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gY2Y7CkBAIC0x
OTg0Myw4ICsxOTgzNiw2IEBACiAJCQkJN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdl
UHJpb3JpdHkuaCAqLywKIAkJCQlBNzJFQTNCQTE1ODVDRjU1MDA0RkFBMjYgLyogUmVmQ291bnRl
ZFN1cHBsZW1lbnQuaCAqLywKIAkJCQk5ODMxQUU0OTE1NDIyNUEyMDBGRTI2NDQgLyogUmVmZXJy
ZXJQb2xpY3kuaCAqLywKLQkJCQlCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5j
cHAgKi8sCi0JCQkJQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLywKIAkJ
CQkyOTNFQUUyMDEzNTZCMzJFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNw
cCAqLywKIAkJCQkyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmggKi8sCiAJCQkJNTE2MkM3RjIxMUY3N0VGQTAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lz
dHJ5LmNwcCAqLywKQEAgLTIzODUxLDcgKzIzODQyLDYgQEAKIAkJCQlBNzNGOTVGRjEyQzk3QkZF
MDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OUJBREEyMTYx
RTdGM0YwMEMyRTY1MiAvKiBSdWxlRmVhdHVyZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc5QkFE
QTQxNjFFN0YzRjAwQzJFNjUyIC8qIFJ1bGVTZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMEIz
NTg4MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2
OUQxRjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE1NjlEMjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQTU2OUQyMzBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9vYmplY3QuaCBp
biBIZWFkZXJzICovLApAQCAtMjcwMjUsOCArMjcwMTUsNiBAQAogCQkJCUE3OUJBREExMTYxRTdG
M0YwMEMyRTY1MiAvKiBSdWxlRmVhdHVyZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzlCQURB
MzE2MUU3RjNGMDBDMkU2NTIgLyogUnVsZVNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhF
MDkwMjE3RDE0Q0VFMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFjay5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlCQzBCMzU4NzE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQkyOUEzMDlBQzE1NjFDOTlCMDBCQkQ4RTUgLyogUnVuTG9vcENGLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDMkJERDNEMTdDN0Y5OEMwMDM4RkYxNSAvKiBKU0RPTUdsb2JhbE9i
amVjdFRhc2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMUUwRDdFMkI4MjAwN0MzOTgz
IC8qIHJ1bnRpbWVfYXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMjAwRDdFMkI4
MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9SdW5Mb29wLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2E0ZWRk
NTY4OWY3MThjZTI1NjBhNDBjYjI3M2I3N2Q3NzUzYzkwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29w
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1zdGF0aWMgUnVuTG9vcCogc19tYWluUnVuTG9vcDsKLQotLy8gSGVscGVy
IGNsYXNzIGZvciBUaHJlYWRTcGVjaWZpY0RhdGEuCi1jbGFzcyBSdW5Mb29wOjpIb2xkZXIgewot
cHVibGljOgotICAgIEhvbGRlcigpCi0gICAgICAgIDogbV9ydW5Mb29wKGFkb3B0UmVmKG5ldyBS
dW5Mb29wKSkKLSAgICB7Ci0gICAgfQotCi0gICAgUnVuTG9vcCogcnVuTG9vcCgpIGNvbnN0IHsg
cmV0dXJuIG1fcnVuTG9vcC5nZXQoKTsgfQotCi1wcml2YXRlOgotICAgIFJlZlB0cjxSdW5Mb29w
PiBtX3J1bkxvb3A7Ci19OwotCi12b2lkIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
Ci17Ci0gICAgaWYgKHNfbWFpblJ1bkxvb3ApCi0gICAgICAgIHJldHVybjsKLSAgICBzX21haW5S
dW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOwotfQotCi1SdW5Mb29wKiBSdW5Mb29wOjpjdXJy
ZW50KCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVu
TG9vcDo6SG9sZGVyPiwgcnVuTG9vcEhvbGRlciwgKCkpOwotICAgIHJldHVybiBydW5Mb29wSG9s
ZGVyLT5ydW5Mb29wKCk7Ci19Ci0KLVJ1bkxvb3AqIFJ1bkxvb3A6Om1haW4oKQotewotICAgIEFT
U0VSVChzX21haW5SdW5Mb29wKTsKLSAgICByZXR1cm4gc19tYWluUnVuTG9vcDsKLX0KLQotYm9v
bCBSdW5Mb29wOjppc01haW4oKQotewotICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKLSAgICBy
ZXR1cm4gc19tYWluUnVuTG9vcCA9PSBSdW5Mb29wOjpjdXJyZW50KCk7Ci19Ci0KLXZvaWQgUnVu
TG9vcDo6cGVyZm9ybVdvcmsoKQotewotICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byBoYW5kbGUg
dGhlIGZ1bmN0aW9ucyBpbiB0aGUgcXVldWUgb25lIGF0IGEgdGltZSBiZWNhdXNlIHdoaWxlIGlu
c2lkZSBvbmUgb2YgdGhlc2UKLSAgICAvLyBmdW5jdGlvbnMgd2UgbWlnaHQgcmUtZW50ZXIgUnVu
TG9vcDo6cGVyZm9ybVdvcmsoKSBhbmQgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHBpY2sgdXAgd2hl
cmUgd2UgbGVmdCBvZmYuCi0gICAgLy8gU2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvODk1OTAgZm9y
IG1vcmUgZGlzY3Vzc2lvbi4KLQotICAgIC8vIE9uZSBwb3NzaWJsZSBzY2VuYXJpbyB3aGVuIGhh
bmRsaW5nIHRoZSBmdW5jdGlvbiBxdWV1ZSBpcyBhcyBmb2xsb3dzOgotICAgIC8vIC0gUnVuTG9v
cDo6cGVyZm9ybVdvcmsoKSBpcyBpbnZva2VkIHdpdGggMSBmdW5jdGlvbiBvbiB0aGUgcXVldWUK
LSAgICAvLyAtIEhhbmRsaW5nIHRoYXQgZnVuY3Rpb24gcmVzdWx0cyBpbiAxIG1vcmUgZnVuY3Rp
b24gYmVpbmcgZW5xdWV1ZWQKLSAgICAvLyAtIEhhbmRsaW5nIHRoYXQgb25lIHJlc3VsdHMgaW4g
eWV0IGFub3RoZXIgYmVpbmcgZW5xdWV1ZWQKLSAgICAvLyAtIEFuZCBzbyBvbgotICAgIC8vCi0g
ICAgLy8gSW4gdGhpcyBzaXR1YXRpb24gb25lIGludm9jYXRpb24gb2YgcGVyZm9ybVdvcmsoKSBu
ZXZlciByZXR1cm5zIHNvIGFsbCBvdGhlciBldmVudCBzb3VyY2VzIGFyZSBibG9ja2VkLgotICAg
IC8vIEJ5IG9ubHkgaGFuZGxpbmcgdXAgdG8gdGhlIG51bWJlciBvZiBmdW5jdGlvbnMgdGhhdCB3
ZXJlIGluIHRoZSBxdWV1ZSB3aGVuIHBlcmZvcm1Xb3JrKCkgaXMgY2FsbGVkCi0gICAgLy8gd2Ug
Z3VhcmFudGVlIHRvIG9jY2FzaW9uYWxseSByZXR1cm4gZnJvbSB0aGUgcnVuIGxvb3Agc28gb3Ro
ZXIgZXZlbnQgc291cmNlcyB3aWxsIGJlIGFsbG93ZWQgdG8gc3Bpbi4KLQotICAgIEZ1bmN0aW9u
PHZvaWQoKT4gZnVuY3Rpb247Ci0gICAgc2l6ZV90IGZ1bmN0aW9uc1RvSGFuZGxlID0gMDsKLQot
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwot
ICAgICAgICBmdW5jdGlvbnNUb0hhbmRsZSA9IG1fZnVuY3Rpb25RdWV1ZS5zaXplKCk7Ci0KLSAg
ICAgICAgaWYgKG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgZnVuY3Rpb24gPSBtX2Z1bmN0aW9uUXVldWUudGFrZUZpcnN0KCk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24oKTsKLQotICAgIGZvciAoc2l6ZV90IGZ1bmN0aW9uc0hhbmRsZWQg
PSAxOyBmdW5jdGlvbnNIYW5kbGVkIDwgZnVuY3Rpb25zVG9IYW5kbGU7ICsrZnVuY3Rpb25zSGFu
ZGxlZCkgewotICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5j
dGlvblF1ZXVlTG9jayk7Ci0KLSAgICAgICAgICAgIC8vIEV2ZW4gaWYgd2Ugc3RhcnQgb2ZmIHdp
dGggTiBmdW5jdGlvbnMgdG8gaGFuZGxlIGFuZCB3ZSd2ZSBvbmx5IGhhbmRsZWQgbGVzcyB0aGFu
IE4gZnVuY3Rpb25zLCB0aGUgcXVldWUKLSAgICAgICAgICAgIC8vIHN0aWxsIG1pZ2h0IGJlIGVt
cHR5IGJlY2F1c2UgdGhvc2UgZnVuY3Rpb25zIG1pZ2h0IGhhdmUgYmVlbiBoYW5kbGVkIGluIGFu
IGlubmVyIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkuCi0gICAgICAgICAgICAvLyBJbiB0aGF0IGNh
c2Ugd2Ugc2hvdWxkIGJhaWwgaGVyZS4KLSAgICAgICAgICAgIGlmIChtX2Z1bmN0aW9uUXVldWUu
aXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBmdW5jdGlv
biA9IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsKLSAgICAgICAgfQotICAgICAgICAKLSAg
ICAgICAgZnVuY3Rpb24oKTsKLSAgICB9Ci19Ci0KLXZvaWQgUnVuTG9vcDo6ZGlzcGF0Y2goY29u
c3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQoZnVuY3Rp
b24pOwotCi0gICAgd2FrZVVwKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1J1bkxvb3AuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODMyNzE2
NDJlMWM4MjQxZjdiM2RmZDVhNzU1NTkxMTkwZmMwNGUzMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29w
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKiBQb3J0
aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUnVuTG9vcF9oCi0jZGVmaW5lIFJ1bkxv
b3BfaAotCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
LSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25EaXNwYXRjaGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+Ci0KLSNpZiBVU0UoR0xJQikKLSNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKEVGTCkK
LSNpbmNsdWRlIDxFY29yZS5oPgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewotcHVibGljOgotICAgIC8v
IE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkIChleGNlcHQgZm9yIHRoZSBNYWMg
cGxhdGZvcm0sIHdoZXJlIGl0Ci0gICAgLy8gY2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQp
LgotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVNYWluUnVuTG9vcCgpOwotCi0gICAgc3RhdGlj
IFJ1bkxvb3AqIGN1cnJlbnQoKTsKLSAgICBzdGF0aWMgUnVuTG9vcCogbWFpbigpOwotICAgIHN0
YXRpYyBib29sIGlzTWFpbigpOwotICAgIH5SdW5Mb29wKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpIE9WRVJSSURFOwotCi0gICAgc3RhdGlj
IHZvaWQgcnVuKCk7Ci0gICAgdm9pZCBzdG9wKCk7Ci0gICAgdm9pZCB3YWtlVXAoKTsKLQotI2lm
IFBMQVRGT1JNKE1BQykKLSAgICB2b2lkIHJ1bkZvckR1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbik7
Ci0jZW5kaWYKLSAgICAKLSAgICBjbGFzcyBUaW1lckJhc2UgewotICAgICAgICBmcmllbmQgY2xh
c3MgUnVuTG9vcDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IFRpbWVyQmFzZShSdW5M
b29wKik7Ci0gICAgICAgIHZpcnR1YWwgflRpbWVyQmFzZSgpOwotCi0gICAgICAgIHZvaWQgc3Rh
cnRSZXBlYXRpbmcoZG91YmxlIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0KHJlcGVhdEludGVydmFs
LCB0cnVlKTsgfQotICAgICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50ZXJ2YWwpIHsg
c3RhcnQoaW50ZXJ2YWwsIGZhbHNlKTsgfQotCi0gICAgICAgIHZvaWQgc3RvcCgpOwotICAgICAg
ICBib29sIGlzQWN0aXZlKCkgY29uc3Q7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkg
PSAwOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBzdGFydChkb3VibGUgbmV4dEZpcmVJ
bnRlcnZhbCwgYm9vbCByZXBlYXQpOwotCi0gICAgICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKLQot
I2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29w
KiwgdWludDY0X3QgSUQpOwotICAgICAgICB1aW50NjRfdCBtX0lEOwotICAgICAgICBib29sIG1f
aXNSZXBlYXRpbmc7Ci0jZWxpZiBQTEFURk9STShNQUMpCi0gICAgICAgIHN0YXRpYyB2b2lkIHRp
bWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKLSAgICAgICAgUmV0YWluUHRyPENG
UnVuTG9vcFRpbWVyUmVmPiBtX3RpbWVyOwotI2VsaWYgUExBVEZPUk0oRUZMKQotICAgICAgICBz
dGF0aWMgYm9vbCB0aW1lckZpcmVkKHZvaWQqIGRhdGEpOwotICAgICAgICBFY29yZV9UaW1lciog
bV90aW1lcjsKLSAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOwotI2VsaWYgVVNFKEdMSUIpCi0g
ICAgICAgIHN0YXRpYyBnYm9vbGVhbiB0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJC
YXNlKik7Ci0gICAgICAgIGdib29sZWFuIGlzUmVwZWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9p
c1JlcGVhdGluZzsgfQotICAgICAgICB2b2lkIGNsZWFyVGltZXJTb3VyY2UoKTsKLSAgICAgICAg
R1JlZlB0cjxHU291cmNlPiBtX3RpbWVyU291cmNlOwotICAgICAgICBnYm9vbGVhbiBtX2lzUmVw
ZWF0aW5nOwotI2VuZGlmCi0gICAgfTsKLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUaW1lckZp
cmVkQ2xhc3M+Ci0gICAgY2xhc3MgVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIHR5cGVkZWYgdm9pZCAoVGltZXJGaXJlZENsYXNzOjoqVGltZXJGaXJlZEZ1
bmN0aW9uKSgpOwotCi0gICAgICAgIFRpbWVyKFJ1bkxvb3AqIHJ1bkxvb3AsIFRpbWVyRmlyZWRD
bGFzcyogbywgVGltZXJGaXJlZEZ1bmN0aW9uIGYpCi0gICAgICAgICAgICA6IFRpbWVyQmFzZShy
dW5Mb29wKQotICAgICAgICAgICAgLCBtX29iamVjdChvKQotICAgICAgICAgICAgLCBtX2Z1bmN0
aW9uKGYpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmly
dHVhbCB2b2lkIGZpcmVkKCkgeyAobV9vYmplY3QtPiptX2Z1bmN0aW9uKSgpOyB9Ci0KLSAgICAg
ICAgVGltZXJGaXJlZENsYXNzKiBtX29iamVjdDsKLSAgICAgICAgVGltZXJGaXJlZEZ1bmN0aW9u
IG1fZnVuY3Rpb247Ci0gICAgfTsKLQotICAgIGNsYXNzIEhvbGRlcjsKLQotcHJpdmF0ZToKLSAg
ICBSdW5Mb29wKCk7Ci0KLSAgICB2b2lkIHBlcmZvcm1Xb3JrKCk7Ci0KLSAgICBNdXRleCBtX2Z1
bmN0aW9uUXVldWVMb2NrOwotICAgIERlcXVlPEZ1bmN0aW9uPHZvaWQoKT4+IG1fZnVuY3Rpb25R
dWV1ZTsKLQotI2lmIFBMQVRGT1JNKFdJTikKLSAgICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1bkxv
b3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKLSAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBSdW5M
b29wV25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7Ci0gICAgTFJFU1VMVCB3bmRQ
cm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFt
KTsKLSAgICBIV05EIG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3c7Ci0KLSAgICB0eXBlZGVmIEhhc2hN
YXA8dWludDY0X3QsIFRpbWVyQmFzZSo+IFRpbWVyTWFwOwotICAgIFRpbWVyTWFwIG1fYWN0aXZl
VGltZXJzOwotI2VsaWYgUExBVEZPUk0oTUFDKQotICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1Xb3Jr
KHZvaWQqKTsKLSAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wUmVmPiBtX3J1bkxvb3A7Ci0gICAgUmV0
YWluUHRyPENGUnVuTG9vcFNvdXJjZVJlZj4gbV9ydW5Mb29wU291cmNlOwotICAgIGludCBtX25l
c3RpbmdMZXZlbDsKLSNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICBib29sIG1faW5pdEVmbDsKLQot
ICAgIE11dGV4IG1fcGlwZUxvY2s7Ci0gICAgT3duUHRyPEVjb3JlX1BpcGU+IG1fcGlwZTsKLQot
ICAgIE11dGV4IG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWRMb2NrOwotICAgIGJvb2wgbV93YWtlVXBF
dmVudFJlcXVlc3RlZDsKLQotICAgIHN0YXRpYyB2b2lkIHdha2VVcEV2ZW50KHZvaWQqIGRhdGEs
IHZvaWQqLCB1bnNpZ25lZCBpbnQpOwotI2VsaWYgVVNFKEdMSUIpCi1wdWJsaWM6Ci0gICAgc3Rh
dGljIGdib29sZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7Ci0gICAgR01haW5Mb29wKiBpbm5lcm1v
c3RMb29wKCk7Ci0gICAgdm9pZCBwdXNoTmVzdGVkTWFpbkxvb3AoR01haW5Mb29wKik7Ci0gICAg
dm9pZCBwb3BOZXN0ZWRNYWluTG9vcCgpOwotcHJpdmF0ZToKLSAgICBHUmVmUHRyPEdNYWluQ29u
dGV4dD4gbV9ydW5Mb29wQ29udGV4dDsKLSAgICBWZWN0b3I8R1JlZlB0cjxHTWFpbkxvb3A+PiBt
X3J1bkxvb3BNYWluTG9vcHM7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIFJ1bkxvb3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTgyMDc4OGQ2YWJiMDkzODJlOWUxOGNjZWVkZTY3NTMxMTExNzU2My4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVt
YmVkZGVkIHN5c3RlbXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SdW5Mb29wOjpSdW5M
b29wKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQot
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1J1bkxvb3BDRi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9SdW5Mb29wQ0YuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmNjE4ZTAyODc5MjI0ODM3NGZhMjJiZWM4MDE2M2E5NzE1YjY3OTU3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NmL1J1bkxvb3BDRi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5M
b29wLmgiCi0KLSNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgotI2lu
Y2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+Ci0jaW5jbHVkZSA8d3RmL0F1dG9kcmFpbmVkUG9v
bC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmso
dm9pZCogY29udGV4dCkKLXsKLSAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKLSAgICBzdGF0aWNf
Y2FzdDxSdW5Mb29wKj4oY29udGV4dCktPnBlcmZvcm1Xb3JrKCk7Ci19Ci0KLVJ1bkxvb3A6OlJ1
bkxvb3AoKQotICAgIDogbV9ydW5Mb29wKENGUnVuTG9vcEdldEN1cnJlbnQoKSkKLSAgICAsIG1f
bmVzdGluZ0xldmVsKDApCi17Ci0gICAgQ0ZSdW5Mb29wU291cmNlQ29udGV4dCBjb250ZXh0ID0g
eyAwLCB0aGlzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCBwZXJmb3JtV29yayB9OwotICAgIG1fcnVu
TG9vcFNvdXJjZSA9IGFkb3B0Q0YoQ0ZSdW5Mb29wU291cmNlQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIDAsICZjb250ZXh0KSk7Ci0gICAgQ0ZSdW5Mb29wQWRkU291cmNlKG1fcnVuTG9vcC5n
ZXQoKSwgbV9ydW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotfQot
Ci1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgQ0ZSdW5Mb29wU291cmNlSW52YWxpZGF0ZSht
X3J1bkxvb3BTb3VyY2UuZ2V0KCkpOwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9u
KGRvdWJsZSBkdXJhdGlvbikKLXsKLSAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERl
ZmF1bHRNb2RlLCBkdXJhdGlvbiwgdHJ1ZSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkK
LXsKLSAgICBDRlJ1bkxvb3BTb3VyY2VTaWduYWwobV9ydW5Mb29wU291cmNlLmdldCgpKTsKLSAg
ICBDRlJ1bkxvb3BXYWtlVXAobV9ydW5Mb29wLmdldCgpKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpy
dW4oKQotewotICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwrKzsKLSAgICAKLSAgICB7Ci0g
ICAgICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwotICAgICAgICBDRlJ1bkxvb3BSdW4oKTsKLSAg
ICB9Ci0gICAgCi0gICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbC0tOwotfQotCi12b2lkIFJ1
bkxvb3A6OnN0b3AoKQotewotICAgIEFTU0VSVChtX3J1bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0Q3Vy
cmVudCgpKTsKLSAgICBDRlJ1bkxvb3BTdG9wKG1fcnVuTG9vcC5nZXQoKSk7Ci19Ci0KLS8vIFJ1
bkxvb3A6OlRpbWVyCi0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKENGUnVu
TG9vcFRpbWVyUmVmLCB2b2lkKiBjb250ZXh0KQotewotICAgIFRpbWVyQmFzZSogdGltZXIgPSBz
dGF0aWNfY2FzdDxUaW1lckJhc2UqPihjb250ZXh0KTsKLQotICAgIEF1dG9kcmFpbmVkUG9vbCBw
b29sOwotICAgIHRpbWVyLT5maXJlZCgpOwotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVy
QmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi17Ci19Ci0K
LVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12
b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJv
b2wgcmVwZWF0KQotewotICAgIGlmIChtX3RpbWVyKQotICAgICAgICBzdG9wKCk7Ci0gICAgCi0g
ICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAgfTsK
LSAgICBDRlRpbWVJbnRlcnZhbCByZXBlYXRJbnRlcnZhbCA9IHJlcGVhdCA/IG5leHRGaXJlSW50
ZXJ2YWwgOiAwOwotICAgIG1fdGltZXIgPSBhZG9wdENGKENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgbmV4dEZpcmVJ
bnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWwsIDAsIDAsIHRpbWVyRmlyZWQsICZjb250ZXh0KSk7Ci0g
ICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3AuZ2V0KCksIG1fdGltZXIu
Z2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJC
YXNlOjpzdG9wKCkKLXsKLSAgICBpZiAoIW1fdGltZXIpCi0gICAgICAgIHJldHVybjsKLSAgICAK
LSAgICBDRlJ1bkxvb3BUaW1lckludmFsaWRhdGUobV90aW1lci5nZXQoKSk7Ci0gICAgbV90aW1l
ciA9IG51bGxwdHI7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5Mb29wVGltZXJJc1ZhbGlkKG1fdGlt
ZXIuZ2V0KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUnVuTG9vcEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvUnVuTG9vcEVmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGE5MmRjZGZlNzIzMWVkNTIxMmJmMGI1OTZhNGY3MmE3NDY5MjU4NjAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL1J1bkxvb3BFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcwot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxv
b3AuaCIKLQotI2luY2x1ZGUgPEVjb3JlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLXN0YXRpYyBjb25zdCBpbnQgZWNvcmVQaXBlTWVz
c2FnZVNpemUgPSAxOwotc3RhdGljIGNvbnN0IGNoYXIgd2FrdXBFY29yZVBpcGVNZXNzYWdlW10g
PSAiVyI7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUnVuTG9vcDo6UnVuTG9vcCgpCi0gICAg
OiBtX2luaXRFZmwoZmFsc2UpCi0gICAgLCBtX3dha2VVcEV2ZW50UmVxdWVzdGVkKGZhbHNlKQot
ewotICAgIG1fcGlwZSA9IGFkb3B0UHRyKGVjb3JlX3BpcGVfYWRkKHdha2VVcEV2ZW50LCB0aGlz
KSk7Ci0gICAgbV9pbml0RWZsID0gdHJ1ZTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewot
fQotCi12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgZWNvcmVfbWFpbl9sb29wX2JlZ2luKCk7
Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0gICAgZWNvcmVfbWFpbl9sb29wX3F1aXQo
KTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXBFdmVudCh2b2lkKiBkYXRhLCB2b2lkKiwgdW5z
aWduZWQgaW50KQotewotICAgIFJ1bkxvb3AqIGxvb3AgPSBzdGF0aWNfY2FzdDxSdW5Mb29wKj4o
ZGF0YSk7Ci0KLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihsb29wLT5tX3dha2VV
cEV2ZW50UmVxdWVzdGVkTG9jayk7Ci0gICAgICAgIGxvb3AtPm1fd2FrZVVwRXZlbnRSZXF1ZXN0
ZWQgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICBsb29wLT5wZXJmb3JtV29yaygpOwotfQotCi12b2lk
IFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2spOwotICAgICAgICBpZiAobV93YWtlVXBFdmVudFJl
cXVlc3RlZCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV93YWtlVXBFdmVudFJlcXVl
c3RlZCA9IHRydWU7Ci0gICAgfQotCi0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9waXBlTG9jayk7Ci0gICAgICAgIGVjb3JlX3BpcGVfd3JpdGUobV9waXBlLmdldCgpLCB3YWt1
cEVjb3JlUGlwZU1lc3NhZ2UsIGVjb3JlUGlwZU1lc3NhZ2VTaXplKTsKLSAgICB9Ci19Ci0KLVJ1
bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqKQotICAgIDogbV90aW1lcigwKQot
ICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+
VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNl
Ojp0aW1lckZpcmVkKHZvaWQqIGRhdGEpCi17Ci0gICAgUnVuTG9vcDo6VGltZXJCYXNlKiB0aW1l
ciA9IHN0YXRpY19jYXN0PFJ1bkxvb3A6OlRpbWVyQmFzZSo+KGRhdGEpOwotCi0gICAgaWYgKCF0
aW1lci0+bV9pc1JlcGVhdGluZykKLSAgICAgICAgdGltZXItPm1fdGltZXIgPSAwOwotCi0gICAg
dGltZXItPmZpcmVkKCk7Ci0KLSAgICByZXR1cm4gdGltZXItPm1faXNSZXBlYXRpbmcgPyBFQ09S
RV9DQUxMQkFDS19SRU5FVyA6IEVDT1JFX0NBTExCQUNLX0NBTkNFTDsKLX0KLQotdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVh
dCkKLXsKLSAgICBpZiAoaXNBY3RpdmUoKSkKLSAgICAgICAgc3RvcCgpOwotCi0gICAgbV9pc1Jl
cGVhdGluZyA9IHJlcGVhdDsKLSAgICBBU1NFUlQoIW1fdGltZXIpOwotICAgIG1fdGltZXIgPSBl
Y29yZV90aW1lcl9hZGQobmV4dEZpcmVJbnRlcnZhbCwgcmVpbnRlcnByZXRfY2FzdDxFY29yZV9U
YXNrX0NiPih0aW1lckZpcmVkKSwgdGhpcyk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
OjpzdG9wKCkKLXsKLSAgICBpZiAobV90aW1lcikgewotICAgICAgICBlY29yZV90aW1lcl9kZWwo
bV90aW1lcik7Ci0gICAgICAgIG1fdGltZXIgPSAwOwotICAgIH0KLX0KLQotYm9vbCBSdW5Mb29w
OjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gKG1fdGltZXIpID8g
dHJ1ZSA6IGZhbHNlOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggYjQ1NmQ0
ZjVmZWFlYjBjZjY0ZWNmZWI3NjkwMDRiZTVlNzc3OGFhYi4uZGQ5YWYyOGE3OTVmMjE0MmVjZGY3
OWZjZWMwZjVkZGJiMTkyMjU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkdy
YXBoaWNzTGF5ZXJUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIklu
dFNpemUuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3Rv
cmUuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oIgogI2luY2x1ZGUgIlRy
YW5zZm9ybWF0aW9uTWF0cml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKaW5kZXggMDI1MDVkMGJhN2Q2Mjg5ZWU3YWY2ODY3MDIy
MmViZmE2YjQ1OTVjOC4uMDdjZDU2MzRmY2M3ZDlhNTExN2VhYWI3NTZkOWVjOGVlNjlhZWY4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzU3VyZmFjZS5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiUnVuTG9v
cC5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVy
QmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNmUzMjkyZDRlOTQ4YjI4YmRiOGMwODVjNWE1NDVhYTg2MGY2MWQyMi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNzEg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxp
dHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDxnZGsvZ2RrLmg+Ci0jaW5j
bHVkZSA8Z2xpYi5oPgotCi0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsKLSAgICAvLyBnX21haW5fY29udGV4
dF9kZWZhdWx0KCkgZG9lc24ndCBhZGQgYW4gZXh0cmEgcmVmZXJlbmNlLgotICAgIG1fcnVuTG9v
cENvbnRleHQgPSBpc01haW5UaHJlYWQoKSA/IGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKSA6IGFk
b3B0R1JlZihnX21haW5fY29udGV4dF9uZXcoKSk7Ci0gICAgQVNTRVJUKG1fcnVuTG9vcENvbnRl
eHQpOwotICAgIEdSZWZQdHI8R01haW5Mb29wPiBpbm5lcm1vc3RMb29wID0gYWRvcHRHUmVmKGdf
bWFpbl9sb29wX25ldyhtX3J1bkxvb3BDb250ZXh0LmdldCgpLCBGQUxTRSkpOwotICAgIEFTU0VS
VChpbm5lcm1vc3RMb29wKTsKLSAgICBtX3J1bkxvb3BNYWluTG9vcHMuYXBwZW5kKGlubmVybW9z
dExvb3ApOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgZm9yIChpbnQgaSA9IG1f
cnVuTG9vcE1haW5Mb29wcy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewotICAgICAgICBpZiAo
IWdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29wTWFpbkxvb3BzW2ldLmdldCgpKSkKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1h
aW5Mb29wc1tpXS5nZXQoKSk7Ci0gICAgfQotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0g
ICAgUnVuTG9vcCogbWFpblJ1bkxvb3AgPSBSdW5Mb29wOjpjdXJyZW50KCk7Ci0gICAgR01haW5M
b29wKiBpbm5lcm1vc3RMb29wID0gbWFpblJ1bkxvb3AtPmlubmVybW9zdExvb3AoKTsKLSAgICBp
ZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcoaW5uZXJtb3N0TG9vcCkpIHsKLSAgICAgICAgZ19t
YWluX2xvb3BfcnVuKGlubmVybW9zdExvb3ApOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgLy8gQ3JlYXRlIGFuZCBydW4gYSBuZXN0ZWQgbG9vcCBpZiB0aGUgaW5uZXJtb3N0IG9uZSB3
YXMgYWxyZWFkeSBydW5uaW5nLgotICAgIEdNYWluTG9vcCogbmVzdGVkTWFpbkxvb3AgPSBnX21h
aW5fbG9vcF9uZXcoMCwgRkFMU0UpOwotICAgIG1haW5SdW5Mb29wLT5wdXNoTmVzdGVkTWFpbkxv
b3AobmVzdGVkTWFpbkxvb3ApOwotICAgIGdfbWFpbl9sb29wX3J1bihuZXN0ZWRNYWluTG9vcCk7
Ci0gICAgbWFpblJ1bkxvb3AtPnBvcE5lc3RlZE1haW5Mb29wKCk7Ci19Ci0KLUdNYWluTG9vcCog
UnVuTG9vcDo6aW5uZXJtb3N0TG9vcCgpCi17Ci0gICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxv
b3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29w
cy5pc0VtcHR5KCkpOwotICAgIHJldHVybiBtX3J1bkxvb3BNYWluTG9vcHNbMF0uZ2V0KCk7Ci19
Ci0KLXZvaWQgUnVuTG9vcDo6cHVzaE5lc3RlZE1haW5Mb29wKEdNYWluTG9vcCogbmVzdGVkTG9v
cCkKLXsKLSAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRo
ZXJlLgotICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7Ci0gICAgbV9y
dW5Mb29wTWFpbkxvb3BzLmFwcGVuZChhZG9wdEdSZWYobmVzdGVkTG9vcCkpOwotfQotCi12b2lk
IFJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKCkKLXsKLSAgICAvLyBUaGUgaW5uZXJtb3N0IG1h
aW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgotICAgIEFTU0VSVCghbV9ydW5Mb29wTWFp
bkxvb3BzLmlzRW1wdHkoKSk7Ci0gICAgbV9ydW5Mb29wTWFpbkxvb3BzLnJlbW92ZUxhc3QoKTsK
LX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4g
bG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgotICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxv
b3BzLmlzRW1wdHkoKSk7Ci0gICAgR1JlZlB0cjxHTWFpbkxvb3A+IGxhc3RNYWluTG9vcCA9IG1f
cnVuTG9vcE1haW5Mb29wcy5sYXN0KCk7Ci0gICAgaWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmco
bGFzdE1haW5Mb29wLmdldCgpKSkKLSAgICAgICAgZ19tYWluX2xvb3BfcXVpdChsYXN0TWFpbkxv
b3AuZ2V0KCkpOwotfQotCi1nYm9vbGVhbiBSdW5Mb29wOjpxdWV1ZVdvcmsoUnVuTG9vcCogcnVu
TG9vcCkKLXsKLSAgICBydW5Mb29wLT5wZXJmb3JtV29yaygpOwotICAgIHJldHVybiBGQUxTRTsK
LX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewotICAgIEdSZWZQdHI8R1NvdXJjZT4gc291
cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3KCkpOwotICAgIGdfc291cmNlX3NldF9w
cmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfREVGQVVMVCk7Ci0gICAgZ19zb3VyY2Vf
c2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4o
JlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOwotICAgIGdfc291cmNlX2F0dGFjaChzb3Vy
Y2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOwotCi0gICAgZ19tYWluX2NvbnRleHRf
d2FrZXVwKG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOwotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6
OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0g
ICAgLCBtX3RpbWVyU291cmNlKDApCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVy
QmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6Y2xl
YXJUaW1lclNvdXJjZSgpCi17Ci0gICAgbV90aW1lclNvdXJjZSA9IDA7Ci19Ci0KLWdib29sZWFu
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFz
ZSogdGltZXIpCi17Ci0gICAgR1NvdXJjZSogY3VycmVudFRpbWVyU291cmNlID0gdGltZXItPm1f
dGltZXJTb3VyY2UuZ2V0KCk7Ci0gICAgYm9vbCBpc1JlcGVhdGluZyA9IHRpbWVyLT5pc1JlcGVh
dGluZygpOwotICAgIC8vIFRoaXMgY2FuIGNoYW5nZSB0aGUgdGltZXJTb3VyY2UgYnkgc3RhcnRp
bmcgYSBuZXcgdGltZXIgd2l0aGluIHRoZSBjYWxsYmFjay4KLSAgICBpZiAoIWlzUmVwZWF0aW5n
ICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKSkKLSAg
ICAgICAgdGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsKLQotICAgIHRpbWVyLT5maXJlZCgpOwot
ICAgIHJldHVybiBpc1JlcGVhdGluZzsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0
YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAgIGlmIChtX3RpbWVy
U291cmNlKQotICAgICAgICBzdG9wKCk7Ci0KLSAgICBtX3RpbWVyU291cmNlID0gYWRvcHRHUmVm
KGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJlSW50ZXJ2YWwgKiAx
MDAwKSkpOwotICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0gICAgZ19zb3VyY2Vfc2V0X2Nh
bGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+
KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayksIHRoaXMsIDApOwotICAg
IGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1bkxvb3AtPm1fcnVuTG9v
cENvbnRleHQuZ2V0KCkpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17
Ci0gICAgaWYgKCFtX3RpbWVyU291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBnX3NvdXJj
ZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOwotICAgIGNsZWFyVGltZXJTb3VyY2UoKTsK
LX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV90aW1lclNvdXJjZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjZjY5YzA2NDljNzNkMjU2OGExMWM3N2U4Mzg2NGM5MjI3NDgwYjFhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE3OSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3Au
aCIKLQotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1ZGUgPHd0Zi9XaW5kb3dz
RXh0cmFzLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotc3RhdGljIGNvbnN0IFVJTlQgUGVyZm9ybVdvcmtNZXNzYWdlID0gV01fVVNFUiArIDE7Ci1z
dGF0aWMgY29uc3QgTFBXU1RSIGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSA9IEwiUnVu
TG9vcE1lc3NhZ2VXaW5kb3ciOwotCi1MUkVTVUxUIENBTExCQUNLIFJ1bkxvb3A6OlJ1bkxvb3BX
bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtKQotewotICAgIGlmIChSdW5Mb29wKiBydW5Mb29wID0gc3RhdGljX2Nhc3Q8UnVuTG9vcCo+
KGdldFdpbmRvd1BvaW50ZXIoaFduZCwgMCkpKQotICAgICAgICByZXR1cm4gcnVuTG9vcC0+d25k
UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci0KLSAgICBpZiAobWVzc2FnZSA9
PSBXTV9DUkVBVEUpIHsKLSAgICAgICAgTFBDUkVBVEVTVFJVQ1QgY3JlYXRlU3RydWN0ID0gcmVp
bnRlcnByZXRfY2FzdDxMUENSRUFURVNUUlVDVD4obFBhcmFtKTsKLQotICAgICAgICAvLyBBc3Nv
Y2lhdGUgdGhlIFJ1bkxvb3Agd2l0aCB0aGUgd2luZG93LgotICAgICAgICBzZXRXaW5kb3dQb2lu
dGVyKGhXbmQsIDAsIGNyZWF0ZVN0cnVjdC0+bHBDcmVhdGVQYXJhbXMpOwotICAgICAgICByZXR1
cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2Us
IHdQYXJhbSwgbFBhcmFtKTsKLX0KLQotTFJFU1VMVCBSdW5Mb29wOjp3bmRQcm9jKEhXTkQgaFdu
ZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQotewotICAgIHN3
aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgUGVyZm9ybVdvcmtNZXNzYWdlOgotICAgICAgICBw
ZXJmb3JtV29yaygpOwotICAgICAgICByZXR1cm4gMDsKLSAgICBjYXNlIFdNX1RJTUVSOgotICAg
ICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQodGhpcywgd1BhcmFtKTsKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBt
ZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAg
ICBNU0cgbWVzc2FnZTsKLSAgICB3aGlsZSAoQk9PTCByZXN1bHQgPSA6OkdldE1lc3NhZ2UoJm1l
c3NhZ2UsIDAsIDAsIDApKSB7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gLTEpCi0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgOjpUcmFuc2xhdGVNZXNzYWdlKCZtZXNzYWdlKTsKLSAgICAgICAg
OjpEaXNwYXRjaE1lc3NhZ2UoJm1lc3NhZ2UpOwotICAgIH0KLX0KLQotdm9pZCBSdW5Mb29wOjpz
dG9wKCkKLXsKLSAgICA6OlBvc3RRdWl0TWVzc2FnZSgwKTsKLX0KLQotYm9vbCBSdW5Mb29wOjpy
ZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKQotewotICAgIC8vIEZJWE1FOiBUaGlz
IHJlYWxseSBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlLgotCi0gICAgV05EQ0xBU1Mgd2lu
ZG93Q2xhc3MgPSB7IDAgfTsKLSAgICB3aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBSdW5M
b29wOjpSdW5Mb29wV25kUHJvYzsKLSAgICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAgPSBz
aXplb2YoUnVuTG9vcCopOwotICAgIHdpbmRvd0NsYXNzLmxwc3pDbGFzc05hbWUgICA9IGtSdW5M
b29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZTsKLQotICAgIHJldHVybiAhITo6UmVnaXN0ZXJDbGFz
cygmd2luZG93Q2xhc3MpOwotfQotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsKLSAgICByZWdpc3Rl
clJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKLQotICAgIG1fcnVuTG9vcE1lc3NhZ2VXaW5k
b3cgPSA6OkNyZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUsIDAsIDAs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENXX1VTRURFRkFV
TFQsIDAsIENXX1VTRURFRkFVTFQsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgMCwgdGhpcyk7Ci0gICAgQVNTRVJUKDo6SXNX
aW5kb3cobV9ydW5Mb29wTWVzc2FnZVdpbmRvdykpOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgp
Ci17Ci0gICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBpdGVtIHF1ZXVlIGhlcmUuCi19
Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICAvLyBGSVhNRTogTm8gbmVlZCB0byB3
YWtlIHVwIHRoZSBydW4gbG9vcCBpZiB3ZSd2ZSBhbHJlYWR5IGNhbGxlZCBkaXNwYXRjaAotICAg
IC8vIGJlZm9yZSB0aGUgcnVuIGxvb3AgaGFzIGhhZCB0aGUgdGltZSB0byByZXNwb25kLgotICAg
IDo6UG9zdE1lc3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgUGVyZm9ybVdvcmtNZXNzYWdl
LCByZWludGVycHJldF9jYXN0PFdQQVJBTT4odGhpcyksIDApOwotfQotCi0vLyBSdW5Mb29wOjpU
aW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5M
b29wLCB1aW50NjRfdCBJRCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKLSAgICBpZiAoaXQgPT0gcnVuTG9vcC0+bV9hY3Rp
dmVUaW1lcnMuZW5kKCkpIHsKLSAgICAgICAgLy8gVGhlIHRpbWVyIG11c3QgaGF2ZSBiZWVuIHN0
b3BwZWQgYWZ0ZXIgdGhlIFdNX1RJTUVSIG1lc3NhZ2Ugd2FzIHBvc3RlZCB0byB0aGUgbWVzc2Fn
ZSBxdWV1ZS4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFRpbWVyQmFzZSogdGltZXIg
PSBpdC0+dmFsdWU7Ci0KLSAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7Ci0gICAgICAg
IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgICAgIDo6S2lsbFRpbWVy
KHJ1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIElEKTsKLSAgICB9Ci0KLSAgICB0aW1l
ci0+ZmlyZWQoKTsKLX0KLQotc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlVGltZXJJRCgpCi17Ci0g
ICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVRpbWVySUQgPSAxOwotICAgIHJldHVybiB1bmlxdWVU
aW1lcklEKys7Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1
bkxvb3ApCi0gICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKLSAgICAsIG1fSUQoZ2VuZXJhdGVUaW1l
cklEKCkpCi0gICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQotewotfQotCi1SdW5Mb29wOjpUaW1l
ckJhc2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsK
LSAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OwotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1l
cnMuc2V0KG1fSUQsIHRoaXMpOwotICAgIDo6U2V0VGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BN
ZXNzYWdlV2luZG93LCBtX0lELCBuZXh0RmlyZUludGVydmFsICogMTAwMCwgMCk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3Ig
aXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7Ci0gICAgaWYgKGl0ID09
IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKLSAgICA6OktpbGxUaW1lciht
X3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQpOwotfQotCi1ib29sIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3J1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLmNvbnRhaW5zKG1fSUQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRh
cHRlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1t
CmluZGV4IDM4ZjEzNDdhMzRiYTRjMjA0MTQ2MWZlYzRmZTQ0YThlZGYwYTI2MjIuLmUxMTI4NzVj
MWQ3YTIyOWQwN2EwNGFmYzBjYzkwNmJlYWFhNjcxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCkBAIC03Myw5ICs3Myw5IEBACiAjaW1w
b3J0IDxhc3NlcnQuaD4KIAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgot
I2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVU
aHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVu
TG9vcC5oPgogCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJOU09iamVj
dEV4dHJhcy5oIgpAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldp
bmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiB7
CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFp
blRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0
aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCmluZGV4IDY2
MTU1ZGJiOGE5ZmM2NzczYzFmZGI3ZGU5NDgyZDdiZGRhODAxMDIuLjRiZWZlNjY5NjdmMGE1NDQz
NzNmNzU1MzFiYzQzYzAxMzdhZGVlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hp
c3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3Rv
cnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCkBAIC00Miw3ICs0Miw2IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0hpc3RvcnlJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGFnZUNhY2hlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KQEAgLTUwLDYgKzQ5LDcgQEAKICNp
bXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDUs
NyArMTA1LDcgQEAgV2ViQmFja0ZvcndhcmRMaXN0ICpraXQoQmFja0ZvcndhcmRMaXN0KiBiYWNr
Rm9yd2FyZExpc3QpCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RG
Ojppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNl
bGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3Rv
cnlJdGVtLm1tIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQpp
bmRleCA1NzlmZjZjYzUxYTE4NTkzYWYwODM4NTFlNDQ4YjY2NjdlMWZiZDYzLi41NTBlNmUxYTIz
NWYxZDU4MWYxMzYwMzVhODQ0OTM4ODIyOTFkYmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hp
c3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KQEAgLTQ3LDEyICs0NywxMiBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9JbWFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9VUkwuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGFnZUNhY2hlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNv
cmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4K
ICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL0Fz
c2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVu
TG9vcC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBXS05vdGlmeUhpc3RvcnlJdGVt
Q2hhbmdlZChIaXN0b3J5SXRlbSopCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7
CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAg
ICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29w
Ojppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWlu
VGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
YkNhY2hlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQppbmRleCAwY2Jl
ZDAxMjJmODk2MTJkN2MwNDZjN2Q3OTcxMGYxZmI3ZDk1ODgwLi43NjUxODc2NTcyZTE3NzNlYzQw
ZDg4Njk3NTM1NTg2MGU1YzgwNmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNj
L1dlYkNhY2hlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2FjaGUubW0KQEAg
LTMzLDkgKzMzLDkgQEAKICNpbXBvcnQgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2Uu
aD4KICNpbXBvcnQgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0
Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiBAaW1wbGVtZW50YXRp
b24gV2ViQ2FjaGUKIApAQCAtNDMsNyArNDMsNyBAQAogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRo
cmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhy
ZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7Cisg
ICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgSW5pdFdlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UoKTsgICAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlz
Yy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxl
bWVudERpY3Rpb25hcnkubW0KaW5kZXggMTdmMjIwMTkwNzBjNDAxMTY1NTdiZTBjYTYzZjdjNGQ4
ZDJkZWZmNi4uOTA5NGEzOGIyNmQ5YTgyZjY1NzY1NjE4MTVmODE0NDEyZjk3ZTBlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkVsZW1lbnREaWN0aW9uYXJ5Lm1tCkBAIC0zOSwx
MiArMzksMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
SGl0VGVzdFJlc3VsdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbWFnZS5oPgotI2ltcG9ydCA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAj
aW1wb3J0IDxXZWJLaXQvRE9NQ29yZS5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTUV4dGVuc2lvbnMu
aD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRpYyB2b2lkIGNhY2hlVmFsdWVGb3JL
ZXkoY29uc3Qgdm9pZCAqa2V5LCBjb25zdCB2b2lkICp2YWx1ZSwgdm9pZCAqc2VsZikKIHsKICAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwog
ICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tIGIvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KaW5kZXggN2Y4NzNhYjFlZGM2Y2UyOTY4
YjM3NzJmZDVlOTBiNDFjNGUwOGI4NS4uMWUzOTkxYjBjOWVlNzc0M2RlMTU5ZjU1OTAyODc0NjJl
OTMyMzZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJh
c2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KQEAg
LTM5LDExICszOSwxMSBAQAogI2ltcG9ydCA8V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50U2l6ZS5oPgotI2ltcG9y
dCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFs
aXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTkwLDcgKzkwLDcg
QEAgc3RhdGljIFdlYkljb25EYXRhYmFzZUNsaWVudCogZGVmYXVsdENsaWVudCgpCiB7CiAgICAg
SlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVh
ZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXpl
TWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIH0K
IAogKyAoV2ViSWNvbkRhdGFiYXNlICopc2hhcmVkSWNvbkRhdGFiYXNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcubW0KaW5kZXggN2UwNWIzNDhhMWNkNGYwMGQ1Nzc1NjIxZDk4MDBmZjEzYjAx
YzY5My4uMTgxYWI3MDU5MTMzY2Q1M2Y2MjIxMmJiZTFjOTVkYjY3NGE1ZWY0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3Rl
ZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtNDYsMTIgKzQ2LDEyIEBACiAjaW1wb3J0IDxXZWJD
b3JlL1JlbmRlckVtYmVkZGVkT2JqZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJy
b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ydW50aW1lX3Jvb3QuaD4KICNpbXBv
cnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlv
bnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRp
bWVFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTczLDcgKzczLDcgQEAgZXh0ZXJu
ICJDIiB7CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0
aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5M
b29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwog
ICAgIFdLU2VuZFVzZXJDaGFuZ2VOb3RpZmljYXRpb25zKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXgg
YWJjYzgyYjI0YmEyZWIyYTM3ZTIxNmNmZmUxNjEzMTA3OTI0MDY4ZS4uMTQ3NzViNTJjYTg4YWU2
ZTFiMWEzYWZhMzYzMDAxNTY5ZTE2MjZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtNTUsMTMgKzU1LDEz
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Byb3RlY3Rpb25TcGFjZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9SZW5kZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlcldpZGdldC5oPgotI2ltcG9y
dCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQv
RE9NUHJpdmF0ZS5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAj
aW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNp
bXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNk
ZWZpbmUgTG9naW5XaW5kb3dEaWRTd2l0Y2hGcm9tVXNlck5vdGlmaWNhdGlvbiAgICBAIldlYkxv
Z2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24iCkBAIC03NSw3ICs3NSw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGlu
ZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7
Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVu
TG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9u
TWFpblRocmVhZChzZWxmKTsKICAgICBXS1NlbmRVc2VyQ2hhbmdlTm90aWZpY2F0aW9ucygpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFj
a2FnZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2Uu
bW0KaW5kZXggNWIwN2I5ODA1OTJkZTIzYzBhZjI3YzkwYmQwZDk3NDRkMmUyMjk3NC4uMjQwYzQ5
OGNkMGFlOWQxYTkzZTJkNTczZTNjZjNmOGYwMDBkZDhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCkBAIC0yOSw3ICsyOSw2IEBA
CiAjaW1wb3J0IDxXZWJLaXQvV2ViQmFzZVBsdWdpblBhY2thZ2UuaD4KIAogI2ltcG9ydCA8YWxn
b3JpdGhtPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0TlNTdHJpbmdFeHRyYXMu
aD4KICNpbXBvcnQgPFdlYktpdC9XZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UuaD4KQEAgLTM4LDYg
KzM3LDcgQEAKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRo
cmVhZC5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYv
UnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0
cmluZy5oPgogCkBAIC02OCw3ICs2OCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogewog
ICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5U
aHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRl
eCA3ZjRjODhhNWJlZjAyYzllMTEyMDIwYzU3NDI4Yjk3MDViZjE2MGY4Li42ZDBmM2RkOGFkOTEz
NmJkODJiZTNmMzgyNWU1NWI0MzM4ZjhkOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtNjcsNyArNjcsNiBAQAogI2lt
cG9ydCA8V2ViQ29yZS9QYWdlLmg+IAogI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5NYWluVGhyZWFk
U2NoZWR1bGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Byb3h5U2VydmVyLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0
TGlua2luZy5oPiAKQEAgLTgyLDYgKzgxLDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSlNMb2NrLmg+
CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4K
KyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
ICNkZWZpbmUgTG9naW5XaW5kb3dEaWRTd2l0Y2hGcm9tVXNlck5vdGlmaWNhdGlvbiAgICBAIldl
YkxvZ2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24iCkBAIC0xOTQsNyArMTk0
LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygp
OwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0g
ICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFp
blRocmVhZChzZWxmKTsKICAgICBXS1NlbmRVc2VyQ2hhbmdlTm90aWZpY2F0aW9ucygpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lm1tCmluZGV4IGUyY2VhMGMwYzY4ZmFhMzlmNTU3NGUzYzE2ZTY1ODRlZDIyNmI2YWQuLmRjMjY4
ZTI2NjFjZjMwNzEyODA5ZDUxYTVhMWI1MGEzODVkMjA3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTYxLDcgKzYx
LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgot
I2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHls
ZVByb3BlcnR5U2V0Lmg+CkBAIC03MSw2ICs3MCw3IEBACiAjaW1wb3J0IDxydW50aW1lL0luaXRp
YWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3
dGYvUGFzc1JlZlB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTEwNyw3ICsx
MDcsNyBAQCBzdGF0aWMgV2ViVmlld0luc2VydEFjdGlvbiBraXQoRWRpdG9ySW5zZXJ0QWN0aW9u
IGNvcmVBY3Rpb24pCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RG
Ojppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNl
bGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IGRkNTI2MzU5ZDNhMjFkODVmN2ZhNWIxYTVk
MDdlNjhmMGM5MGQ1ZWEuLjZlNzhhMWNhYTk1NTU1ZGI3NWY0NWY2MTRjZTUyMzVmOTU2Nzk4Y2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xMTUsNyArMTE1LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUv
UmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMu
aD4KQEAgLTEyNyw2ICsxMjYsNyBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQpAQCAtMTk5OSw3ICsx
OTk5LDcgQEAgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQKIHsKICAgICBKU0M6OmluaXRpYWxpemVU
aHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRo
cmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwor
ICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmlu
YWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
QXJjaGl2ZS5tbQppbmRleCA5ODkwZjhkZmE4YzcyMzhjOWE3YjQ3OGQzZWQyN2IwMmJlODNkM2Y2
Li43MjMzMTZmOWNhNzM4NGQzNmJmZTZmOTNkMWM4MDRkMTllMjkwYWM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCkBAIC0zNiwxMCArMzYsMTAgQEAKICNpbXBvcnQg
PEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUv
QXJjaGl2ZVJlc291cmNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVj
ay5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdl
YlN1YmZyYW1lQXJjaGl2ZXNLZXkgPSBAIldlYlN1YmZyYW1lQXJjaGl2ZXMiOwogewogICAgIEpT
Qzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRU
b1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1h
aW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAg
V2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCmluZGV4IDExNGRlOWZiMDg0ZDUwNWUxMTlh
NzliNzVhMTgwNzNmZTdhZDEwYmIuLmNlZTYwY2UyM2JhNWI0ZGY3ZDE3ODY5NGM2Yjk0OTA4ODg3
OWFkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJj
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KQEAg
LTU0LDcgKzU0LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJj
ZVJlcXVlc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVVSTFJlc3BvbnNlLmg+CkBAIC02NSw2ICs2NCw3IEBA
CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE0NSw3ICsxNDUsNyBAQCBzdGF0aWMgaW5saW5lIHZv
aWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNz
IG9iakNDbAogICAgIGlmIChzZWxmID09IFtXZWJEYXRhU291cmNlIGNsYXNzXSkgewogICAgICAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICAgICAgV1RGOjppbml0aWFsaXplTWFp
blRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICAgICAgV2ViQ29yZTo6UnVuTG9vcDo6
aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWlu
UnVuTG9vcCgpOwogICAgICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4
IGViNWIxMTgxZWNiZDgyYjRlZWMyMGJkM2M0ZDU4ZDMxNGVmNjBmODUuLjg5Mzg4NWZmZTgzYjcw
MzdjMzJlZTVmMzhmZDAzMmEyNDAyMDM1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQpAQCAtMTExLDcgKzExMSw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRl
clZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1Jlc291cmNlQnVmZmVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaW1wbGVGb250RGF0YS5oPgpAQCAt
MTMxLDYgKzEzMCw3IEBACiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4K
ICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVFeHRy
YXMuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KQEAgLTU2NCw3ICs1
NjQsNyBAQCBzdGF0aWMgTlNDZWxsU3RhdGVWYWx1ZSBraXQoVHJpU3RhdGUgc3RhdGUpCiB7CiAg
ICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRo
cmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsK
ICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIAogICAgIGlm
ICghb2xkU2V0Q3Vyc29yRm9yTW91c2VMb2NhdGlvbklNUCkgewpAQCAtMjI3Myw3ICsyMjczLDcg
QEAgc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAqZXZl
bnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblR5cGVzOltbc2VsZiBjbGFz
c10gX2luc2VydGFibGVQYXN0ZWJvYXJkVHlwZXNdXTsKICAgICBKU0M6OmluaXRpYWxpemVUaHJl
YWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVh
ZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAg
IFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxp
emVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCmluZGV4IDVjMGJlZjVjYTU1OWRkNWYxY2YzOWFiMGUzN2U5MDYwM2Vh
NmE4N2QuLmFiNWNkYzgyY2UwZWM5NmVhZThiZmQyYjE3NTRiNDMzODYyYTNlMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNDMsMTAgKzQzLDEw
IEBACiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNv
dXJjZUhhbmRsZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxydW50
aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMzA2LDcgKzMwNiw3IEBAIHB1YmxpYzoKIHsKICAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwog
CiAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9i
amVjdHNBbmRLZXlzOgogICAgICAgICBAIlRpbWVzIiwgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFN0YW5kYXJkRm9udFByZWZlcmVuY2VLZXksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJSZXNvdXJjZS5tbQppbmRleCBhNGVjMzUzMTVhZmQ0YmY0NWRjMmM1ZGU2NDcyMGEzMTYwN2M5
MGNkLi5hYzJlMGE2NWVlMmU4ZTEwY2M3NDA5OTI1YTM4NWJjZTEzYWUxNjA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KQEAgLTM4LDEzICszOCwxMyBAQAogI2lt
cG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KLSNpbXBvcnQgPFdlYkNv
cmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEVuY29kaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Ro
cmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1dlYkNvcmVVUkxSZXNwb25zZS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdlYlJlc291cmNl
UmVzcG9uc2VLZXkgPSAgICAgICAgICBAIldlYlJlc291cmNlUmVzcG9uc2UiCiB7CiAgICAgSlND
Ojppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRv
UHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBX
ZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1tCmluZGV4IDliMWJkOGZlYjU1M2ZkOGQx
MTBhZGUyY2Y2MzY1ZGE0MjQxMDU3NmMuLmU4OTE0ZDk3MmQ2OTAzMjQyOWRkNDUxZWM0NDgyNWU1
NzM5NjRkZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dEl0
ZXJhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dEl0ZXJhdG9y
Lm1tCkBAIC0yOCwxMiArMjgsMTIgQEAKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2lt
cG9ydCAiRE9NUmFuZ2VJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5oIgot
I2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2Jq
Q0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1w
b3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQg
PHd0Zi9WZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwpAQCAtNTAsNyArNTAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHsKICAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwog
ICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAyNzIxMjRjNjhmYjE3ODE0OWE3NGVlNTU4NTgw
MThjZDhlZTZiYTUwLi40NWU2NDcwYzcwYTY1ZjA5YjIxYWE4MmMzYTNjNGNjYmJmMzgyMjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNjUsNyArMTY1LDYgQEAKICNp
bXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgot
I2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CkBAIC0yMDAsNiArMTk5LDcg
QEAKICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JlZkNv
dW50ZWRMZWFrQ291bnRlci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgorI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKQEAgLTMyMTIsNyArMzIxMiw3IEBAIHN0YXRpYyBWZWN0b3I8U3Ry
aW5nPiB0b1N0cmluZ1ZlY3RvcihOU0FycmF5KiBwYXR0ZXJucykKICAgICBJbml0V2ViQ29yZVN5
c3RlbUludGVyZmFjZSgpOwogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdU
Rjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CiAKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9hcHBsaWNhdGlvbldp
bGxUZXJtaW5hdGUpIG5hbWU6TlNBcHBsaWNhdGlvbldpbGxUZXJtaW5hdGVOb3RpZmljYXRpb24g
b2JqZWN0Ok5TQXBwXTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9jYWNoZU1vZGVsQ2hhbmdlZE5v
dGlmaWNhdGlvbjopIG5hbWU6V2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFs
Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
d0RhdGEubW0KaW5kZXggNjJkZGEwYjQ4YWU1N2VmNDZmZDE0ZGUwZjdlN2EyMDFhNGY4OGY2NS4u
YzA1NzE3MzkyYTdmZDEyNTA4OGI1YmM3MzgxOGU5NGFlYWUwNDA4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCkBAIC0zNCwxMCArMzQsMTAgQEAKICNpbXBvcnQg
PFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1hdXRvLmg+CiAj
aW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWlu
VGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiBCT09MIGFwcGxpY2F0aW9uSXNU
ZXJtaW5hdGluZyA9IE5POwogaW50IHBsdWdpbkRhdGFiYXNlQ2xpZW50Q291bnQgPSAwOwpAQCAt
NzQsNyArNzQsNyBAQCBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6V2ViVmlld0xheWVyRmx1
c2hTY2hlZHVsZXIoTGF5ZXJGbHVzaENvbnRyb2xsZXIqIGZsdQogewogICAgIEpTQzo6aW5pdGlh
bGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NN
YWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9i
akNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAppbmRleCAyMjk3Yjk0ZWE3NmNh
MTY2ZDgxODU0NmRiMTA1MWM3M2IyODgxZDNjLi5hNWMwODQyMTBkZDliZWYzMDYxZDM1NTQzNmQw
N2RlZWI3ZWQ3OGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
RGF0YWJhc2VQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
RGF0YWJhc2VQcm9jZXNzLmNwcApAQCAtMzEsOCArMzEsNiBAQAogCiAjaWYgRU5BQkxFKERBVEFC
QVNFX1BST0NFU1MpCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogRGF0YWJhc2VQcm9jZXNzJiBEYXRhYmFzZVByb2Nlc3M6OnNoYXJlZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFz
ZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDFlOTQxZmJhY2Y5MGM5NGYzN2FkNzVl
ZTQyYTYxZjZhZjNjM2UyYzguLmE2ZmU3M2FiMzIyYjhmNTRhMTNmNDEwNmYzZTA1N2U4YWE2Y2Yz
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0yOSw3ICsyOSw3IEBA
CiAjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kLmgiCiAjaW5jbHVk
ZSAiRGF0YWJhc2VQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUo
REFUQUJBU0VfUFJPQ0VTUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDAz
YWYxYzRmZjIxOGY5ZGFmZmU2YjJlMjVmZjU5YjE0M2FiMGQyMTYuLmUwMDdmZDYzNzVjNjQyOTM3
YTc4ODRjZmQ1YjlmMWYzMzUxNjNkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
QEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgor
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
aW5kZXggNDQ0OWUxNzM1YzkwZDQxYjcxMjdiMGI5Njc5YmVjMzk5Njg1OTJmMS4uYTNhNjBiZGU5
ZWE5ZWNjNzRhZWFkMWQwNTQwZjdjMjljYjMyZWNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDQsNyArNDQsNyBAQAogI2lu
Y2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
UnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCiAjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGQ2ZjBlMGRkMGFmYmM3
ZmZiMmU2MDE4N2NhYzRlMDZlODFmYTg3YjEuLjFhODJiMGM1MTI1YTk3ZmIxYThiNDk4YjhkN2E1
YTYwZDVhODBmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaApAQCAtMzcsNyArMzcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBDZXJ0aWZpY2F0ZUluZm87Ci1jbGFzcyBSdW5Mb29wOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmgKaW5kZXggOGNhMjI3YTIxZmY3OTBlOWYwNDNhOTc0ZDJjNzI1MmViMWQyN2Qz
NC4uMzI3YWUzNGNjN2I0ZDJhNTRiYTFlMWE1NzNiNGJhNTRiMGJiZjE4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgK
QEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlQ2xpZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
IAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGQ2FjaGVkVVJMUmVzcG9uc2UqIENGQ2FjaGVkVVJM
UmVzcG9uc2VSZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9EaXNrQ2FjaGVNb25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9t
YWMvRGlza0NhY2hlTW9uaXRvci5oCmluZGV4IGMxMzc5OTVlNWI4ZTUwZmU5ZDYwZTRhZDFmZDQ3
ODAxYmVkNjEzYWQuLjQ5ZDBjMGY2ZTYwYzM3ZjEwNTA2N2NmOGZlNGI0NjI1MmUwOWMxZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25p
dG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1v
bml0b3IuaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9S
dW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgX0NGQ2FjaGVkVVJMUmVzcG9uc2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NN
YWluVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQ
cm9jZXNzTWFpblVuaXguY3BwCmluZGV4IGQwODBiNzg0MGEzMjYzYjE0YzkxOGNiYjdiMWZjOTJl
NTNjNzVjZWYuLjBiODNhNGE0OTcyYzRmYTI0N2U5M2JhNmI0MzBhNmE1M2Y5MDExMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NN
YWluVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3
b3JrUHJvY2Vzc01haW5Vbml4LmNwcApAQCAtMzIsMTIgKzMyLDEyIEBACiAjaW5jbHVkZSAiUHJv
eHlSZXNvbHZlclNvdXAuaCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlICJXZWJLaXQy
SW5pdGlhbGl6ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdl
YktpdDIvTmV0d29ya1Byb2Nlc3MuaD4KICNpbmNsdWRlIDxlcnJvci5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CiAKICNpZiBQTEFURk9STShFRkwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAppbmRleCBlMjkxNDEwYjUw
ZGUyYTA0ZmZiMjUwOTg2NGIwZWIxNTZiYWY0NmFkLi41MmYyYmYyOGZhMGJiMTM4NGI0YzBiOTFi
NDJhNjQwYzhhMjA5N2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
Q29ubmVjdGlvbi5jcHAKQEAgLTI2LDE0ICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgog
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Cisj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KIAotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAogY2xhc3MgQ29ubmVjdGlvbjo6
U3luY01lc3NhZ2VTdGF0ZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb25uZWN0aW9u
OjpTeW5jTWVzc2FnZVN0YXRlPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
Q29ubmVjdGlvbi5oCmluZGV4IGJhODAwNDEwZTVkMTFmODU5MjM3MmYzYjAwMTFjN2RiODUwOWI3
MDQuLmVhNjNhM2ZmYTJlY2ZlNmI4M2EyNjIxMmExYmExYmEzYzA0ODM4NzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCkBAIC01MSw3ICs1MSw3IEBA
CiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIgogI2VuZGlmCiAKLW5hbWVz
cGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXVEYgewogY2xhc3MgUnVuTG9vcDsKIH0KIApAQCAt
MTI3LDggKzEyNyw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpZGVudGlmaWVySXNOdWxs
KElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gIWlkZW50aWZpZXI7IH0KICNlbmRpZgog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlU2VydmVyQ29ubmVjdGlv
bihJZGVudGlmaWVyLCBDbGllbnQqLCBXZWJDb3JlOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVDbGllbnRDb25uZWN0aW9u
KElkZW50aWZpZXIsIENsaWVudCosIFdlYkNvcmU6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZVNlcnZlckNvbm5lY3Rpb24o
SWRlbnRpZmllciwgQ2xpZW50KiwgV1RGOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVDbGllbnRDb25uZWN0aW9uKElkZW50
aWZpZXIsIENsaWVudCosIFdURjo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CiAgICAgfkNvbm5l
Y3Rpb24oKTsKIAogICAgIENsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7
IH0KQEAgLTE3Nyw3ICsxNzcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpblNlbmRTeW5jKCkgY29u
c3QgeyByZXR1cm4gbV9pblNlbmRTeW5jQ291bnQ7IH0KIAogcHJpdmF0ZToKLSAgICBDb25uZWN0
aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENsaWVudCosIFdlYkNvcmU6OlJ1bkxvb3Aq
IGNsaWVudFJ1bkxvb3ApOworICAgIENvbm5lY3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1NlcnZl
ciwgQ2xpZW50KiwgV1RGOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKICAgICB2b2lkIHBsYXRm
b3JtSW5pdGlhbGl6ZShJZGVudGlmaWVyKTsKICAgICB2b2lkIHBsYXRmb3JtSW52YWxpZGF0ZSgp
OwogICAgIApAQCAtMjIzLDcgKzIyMyw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faXNDb25u
ZWN0ZWQ7CiAgICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV9jb25uZWN0aW9uUXVldWU7Ci0gICAgV2Vi
Q29yZTo6UnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOworICAgIFdURjo6UnVuTG9vcCogbV9jbGll
bnRSdW5Mb29wOwogCiAgICAgSGFzaE1hcDxTdHJpbmdSZWZlcmVuY2UsIHN0ZDo6cGFpcjxSZWZQ
dHI8V29ya1F1ZXVlPiwgUmVmUHRyPFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcj4+PiBtX3dvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKaW5kZXggZmY1Njc0OWEwNzE5OWYyNjBi
MDQ3ZmM0YmI1ZjljNWI4ODAwYWZhNC4uZGQ2NzhjODVhMWU5YzMzYjkzNWJlODg1NWE0MTFiOTAz
Zjg2ZWZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMv
Q29ubmVjdGlvbk1hYy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9t
YWMvQ29ubmVjdGlvbk1hYy5jcHAKQEAgLTMwLDE2ICszMCwxNCBAQAogI2luY2x1ZGUgIkltcG9y
dGFuY2VBc3NlcnRpb24uaCIKICNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2luY2x1ZGUgIk1hY2hV
dGlsaXRpZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxtYWNo
L21hY2hfZXJyb3IuaD4KICNpbmNsdWRlIDxtYWNoL3ZtX21hcC5oPgorI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAKICNpZiBIQVZFKFhQQykKICNpbmNsdWRlIDx4cGMveHBjLmg+CiAjZW5kaWYK
IAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAogc3Rh
dGljIGNvbnN0IHNpemVfdCBpbmxpbmVNZXNzYWdlTWF4U2l6ZSA9IDQwOTY7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nl
c3MvUGx1Z2luUHJvY2Vzc01haW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW0KaW5kZXggYTg3
MWYxMjFhOTczNDlkN2ZmODU4OGRkYmNhNDQ3N2Q1MTZkMmQ0Yy4uZWFiYWJkZDkzOWMxNmQ0MzI0
OGJlOTcyYzRjM2E2MzhkYmM1OTAwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQpAQCAtMzIsNyArMzIsNyBAQAogI2ltcG9ydCAi
TmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKICNpbXBv
cnQgIldLQmFzZS5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYv
UnVuTG9vcC5oPgogCiAjaWYgVVNFKEFQUEtJVCkKIEBpbnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAo
V2ViTlNBcHBsaWNhdGlvbkRldGFpbHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9p
bnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1Nl
cnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggMTIxZDk0OTkwNjg0NDQyZDYw
OTZmNWQ4OWMxNGU3Y2ZhNTc3OGVkNi4uMGZjZTQ3YzAwZGI1Y2VhNmM0NjI2N2FiNzJlYjAxY2Y2
Nzk2OGRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5T
ZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiUGx1Z2luUHJv
Y2Vzcy5oIgogI2ltcG9ydCAiV0tCYXNlLmgiCiAjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2lu
dC5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKIGV4dGVybiAiQyIgV0tfRVhQT1JUIHZvaWQgUGx1Z2luU2Vydmlj
ZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGlu
aXRpYWxpemVyTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAppbmRleCBjZTRlZjE2MGI2NTA1ZmFkODM2YjdjNzlj
MDE3NTc0OWQ0MWM0ZjkzLi5lODdjN2E3YTRkZTBmMjVmOTY2MTc3Y2M0MTI3ZDE0YzBlZDFlZjUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xs
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJv
bGxlclByb3h5LmgKQEAgLTM0LDkgKzM0LDkgQEAKICNpbmNsdWRlICJQbHVnaW5Db250cm9sbGVy
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIENv
cmVJUEMgewogICAgIGNsYXNzIERhdGFSZWZlcmVuY2U7CkBAIC0xODMsMTQgKzE4MywxNCBAQCBw
cml2YXRlOgogICAgIFdlYkNvcmU6OkludFJlY3QgbV9kaXJ0eVJlY3Q7CiAKICAgICAvLyBUaGUg
cGFpbnQgdGltZXIsIHVzZWQgZm9yIGNvYWxlc2NpbmcgcGFpbnRpbmcuCi0gICAgV2ViQ29yZTo6
UnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BhaW50VGltZXI7CisgICAg
UnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BhaW50VGltZXI7CiAgICAg
CiAgICAgLy8gQSBjb3VudGVyIHVzZWQgdG8gcHJldmVudCB0aGUgcGx1Zy1pbiBmcm9tIGJlaW5n
IGRlc3Ryb3llZC4KICAgICB1bnNpZ25lZCBtX3BsdWdpbkRlc3RydWN0aW9uUHJvdGVjdENvdW50
OwogCiAgICAgLy8gQSB0aW1lciB0aGF0IHdlIHVzZSB0byBwcmV2ZW50IGRlc3RydWN0aW9uIG9m
IHRoZSBwbHVnLWluIHdoaWxlIHBsdWctaW4KICAgICAvLyBjb2RlIGlzIG9uIHRoZSBzdGFjay4K
LSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1
Z2luRGVzdHJveVRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94
eT4gbV9wbHVnaW5EZXN0cm95VGltZXI7CiAKICAgICAvLyBXaGV0aGVyIHdlJ3JlIHdhaXRpbmcg
Zm9yIHRoZSBwbHVnLWluIHByb3h5IGluIHRoZSB3ZWIgcHJvY2VzcyB0byBkcmF3IHRoZSBjb250
ZW50cyBvZiBpdHMKICAgICAvLyBiYWNraW5nIHN0b3JlIGludG8gdGhlIHdlYiBwcm9jZXNzIGJh
Y2tpbmcgc3RvcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1Bs
dWdpblByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmNwcAppbmRleCAzNmQxZmM0YTE2NWU1NWIxMDZmNmEzYjM2NTc0ODU3YzJjZjcxY2ZjLi44
ZmViOWZmZTcyYWM2NzM4ZWM1ZDA4ZjUyZmRmMzFjMjFiNjRhNzU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTM4LDcgKzM4LDcgQEAK
ICNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSA8Y3J0X2V4dGVybnMuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKaW5kZXggN2EyMGVkMDViMmFh
OWRjNWViZWQyODUyYWI2MTY1YjkzNWVkYjJmZi4uMTZmMzIzODg1YTU3MzQ5NTAwYTEzNzI4Njkx
Nzc2NmE5MGQxZWUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Qcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBwcml2YXRlOgogICAgIAogICAgIGJvb2wgbV9z
dXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uOwogCi0gICAgV2ViQ29yZTo6
UnVuTG9vcDo6VGltZXI8UGx1Z2luUHJvY2Vzcz4gbV9taW5pbXVtTGlmZXRpbWVUaW1lcjsKKyAg
ICBSdW5Mb29wOjpUaW1lcjxQbHVnaW5Qcm9jZXNzPiBtX21pbmltdW1MaWZldGltZVRpbWVyOwog
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBQTEFURk9STShNQUMpCiAgICAg
Ly8gVGhlIE1hY2ggcG9ydCB1c2VkIGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5j
cHAKaW5kZXggYzcxYzFkNDgyZGNkNGYyNmVjYTU5MmQxOWU3YjdjMjM2OGM3NTg1NC4uM2E0ZDE1
YWQ1OWZkMjVkMjFkMjU5NTBjNTU5YThmNjYzYzExM2NiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTM5LDgg
KzM5LDggQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiUGx1Z2luUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy91bml4
L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNwcAppbmRleCAwYTU2NDYxYzk4YzFkY2UwODlm
NjNkMWQ5NDMyNTRiMWUyNmNlYjY2Li4wNjdkNWQwZjVmMzE0Y2IwMjlmMTYyZjY1ZDQ0NWY5NTgy
MmZmMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3VuaXgvUGx1
Z2luUHJvY2Vzc01haW5Vbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1
ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgogI2luY2x1
ZGUgIldlYktpdDJJbml0aWFsaXplLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+Cisj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8Z3Rr
L2d0ay5oPgogI2lmIFBMQVRGT1JNKFgxMSkgJiYgZGVmaW5lZChHREtfV0lORE9XSU5HX1gxMSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKaW5kZXggYjIyMzNhMzVhMWExMzk2
OGEwMDA0YTIwYzExODg3MjRiYWIwODEyNS4uOGUwZGI4YjQzZTBiOTQ3NmFkZTdmZTMzZmNkZmI4
NjRjMzM5ZTUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKQEAgLTI5
LDggKzI5LDYgQEAKICNpbmNsdWRlICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogQ2hpbGRQcm9jZXNzOjpDaGlsZFByb2Nlc3MoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NoaWxkUHJvY2Vzcy5oCmluZGV4IGJhNzIyNjJmYTFmYzhlZmZlNzk2NDcwMDI5MDBk
ZGYzYTAzNGViYTkuLjM2NGY4M2U5ZmMwMjI0OTNiY2ZhODFkMGMwNTc1MDU1ZDlmYjExOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTI5LDkgKzI5LDkgQEAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xMTQsNyArMTE0LDcgQEAgcHJpdmF0
ZToKICAgICAvLyBhZnRlciBhIGdpdmVuIHBlcmlvZCBvZiB0aW1lLgogICAgIHVuc2lnbmVkIG1f
dGVybWluYXRpb25Db3VudGVyOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8Q2hpbGRQ
cm9jZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8Q2hpbGRQcm9j
ZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CiAKICAgICBSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOwogICAgIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCBtX21lc3Nh
Z2VSZWNlaXZlck1hcDsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0
UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZEludGVybmFsKGJvb2wpOwogICAgIHNpemVfdCBtX2Fj
dGl2ZVRhc2tDb3VudDsKICAgICBib29sIG1fc2hvdWxkU3VzcGVuZDsKLSAgICBXZWJDb3JlOjpS
dW5Mb29wOjpUaW1lcjxDaGlsZFByb2Nlc3M+IG1fc3VzcGVuc2lvbkh5c3RlcmVzaXNUaW1lcjsK
KyAgICBSdW5Mb29wOjpUaW1lcjxDaGlsZFByb2Nlc3M+IG1fc3VzcGVuc2lvbkh5c3RlcmVzaXNU
aW1lcjsKICAgICBSZXRhaW5QdHI8aWQ+IG1fcHJvY2Vzc1N1cHByZXNzaW9uQXNzZXJ0aW9uOwog
I2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAK
aW5kZXggZTliYWY5MTY0YmQ4OTk4ZmRmZGJmNDlmNjU5Yzc1NTc1NzY0NTkwNC4uMTFlMDg2ODJl
YTVmMGMxMjIxNzFiMGVkOWFiNTYzNmIzYzY1NDZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCkBAIC0yNiw5ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzUHJveHkuaCIKIAotI2luY2x1ZGUgPFdlYkNv
cmUvUnVuTG9vcC5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKyNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQ
cm9jZXNzRW50cnlQb2ludC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGls
aXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oCmluZGV4IGM0
Yzg1ODI5NGZmNWUyODFiODdmMjMwMzAxODhjNWI1NTk1N2ZmYzcuLjkxZTI5NzY4NTBmNGI4MzVj
MzI0NTFmMzEzNDc2YTdjNWQ0NjUwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5
UG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9t
YWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50LmgKQEAgLTI5LDkgKzI5LDkg
QEAKICNpbXBvcnQgIkNoaWxkUHJvY2Vzcy5oIgogI2ltcG9ydCAiQ29tbWFuZExpbmUuaCIKICNp
bXBvcnQgIldlYktpdDJJbml0aWFsaXplLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4K
KyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5
UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQ
b2ludC5tbQppbmRleCA5NmE3ODFlNzUzNTM2OWY1N2JkNDU2ZWFkMTc1NjUxYjA0MWQwMmM5Li41
ZjhmZjRlMDMxYWMyOWZlYTViNzZlYzYxYjlkNWRiNzUyZGU5YzJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9D
aGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQu
bW0KQEAgLTM0LDggKzM0LDYgQEAKIAogI2RlZmluZSBTSE9XX0NSQVNIX1JFUE9SVEVSIDEKIAot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBDaGlsZFBy
b2Nlc3NNYWluRGVsZWdhdGU6On5DaGlsZFByb2Nlc3NNYWluRGVsZWdhdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmNwcAppbmRleCBlNzRjYTJj
NmFlYjdmZThkNzA3YWFhZTcxMzI0ZWI0YzllZDFkNGVlLi5hMzRmMTlkYzU4NDQ2ZmRmMWJlMmYz
YjY5M2ZmNDA1NjY3OWQwNjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1
Z2lucy9OUE9iamVjdFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9OUE9iamVjdFByb3h5LmNwcApAQCAtMzUsMTAgKzM1LDggQEAKICNpbmNsdWRlICJOUFJlbW90
ZU9iamVjdE1hcC5oIgogI2luY2x1ZGUgIk5QUnVudGltZVV0aWxpdGllcy5oIgogI2luY2x1ZGUg
Ik5QVmFyaWFudERhdGEuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKaW5kZXggYzg4ODJkOGFlMWY0OWJiNjkwNWE4
ZTAxMzQ3ODJiZWZmZGIwNzVkMC4uZmU5ZjVhZTdiYmYzYzBhOGIwNTRiYTMwZWJiMzFlNjQ5ZmU2
MGMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXpl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwCkBA
IC0yOCw5ICsyOCw5IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Mb2dnaW5nLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
KyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUg
IldlYlN5c3RlbUludGVyZmFjZS5oIgpAQCAtNDYsNyArNDYsNyBAQCB2b2lkIEluaXRpYWxpemVX
ZWJLaXQyKCkKIAogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5p
dGlhbGl6ZU1haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAogI2lm
ICFMT0dfRElTQUJMRUQKICAgICBXZWJDb3JlOjppbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZO
ZWNlc3NhcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwCmluZGV4IGI1MzE1NWY5ZDViOTg3YjU4NjI2
NDBmOGM1YjNmMTE4ZjU3N2M1MDEuLjY3YzhmZDQzMDQ5MmUyMWQxOGE4ZDdhMTM3NmQ1MjYzM2Ez
MGMxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZhdmljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcApAQCAtMjcsOCArMjcsOCBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCmluZGV4IDhl
NDc4MDE2OTMyMDlmYmYxN2YzNTNkZTQyZDEzM2FmNDZmZmYwNTQuLjY4NjRiNjQ5YmYwMTE5YzMw
ZjcwNTA5MWY0MDcyYzkyMjYwNmRhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmgKQEAgLTI3LDEwICsyNywxMCBA
QAogI2RlZmluZSBGaW5kSW5kaWNhdG9yV2luZG93X2gKIAogI2ltcG9ydCAiV2ViS2l0U3lzdGVt
SW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9O
b25jb3B5YWJsZS5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogQGNsYXNzIFdLRmluZEluZGljYXRv
cldpbmRvd0FuaW1hdGlvbjsKIEBjbGFzcyBXS1ZpZXc7CkBAIC02Niw3ICs2Niw3IEBAIHByaXZh
dGU6CiAgICAgV0tXaW5kb3dCb3VuY2VBbmltYXRpb25Db250ZXh0UmVmIG1fYm91bmNlQW5pbWF0
aW9uQ29udGV4dDsKICAgICBSZXRhaW5QdHI8V0tGaW5kSW5kaWNhdG9yV2luZG93QW5pbWF0aW9u
PiBtX2JvdW5jZUFuaW1hdGlvbjsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPEZpbmRJ
bmRpY2F0b3JXaW5kb3c+IG1fc3RhcnRGYWRlT3V0VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8
RmluZEluZGljYXRvcldpbmRvdz4gbV9zdGFydEZhZGVPdXRUaW1lcjsKICAgICBSZXRhaW5QdHI8
V0tGaW5kSW5kaWNhdG9yV2luZG93QW5pbWF0aW9uPiBtX2ZhZGVPdXRBbmltYXRpb247CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5n
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRpbmdWaWV3
Lm1tCmluZGV4IDBlY2I4MWM5YWIzMjcwMGYzNmNkZmI2OGJkOGY0NDY0OWQ3OGRiNjQuLjZhOTJl
NDdiNTViZWYzYzU1M2ViNDI1MTk5M2UxNjQxNTcyNTNhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCkBAIC0zNCw4ICszNCw4
IEBACiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgPFBERktpdC9QREZLaXQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KKyNpbXBvcnQg
PHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpp
bmRleCBjNGM1YTIzMWU1NDM5NjQ5NGQ5ZDYwMmNmYjdlNWNlOGQ1ZGM2ODY3Li4zZmYwZmI2OTM2
YWNlOWUyMWM2ZDM1MDgxZDllMTc0ZDY0NmI3YzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC03OSw3ICs3OSw2IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2Ny
ZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlZ2lvbi5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU5T
U3RyaW5nRXh0cmFzLmg+CkBAIC05MCw2ICs4OSw3IEBACiAjaW1wb3J0IDxzeXMvc3RhdC5oPgog
I2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KIAogLyogQVBJIGludGVybmFscy4gKi8KICNpbXBvcnQgIldLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVh
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGE0MjVhNGYxMzU2ODQwNGMxMjI1NGY4
YTY0YTBkYjY0OTU2ZTFjZGIuLjkzZWZlMjIwYWFkZGZkZDc4Y2Y0NmUyMGY3ZmQ0MDRhY2VmMjE2
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5o
CkBAIC0zMiw4ICszMiw4IEBACiAjaW5jbHVkZSAiQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAi
RHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKLSNpbmNs
dWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVnaW9uOwpA
QCAtMTE2LDcgKzExNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQmFja2luZ1N0b3JlRGlz
Y2FyZGFibGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3Rv
cmU7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxDb29yZGluYXRlZERyYXdpbmdBcmVh
UHJveHk+IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPENv
b3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eT4gbV9kaXNjYXJkQmFja2luZ1N0b3JlVGltZXI7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKaW5kZXggNDdiYTI0MTMzMzA3NjM5NmRhYTMwMmZlMDE0
YzEyNzczOWMyNjYwNy4uZjZlZGI0NmU5ZjdjMzU4YzE3MTQzMjNlZjdhNjM4ODlmN2NmMTY0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgK
QEAgLTI5LDggKzI5LDggQEAKICNpbmNsdWRlICJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJE
cmF3aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZWdpb247CkBA
IC0xMTIsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNCYWNraW5nU3RvcmVEaXNj
YXJkYWJsZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QmFja2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9y
ZTsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhUHJveHlJbXBsPiBt
X2Rpc2NhcmRCYWNraW5nU3RvcmVUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJl
YVByb3h5SW1wbD4gbV9kaXNjYXJkQmFja2luZ1N0b3JlVGltZXI7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcAppbmRleCAzYmQxZWE2MDNlMzE4OGI0
M2MzMDU5NTU1MTZmNzE3MWZlYTZkNDIyLi42OWU2YjgzYmNkMjQ3YTBhM2U5N2Q0YjQwNmExZDU5
NGQyNjJmNGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
ZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwCkBAIC0yNyw4ICsyNyw4IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
aW5nQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNz
TGF1bmNoZXJHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Q
cm9jZXNzTGF1bmNoZXJHdGsuY3BwCmluZGV4IGRkODAwNTYxODBjMTBmNmY5YTFlOTk4NzJmZDFk
OTQ1YzU1NzE5MWUuLmYwNjM0ZTk5ZWQ1ZWY3YTdhNjY3MjhjNDg5OWIzMzhjYmZkZjI3NTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xh
dW5jaGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3Rr
L1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKQEAgLTMzLDEwICszMywxMCBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxnbGliLmg+CiAjaW5j
bHVkZSA8bG9jYWxlLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCBiNGU5
MjU4MjQ3MmYwOTFhOThkNzE0YTVmY2Q2YTIwY2YzNWY1OTM0Li4xYmUxNzQ4MmZjN2NiNWE2MTdj
MjVjZDIyMGY5MjAzMDI5NmUyZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjksNyAr
MjksNiBAQAogI2ltcG9ydCAiRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmgiCiAj
aW1wb3J0ICJFbnZpcm9ubWVudFZhcmlhYmxlcy5oIgogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50
ZXJmYWNlLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPGNydF9leHRl
cm5zLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8bWFjaC9tYWNoaW5lLmg+
CkBAIC00MCw2ICszOSw3IEBACiAjaW1wb3J0IDxzeXMvc3RhdC5oPgogI2ltcG9ydCA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5M
b29wLmg+CiAjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQ4LDggKzQ4LDYgQEAK
ICNpbXBvcnQgPHhwYy94cGMuaD4KICNlbmRpZgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQogLy8gRklYTUU6IFdlIHNob3VsZCBiZSBkb2luZyB0aGlzIGFub3RoZXIgd2F5LgogZXh0ZXJu
ICJDIiBrZXJuX3JldHVybl90IGJvb3RzdHJhcF9yZWdpc3RlcjIobWFjaF9wb3J0X3QsIG5hbWVf
dCwgbWFjaF9wb3J0X3QsIHVpbnQ2NF90KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwOTQwZGI0
YjAwNTM4MDgxN2RhOTFlOWU3ODhjNjA2OWEyZjI4NDRmLi5mZGY2Yzc5ZTI0ZTRmNTQ2NjAzMDU0
MjNiMTc1YzEwM2VmN2VkYmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzUsNyArMzUsNyBAQAog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9S
dW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFVTRShTRUNVUklUWV9G
UkFNRVdPUkspCiAjaW5jbHVkZSAiU2VjSXRlbVNoaW1Qcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKaW5k
ZXggN2FkMTcyYTQwN2IyYTY2NjNkMjcxNzZjOTNhZWIwZWRjODJhNGE0YS4uZGE2MzdjNDE1NWZk
ZWU2Zjg2NjU1Y2UzMjAyNDc5MzMwNTg0MjhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCkBAIC0zNyw3ICsz
Nyw3IEBACiAjaW5jbHVkZSAiV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAK
ICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAppbmRleCA3NjZhZTBlMjBj
MjdlZGI0OTE3ZTc2ZmIxNTYyMWQ2NzE0ZjViYWJiLi45NzM5ZmEzYTExZjU0MDhhNjEwMGIwNjM4
ZWJiMTAzYTU5ODQ2ZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVz
cG9uc2l2ZW5lc3NUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3Bv
bnNpdmVuZXNzVGltZXIuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUmVzcG9uc2l2ZW5lc3NUaW1lci5oIgogCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBjb25zdCBkb3VibGUgcmVzcG9u
c2l2ZW5lc3NUaW1lb3V0ID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9SZXNwb25zaXZlbmVzc1RpbWVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9u
c2l2ZW5lc3NUaW1lci5oCmluZGV4IDhkYjI4NzJmZGVhZmU3OTdjOWFmNGU3ZWM3MTI5MTZlMjZi
N2VlZWMuLmY3NWMwYTk5OGZmNDY3ZGFjOTNiYTczYWJjMGUyYTU2YjZjODE1OTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaApAQCAtMjYsNyAr
MjYsNyBAQAogI2lmbmRlZiBSZXNwb25zaXZlbmVzc1RpbWVyX2gKICNkZWZpbmUgUmVzcG9uc2l2
ZW5lc3NUaW1lcl9oCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTYsNyArNTYsNyBAQCBw
cml2YXRlOgogICAgIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCogbV9jbGllbnQ7CiAgICAg
Ym9vbCBtX2lzUmVzcG9uc2l2ZTsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFJlc3Bv
bnNpdmVuZXNzVGltZXI+IG1fdGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8UmVzcG9uc2l2ZW5l
c3NUaW1lcj4gbV90aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmgKaW5kZXggZTBlNTMxMDI1
YjFkYTcwMjNhNThkMjMzMTlkZWFjMWI4NDJkYzZhOS4uYzBkNGVjOTYzNzEwMjRmZWZjZTE4ZjI0
OTM3NjZiMGM4NmJiOGY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zp
c2l0ZWRMaW5rUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRl
ZExpbmtQcm92aWRlci5oCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpbmNsdWRlICJWaXNpdGVkTGlu
a1RhYmxlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIFZpc2l0ZWRMaW5rVGFibGUgbV90YWJs
ZTsKIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6TGlua0hhc2gsIFdlYkNvcmU6OkxpbmtIYXNoSGFz
aD4gbV9wZW5kaW5nVmlzaXRlZExpbmtzOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFZp
c2l0ZWRMaW5rUHJvdmlkZXI+IG1fcGVuZGluZ1Zpc2l0ZWRMaW5rc1RpbWVyOworICAgIFJ1bkxv
b3A6OlRpbWVyPFZpc2l0ZWRMaW5rUHJvdmlkZXI+IG1fcGVuZGluZ1Zpc2l0ZWRMaW5rc1RpbWVy
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAKaW5kZXggMTc2MjZmY2YzNjk4NGE5MjE0MjA4YTFmOGYxNjRiMmM5MzAyZjI2
NS4uNDliYjJhMmQ1Mjk5NTU2MzkxMWU5YjAzZWNiNGFhNTJjYjY0MWEwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtNjAsMTEgKzYwLDExIEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAj
aWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQogI2luY2x1ZGUgIldlYkJhdHRlcnlNYW5hZ2VyUHJv
eHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5k
ZXggMGMzY2VjMGQzMzY1NmU4OTA4NDgwMWI4MmRiZjg1Yzk0NzIzMmYzNS4uYmUxYmQ3NGQ5OGVm
M2QxNjFmZGEwNzc1OWJlM2I3YmYxMmEyZWMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTQxLDEwICs0MSwxMCBAQAogI2luY2x1ZGUgIldl
YlBsdWdpblNpdGVEYXRhTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29y
ZS9VUkwuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1N1ZGRlblRlcm1pbmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KICNpbmNsdWRl
IDxzdGRpby5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCAwZWExMDliMjM0MGI5MjM4NDk2
NDdlZjE4MDg5YmE0ZThlNmY5ZjBiLi40NGFhNjVmODEzOTcwNjhjNTU5OTQ3ZmE1NDcxOGYxN2Zk
NGE0NmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9X
ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAg
LTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
SURCRGF0YWJhc2VCYWNrZW5kLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5t
bQppbmRleCAzNjVjYjM2MTI1NTkwOWM4MzFlM2ZhZGQzODVjYmFkNmE4NzIyNTRmLi5mNTBkZmI3
NjZiMjAxZTA3MWMxYWUzMjQzNDZjNDg4ZWI2OGZlYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFBy
b2Nlc3NNYWluLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9t
YWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0KQEAgLTMxLDEyICszMSwx
MiBAQAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXS0Jhc2UuaCIKICNp
bXBvcnQgIldlYlByb2Nlc3MuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9y
dCA8bWFjaC9tYWNoX2Vycm9yLmg+CiAjaW1wb3J0IDxzZXJ2ZXJzL2Jvb3RzdHJhcC5oPgogI2lt
cG9ydCA8c3Bhd24uaD4KICNpbXBvcnQgPHN0ZGlvLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5o
PgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2Vy
dmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IDIxZWIz
MzZkOTAyY2Q3NTNlZGIwNjYxNzlmNDM2Y2FhYmJmZjNmYTkuLjU3YjgzYjhlOGQ0Y2U0MjMwYmM3
NWNhMjY3YjAwYTJkNDM5MWM5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2lt
cG9ydCAiV0tCYXNlLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAjaW1wb3J0ICJYUENTZXJ2
aWNlRW50cnlQb2ludC5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggN2VlMmE3ZWQxM2IxMjMyZGUw
MGRmOTI3ZmI2YmY2Yzg0OTgxMmViNi4uMjZjMmQ4MTNlZTMwZWJjMTRjMjE4YWY1MjFmMTQ2OTRi
ZmZhODcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaApAQCAtMzAsNyArMzAsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkUHJpb3JpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlTG9hZFNjaGVkdWxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2Fk
ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIApAQCAtNjgsNyArNjgsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgaW50ZXJuYWxseUZhaWxlZExvYWRUaW1lckZpcmVkKCk7CiAgICAg
CiAgICAgSGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+PiBtX2ludGVybmFs
bHlGYWlsZWRSZXNvdXJjZUxvYWRlcnM7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyPiBtX2ludGVybmFsbHlGYWlsZWRMb2FkVGltZXI7CisgICAg
UnVuTG9vcDo6VGltZXI8V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyPiBtX2ludGVybmFsbHlGYWls
ZWRMb2FkVGltZXI7CiAgICAgCiAgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBSZWZQdHI8V2Vi
UmVzb3VyY2VMb2FkZXI+PiBtX3dlYlJlc291cmNlTG9hZGVyczsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmpl
Y3RNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1
bnRpbWVPYmplY3RNYXAuaAppbmRleCBlNTE3OGFkMTc0Njc1YzVkYzI3OGJhYjk0NzU3MTI4MGYx
NzQ3NDgyLi5mYWRlNDFkZjU4ZDQ3OTgxZDMxNGM5YThmNDRhZDMxYTcwZmFlZWRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1l
T2JqZWN0TWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05QUnVudGltZU9iamVjdE1hcC5oCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8aGVhcC9XZWFrLmg+CiAjaW5jbHVkZSA8aGVhcC9XZWFrSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogCiBzdHJ1Y3QgTlBPYmplY3Q7CiB0eXBlZGVmIHN0cnVjdCBfTlBW
YXJpYW50IE5QVmFyaWFudDsKQEAgLTk4LDcgKzk4LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFw
PEpTQzo6SlNPYmplY3QqLCBOUEpTT2JqZWN0Kj4gbV9ucEpTT2JqZWN0czsKICAgICBIYXNoTWFw
PE5QT2JqZWN0KiwgSlNDOjpXZWFrPEpTTlBPYmplY3Q+PiBtX2pzTlBPYmplY3RzOwogICAgIFZl
Y3RvcjxOUE9iamVjdCo+IG1fbnBPYmplY3RzVG9GaW5hbGl6ZTsKLSAgICBXZWJDb3JlOjpSdW5M
b29wOjpUaW1lcjxOUFJ1bnRpbWVPYmplY3RNYXA+IG1fZmluYWxpemF0aW9uVGltZXI7CisgICAg
UnVuTG9vcDo6VGltZXI8TlBSdW50aW1lT2JqZWN0TWFwPiBtX2ZpbmFsaXphdGlvblRpbWVyOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCmluZGV4IGI2
NDlhMjBlMDhmNzYwMThmZWQwNzFiMTI2YTRkZDE2N2M2NGQ4MmUuLjI5MTU3ZjI1YzY4ZTYyZGI4
OTM0OWQ0MWMxZGFhN2FjZTZkNGIxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBAIC0zMyw4
ICszMyw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BZmZpbmVUcmFuc2Zvcm0uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMzMwLDcgKzMzMCw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIGJvb2wgbV9yZXBlYXQ7CiAgICAgICAgIFRpbWVyRnVuYyBtX3RpbWVy
RnVuYzsKIAotICAgICAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxUaW1lcj4gbV90aW1lcjsK
KyAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZXI+IG1fdGltZXI7CiAgICAgfTsKICAgICB0eXBl
ZGVmIEhhc2hNYXA8dW5zaWduZWQsIHN0ZDo6dW5pcXVlX3B0cjxUaW1lcj4+IFRpbWVyTWFwOwog
ICAgIFRpbWVyTWFwIG1fdGltZXJzOwpAQCAtMzc3LDcgKzM3Nyw3IEBAIHByaXZhdGU6CiAKICAg
ICAvLyBGSVhNRTogSXQncyBhIGJpdCB3YXN0ZWZ1bCB0byBoYXZlIG9uZSBudWxsIGV2ZW50IHRp
bWVyIHBlciBwbHVnLWluLgogICAgIC8vIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSBoYXZpbmcgb25l
IHBlciB3aW5kb3cuCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW4+
IG1fbnVsbEV2ZW50VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW4+IG1f
bnVsbEV2ZW50VGltZXI7CiAgICAgTlBfQ0dDb250ZXh0IG1fbnBDR0NvbnRleHQ7CiAjZW5kaWYK
ICNlbGlmIFBMVUdJTl9BUkNISVRFQ1RVUkUoV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5T
dHJlYW0uaAppbmRleCBiMzUwMTg2MzU2ZTQ5NTYwM2Y0Y2UwMmYxOTk0ZThiOTkzOTFjMTU3Li5h
ZDgyYzdhYTMyOGY1MzE1ZmFhMjhmMWI2ZGRhMjgyN2NkYjJjY2RkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW5TdHJlYW0uaApAQCAtMjksMTIgKzI5LDEyIEBACiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL25wcnVudGltZV9pbnRl
cm5hbC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTA1LDcgKzEwNSw3IEBAIHByaXZhdGU6CiAg
ICAgQ1N0cmluZyBtX21pbWVUeXBlOwogICAgIENTdHJpbmcgbV9oZWFkZXJzOwogCi0gICAgV2Vi
Q29yZTo6UnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW5TdHJlYW0+IG1fZGVsaXZlcnlEYXRh
VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW5TdHJlYW0+IG1fZGVsaXZl
cnlEYXRhVGltZXI7CiAgICAgT3duUHRyPCBWZWN0b3I8dWludDhfdD4+IG1fZGVsaXZlcnlEYXRh
OwogICAgIGJvb2wgbV9zdG9wU3RyZWFtV2hlbkRvbmVEZWxpdmVyaW5nOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IDJkMDQzM2Q1
ODM5NmQxMGVkMjhiNTdiNWI4Y2U5OTUyZjJlMTY2OTcuLjg5MWU4NDk3NmE4YWNmZWU1Yzg3N2I3
ZTU2NmRhZDhjNjM2MGJjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuaApAQCAtMzYsOSArMzYsOSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGx1
Z2luVmlld0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogLy8gRklYTUU6IEV2ZW50dWFsbHkgdGhpcyBz
aG91bGQgbW92ZSB0byBXZWJDb3JlLgogCkBAIC0yMzQsNyArMjM0LDcgQEAgcHJpdmF0ZToKIAog
ICAgIC8vIFBlbmRpbmcgVVJMUmVxdWVzdHMgdGhhdCB0aGUgcGx1Zy1pbiBoYXMgbWFkZS4KICAg
ICBEZXF1ZTxSZWZQdHI8VVJMUmVxdWVzdD4+IG1fcGVuZGluZ1VSTFJlcXVlc3RzOwotICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBsdWdpblZpZXc+IG1fcGVuZGluZ1VSTFJlcXVlc3RzVGlt
ZXI7CisgICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luVmlldz4gbV9wZW5kaW5nVVJMUmVxdWVzdHNU
aW1lcjsKIAogICAgIC8vIFBlbmRpbmcgZnJhbWUgbG9hZHMgdGhhdCB0aGUgcGx1Zy1pbiBoYXMg
bWFkZS4KICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFdlYkZyYW1lPiwgUmVmUHRyPFVSTFJl
cXVlc3Q+PiBGcmFtZUxvYWRNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZERyYXdpbmdBcmVhLmgKaW5kZXggMjQyZDlkYzIyNzMwMzZkMzk1MjU5YzQwYmIz
NjE0OTA4Yzg4ZGVkMC4uOTM5NjI2Y2Y4MTgzNWZiNmNhYTE3Njc0N2VhMGQwNjllMDk5YTNhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0Fy
ZWEuaApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVk
ZSAiTGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTEyNCw4ICsxMjQsOCBAQCBwcml2YXRlOgogICAgIC8vIHdvbid0
IHBhaW50IHVudGlsIHBhaW50aW5nIGhhcyByZXN1bWVkIGFnYWluLgogICAgIGJvb2wgbV9pc1Bh
aW50aW5nU3VzcGVuZGVkOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8Q29vcmRpbmF0
ZWREcmF3aW5nQXJlYT4gbV9kaXNwbGF5VGltZXI7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGlt
ZXI8Q29vcmRpbmF0ZWREcmF3aW5nQXJlYT4gbV9leGl0Q29tcG9zaXRpbmdUaW1lcjsKKyAgICBS
dW5Mb29wOjpUaW1lcjxDb29yZGluYXRlZERyYXdpbmdBcmVhPiBtX2Rpc3BsYXlUaW1lcjsKKyAg
ICBSdW5Mb29wOjpUaW1lcjxDb29yZGluYXRlZERyYXdpbmdBcmVhPiBtX2V4aXRDb21wb3NpdGlu
Z1RpbWVyOwogCiAgICAgLy8gVGhlIGxheWVyIHRyZWUgaG9zdCB0aGF0IGhhbmRsZXMgYWNjZWxl
cmF0ZWQgY29tcG9zaXRpbmcuCiAgICAgUmVmUHRyPExheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVl
SG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYUltcGwuaAppbmRleCAzZTVhODkwYWEwYmRlZWI0YzgzYTYzOTkwMTgwNjgwMDVmMTBiMDQx
Li4xYjEzZWQwNzVlMDBlYTczYzY0MjBkM2UxODgzNWE1Y2EwZjNmZDE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCkBAIC0y
OSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJMYXllclRy
ZWVIb3N0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwpAQCAtMTI3LDggKzEyNyw4IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2lzUGFpbnRpbmdTdXNwZW5kZWQ7CiAgICAgYm9vbCBtX2Fsd2F5c1Vz
ZUNvbXBvc2l0aW5nOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJ
bXBsPiBtX2Rpc3BsYXlUaW1lcjsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5n
QXJlYUltcGw+IG1fZXhpdENvbXBvc2l0aW5nVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RHJh
d2luZ0FyZWFJbXBsPiBtX2Rpc3BsYXlUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5n
QXJlYUltcGw+IG1fZXhpdENvbXBvc2l0aW5nVGltZXI7CiAKICAgICAvLyBUaGUgbGF5ZXIgdHJl
ZSBob3N0IHRoYXQgaGFuZGxlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZy4KICAgICBSZWZQdHI8
TGF5ZXJUcmVlSG9zdD4gbV9sYXllclRyZWVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCAxYzFlMjE0NWEx
MTM2MWNlYmUyYzlmYjc4MTdiYjdiMTA3ZTZlNmM0Li43MjAxNzg3Y2I0YzAxMDRmYWRjZmNjM2Ji
NzMyYTBlYmI3ODJmZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVO
QUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb29y
ZGluYXRvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1BhZ2VPdmVybGF5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92
ZXJsYXkuaAppbmRleCA4OTZmMTI2NzU4MTg1NTdlNjk1MjBiMzZhOWZiNDMyYTA3ZGE1ODg5Li42
MWM2ODE4ZGQ2YjVmYmMwYzVjOTQ0MzY2OWY4Zjk5Njc5ZGM3MTg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaApAQCAtMjgsOCArMjgsOCBA
QAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgR3Jh
cGhpY3NDb250ZXh0OwpAQCAtOTAsNyArOTAsNyBAQCBwcml2YXRlOgogICAgIENsaWVudCogbV9j
bGllbnQ7CiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXI8UGFnZU92ZXJsYXk+IG1fZmFkZUFuaW1hdGlvblRpbWVyOworICAgIFJ1bkxvb3A6OlRp
bWVyPFBhZ2VPdmVybGF5PiBtX2ZhZGVBbmltYXRpb25UaW1lcjsKICAgICBkb3VibGUgbV9mYWRl
QW5pbWF0aW9uU3RhcnRUaW1lOwogICAgIGRvdWJsZSBtX2ZhZGVBbmltYXRpb25EdXJhdGlvbjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDRiMWRkNGY2OWQ0NWZjYjUxNDA3NWZhNmFlMTJkZGUwZmZjMTNlMzcuLjhiMDdiMTUzMjlkZTQ5
MGZiNWZkZDUzMGFiNGY4NWJjYTUxMzkyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyMyw3ICsxMjMsNiBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KQEAgLTE0MCw2ICsxMzksNyBAQAogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNDSlNWYWx1ZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lm
IEVOQUJMRShNSFRNTCkKICNpbmNsdWRlIDxXZWJDb3JlL01IVE1MQXJjaGl2ZS5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggY2RmNjllNjViYjJi
N2QxOGZiNDE2N2Q3M2IxNmVmMjQ2OGMxZDk3MC4uZDZmYzE3MWYxNzk3YmEzOWY3NGRkNDU3MDc0
NGI5NDM1NjNmYjE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC04NTUsNyArODU1LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wcmltYXJ5
UGx1Z0luUGFnZU9yaWdpbjsKICAgICBTdHJpbmcgbV9wcmltYXJ5UGx1Z0luT3JpZ2luOwogICAg
IFN0cmluZyBtX3ByaW1hcnlQbHVnSW5NaW1lVHlwZTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpU
aW1lcjxXZWJQYWdlPiBtX2RldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblRpbWVyOwor
ICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVk
UGx1Z0luVGltZXI7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTg5Nyw4ICs4OTcs
OCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxQYWdlQmFubmVyPiBtX2hlYWRlckJhbm5lcjsKICAg
ICBSZWZQdHI8UGFnZUJhbm5lcj4gbV9mb290ZXJCYW5uZXI7CiAKLSAgICBXZWJDb3JlOjpSdW5M
b29wOjpUaW1lcjxXZWJQYWdlPiBtX3NldENhblN0YXJ0TWVkaWFUaW1lcjsKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX3NlbmREaWRVcGRhdGVJbldpbmRvd1N0YXRlVGlt
ZXI7CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZXRDYW5TdGFydE1lZGlhVGltZXI7
CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZW5kRGlkVXBkYXRlSW5XaW5kb3dTdGF0
ZVRpbWVyOwogICAgIGJvb2wgbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwogCiAgICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlVuZG9TdGVwPj4gbV91bmRvU3RlcE1hcDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGMwOTBmNDQ1NTU2M2E4OGJm
ZDFlNjgwOTgzNThjY2I3OGFiYWQzYzIuLjM0NDQzNDdhOGJhMjVjNTMzZTk1MjYwNTE1NmI2Zjhj
NjcwZjM4NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
NzQsNyArNzQsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVS
ZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC04Myw2ICs4Miw3IEBACiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKaW5k
ZXggNWIzNDgwZGE0ZmRhM2JkM2M4NGIwMWYzN2FmNWZlZDAzYWRkMGUwMi4uNGQyNDlkYmQyMzhh
MjgyMjg3ZjExN2ViN2VjMzMxYTZhZjQwNzNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcApAQCAtMzYsMTEgKzM2LDExIEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
SGFuZGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViS2l0
Mi9XZWJQcm9jZXNzLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZmRlZiBIQVZFX0VD
T1JFX1gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nl
c3NNYWluR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NN
YWluR3RrLmNwcAppbmRleCA1NGM4ZGYzZTBjYmNlYzc1ZDcwOTJjMmIyNDI2YWM3ZmY1MWM0ZWY4
Li5iNDgxZWUzNGYyM2UzYWI4YWZlZTRlYmI1MmFlYjUwZTAyMzc1MzNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCkBAIC0z
MiwxMiArMzIsMTIgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDxXZWJLaXQyL1dlYlByb2Nlc3MuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5j
bHVkZSA8bGliaW50bC5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogI2luY2x1ZGUgPHVu
aXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216487</attachid>
            <date>2013-11-09 01:54:32 -0800</date>
            <delta_ts>2013-11-09 06:20:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116606-20131109105430.patch</filename>
            <type>text/plain</type>
            <size>166258</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4OTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFjMGNmNWYxZTc2NmNiM2UzMDQyYTEx
YzcwNzJjMmFhMTg0Y2M2ZjguLjQwNmQwYzY3ZmZlMTgxZjU4NGVhOWNmNmY4MjQ2MDRmOGVmMWQ2
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTAwIEBACisyMDEzLTExLTA4ICBQYXRyaWNrIEdhbnN0ZXJlciAg
PHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgUnVuTG9vcCBmcm9tIFdlYkNvcmUg
dG8gV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY2MDYKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCisKKyAgICAgICAg
V2l0aCB0aGlzIGNoYW5nZSBSdW5Mb29wIGNhbiBiZSB1c2VkIGluIEphdmFTY3JpcHRDb3JlIHRv
by4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLnZjeHBy
b2ovV1RGLnZjeHByb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUJs
YWNrQmVycnkuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XaW4uY21h
a2U6CisgICAgICAgICogd3RmL1J1bkxvb3AuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAuCisgICAgICAgIChXVEY6OlJ1bkxvb3A6OkhvbGRlcjo6
SG9sZGVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6SG9sZGVyOjpydW5Mb29wKToKKyAgICAg
ICAgKFdURjo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6Y3VycmVudCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Om1haW4pOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjppc01haW4pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpwZXJmb3Jt
V29yayk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OmRpc3BhdGNoKToKKyAgICAgICAgKiB3dGYv
UnVuTG9vcC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5o
LgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0UmVwZWF0aW5nKToKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydE9uZVNob3QpOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzUmVwZWF0aW5nKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6VGltZXI6OlRpbWVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXI6OmZpcmVk
KToKKyAgICAgICAgKiB3dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHA6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0Jl
cnJ5LmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAg
ICAgICAgKiB3dGYvY2YvUnVuTG9vcENGLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NmL1J1bkxvb3BDRi5jcHAuCisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnBlcmZv
cm1Xb3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuRm9yRHVyYXRp
b24pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpydW4pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjpUaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6
On5UaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogd3RmL2VmbC9SdW5Mb29w
RWZsLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SdW5Mb29w
RWZsLmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAg
ICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcEV2
ZW50KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1l
ckJhc2U6On5UaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnRp
bWVyRmlyZWQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogd3RmL2d0ay9SdW5Mb29wR3Rr
LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3Rr
LmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6aW5uZXJtb3N0TG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnB1
c2hOZXN0ZWRNYWluTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnBvcE5lc3RlZE1haW5M
b29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxv
b3A6OnF1ZXVlV29yayk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGlt
ZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJC
YXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJh
c2U6OnN0YXJ0KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKToKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogd3Rm
L3dpbi9SdW5Mb29wV2luLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9SdW5Mb29wV2luLmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6UnVuTG9vcFduZFBy
b2MpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3bmRQcm9jKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6cnVuKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcyk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp+UnVuTG9vcCk6
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6
OlRpbWVyQmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OmdlbmVyYXRlVGltZXJJRCk6
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFz
ZTo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUpOgor
CiAyMDEzLTExLTA3ICBEZW5pcyBOb21peWFtYSAgPGQubm9taXlhbWFAc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0dUS10gR2x5cGhzIGluIHZlcnRpY2FsIHRleHQgdGVzdHMgYXJlIHJvdGF0ZWQg
OTAgZGVncmVlcyBjbG9ja3dpc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NGEwOWZiNDI2MGM2OGNiOGY1ZTJh
NmM5NTQyNDMxYWMyMWU2OThhLi41ZjUxNGU5MzAwM2M3ZDdkZWNlYmRjNDFjYmNhN2JiNWM2YTRi
OTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMTEtMDggIFBhdHJpY2sgR2Fu
c3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIGZyb20g
V2ViQ29yZSB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExNjYwNgorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlOgorICAgICAgICAqIFBsYXRmb3Jt
RWZsLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFBsYXRm
b3JtV2luLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmg6CisK
IDIwMTMtMTAtMzAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
W01TRV0gQnJpbmcgU291cmNlQnVmZmVyLmFwcGVuZCB1cCB0byB0aGUgbW9zdCByZWNlbnQgc3Bl
Yy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBmYjlkODE1MjY5MDBjZmExMTJhNDkxOGFmMzIyNDliOWQ0
Yzg5ZjI1Li4zZjFlOTlhMzAxZWIwM2MxNGYxNDRiY2ZmZDdhYzM2NDNhODQ3NjUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTMtMTEtMDggIFBhdHJpY2sgR2Fuc3RlcmVy
ICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29y
ZSB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExNjYwNgorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAg
ICAqIENhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tOgorICAgICAgICAoK1tDYXJib25XaW5k
b3dBZGFwdGVyIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBIaXN0b3J5L1dlYkJhY2tGb3J3YXJk
TGlzdC5tbToKKyAgICAgICAgKCtbV2ViQmFja0ZvcndhcmRMaXN0IGluaXRpYWxpemVdKToKKyAg
ICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoK1tXZWJIaXN0b3J5
SXRlbSBpbml0aWFsaXplXSk6CisgICAgICAgICogTWlzYy9XZWJDYWNoZS5tbToKKyAgICAgICAg
KCtbV2ViQ2FjaGUgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIE1pc2MvV2ViRWxlbWVudERpY3Rp
b25hcnkubW06CisgICAgICAgICgrW1dlYkVsZW1lbnREaWN0aW9uYXJ5IGluaXRpYWxpemVdKToK
KyAgICAgICAgKiBNaXNjL1dlYkljb25EYXRhYmFzZS5tbToKKyAgICAgICAgKCtbV2ViSWNvbkRh
dGFiYXNlIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWRO
ZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgrW1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2lu
VmlldyBpbml0aWFsaXplXSk6CisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tOgorICAgICAgICAqIFBsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW06Cisg
ICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgrW1dl
Yk5ldHNjYXBlUGx1Z2luVmlldyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoK1tXZWJVbmRvU3RlcCBpbml0aWFsaXpl
XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06Cisg
ICAgICAgICogV2ViVmlldy9XZWJBcmNoaXZlLm1tOgorICAgICAgICAoK1tXZWJBcmNoaXZlUHJp
dmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJEYXRhU291cmNlLm1tOgor
ICAgICAgICAoK1tXZWJEYXRhU291cmNlIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoK1tXZWJIVE1MVmlld1ByaXZhdGUgaW5pdGlhbGl6
ZV0pOgorICAgICAgICAoK1tXZWJIVE1MVmlldyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlh
bGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUmVzb3VyY2UubW06CisgICAgICAgICgrW1dl
YlJlc291cmNlUHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJUZXh0
SXRlcmF0b3IubW06CisgICAgICAgICgrW1dlYlRleHRJdGVyYXRvclByaXZhdGUgaW5pdGlhbGl6
ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBp
bml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAgICAg
KCtbV2ViVmlld1ByaXZhdGUgaW5pdGlhbGl6ZV0pOgorCiAyMDEzLTExLTA3ICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGEgUExBVEZPUk0o
SU9TKSBmcm9tIFdlYktpdCBQcml2YXRlIEhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDViYWU0ZjExOWQ3
MDg4YWQ4Nzk1NmU5NDY0ODBhZGQ5YmJkMDJkMWEuLjBkOGU5MjhjMzcwMTJhMTdiMDMyMmFhN2Vh
MWJhM2NjYWRkZTg1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxMy0xMS0wOCAg
UGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1
bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENh
cmxzc29uLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHA6
CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
dW5peC9OZXR3b3JrUHJvY2Vzc01haW5Vbml4LmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVn
aW5Qcm9jZXNzTWFpbi5tbToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAgICogUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNz
L1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vz
cy5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzTWFpblVuaXguY3BwOgor
ICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAqIFNoYXJlZC9DaGls
ZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxk
UHJvY2Vzc0VudHJ5UG9pbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tOgorICAgICAgICAq
IFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJL
aXQySW5pdGlhbGl6ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVy
L2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hl
ci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVz
c1RpbWVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9j
ZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9M
ZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50
Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2Jq
ZWN0TWFwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luU3RyZWFtLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZERyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhSW1wbC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcDoKKwogMjAxMy0xMS0w
OCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEVuY29k
ZSBhbmQgZGVjb2RlIE5TVVJMUmVxdWVzdHMgdXNpbmcgTlNDb2RlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDI3MGViYjRmZGU0MWU2NTBlMjI1NzE3NjVlZjQzYzU5YzlhZDMxNGYuLjc5MjYx
MDQ2NGI0MjQxNzczMDhkZDE0MzY2MWNlODFkOGRkMmYwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTEzNyw2ICsxMzcsOCBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93
dGYvUmVmUHRyLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1JlZlB0ckhhc2hNYXAuaCBcCiAgICAg
U291cmNlL1dURi93dGYvUmV0YWluUHRyLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
Y3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggXAogICAgIFNvdXJjZS9XVEYvd3Rm
L1NIQTEuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9TSEExLmggXAogICAgIFNvdXJjZS9XVEYv
d3RmL1NhdHVyYXRlZEFyaXRobWV0aWMuaCBcCkBAIC0yMTYsNiArMjE4LDcgQEAgd3RmX3NvdXJj
ZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5jcHAgXAog
ICAgIFNvdXJjZS9XVEYvd3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5oIFwKICAgICBTb3VyY2Uv
V1RGL3d0Zi9ndGsvTWFpblRocmVhZEd0ay5jcHAgXAorICAgIFNvdXJjZS9XVEYvd3RmL2d0ay9S
dW5Mb29wR3RrLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9BU0NJSUZhc3RQYXRoLmgg
XAogICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcCBcCiAgICAgU291cmNl
L1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dU
Ri52Y3hwcm9qL1dURi52Y3hwcm9qIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJv
agppbmRleCAxNWJlNjUzZjE3MmZiNGRjNDBiMDhmOTc3NTQ5NGYyMjVlMDY4OWFhLi41MTZjNWYx
MTczNmE0NmVjYWQ1OWUwMjAyZjJkOTQ2ZWNhYzk3MTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RG
LnZjeHByb2oKQEAgLTg5LDYgKzg5LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0
ZlxSQU1TaXplLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcUmFuZG9t
TnVtYmVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcUmVmQ291bnRl
ZExlYWtDb3VudGVyLmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcUnVu
TG9vcC5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFNIQTEuY3BwIiAv
Pg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxTaXhDaGFyYWN0ZXJIYXNoLmNwcCIg
Lz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcU2l6ZUxpbWl0cy5jcHAiIC8+DQpA
QCAtMTE0LDYgKzExNSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcdW5pY29k
ZVxpY3VcQ29sbGF0b3JJQ1UuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0
Zlx1bmljb2RlXFVURjguY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0Zlx3
aW5cTWFpblRocmVhZFdpbi5jcHAiIC8+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3Rm
XHdpblxSdW5Mb29wV2luLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZc
V1RGVGhyZWFkRGF0YS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFNj
aGVkdWxlUGFpckNGLmNwcCIgLz4NCiAgIDwvSXRlbUdyb3VwPg0KQEAgLTIyMSw2ICsyMjMsNyBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJlZlB0ci5oIiAvPg0KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxSZWZQdHJIYXNoTWFwLmgiIC8+DQogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd3RmXFJldGFpblB0ci5oIiAvPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHd0ZlxSdW5Mb29wLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XFNhdHVyYXRlZEFyaXRobWV0aWMuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcU2NoZWR1bGVQYWlyLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFNl
Z21lbnRlZFZlY3Rvci5oIiAvPg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGM2YWRmYzg3ODBjOTNkMWZiNzJkYWUwMWI5ZDk1Yjg0NmM0OTdkMjMuLmFkY2I0
YTJhNTM3YmEwOTQ0OTZjOWJkMDIyMjAyNWQ0NGUxNDc0ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjAsNiArNjAsOSBAQAogCQkyNjI5OUI2RTE3QTlF
NUI4MDBBREVCRTUgLyogUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyNjI5OUI2RDE3QTlFNUI4MDBBREVCRTUgLyogUmVmLmggKi87IH07CiAJCTJD
MDUzODU0MTVCQzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRlVGltZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwNTM4NTMxNUJDODE5MDAwRjIx
Qjk2IC8qIEdyZWdvcmlhbkRhdGVUaW1lLmggKi87IH07CiAJCTJDQ0Q4OTJBMTVDMDM5MDIwMDI4
NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0NEODkyOTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFu
RGF0ZVRpbWUuY3BwICovOyB9OworCQkyQ0RFRDBFRjE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9v
cENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJD
REVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovOyB9OworCQkyQ0RFRDBG
MzE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBGMTE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9v
cC5jcHAgKi87IH07CisJCTJDREVEMEY0MTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBGMjE4MTE1
Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovOyB9OwogCQk0NEY2NjAwODE3MUFGQUU2MDBFNEFE
MTkgLyogRW51bUNsYXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NEY2NjAwNzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi87IH07CiAJ
CTRGMDMyMUJDMTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8q
IEJpdEFycmF5LmggKi87IH07CiAJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVu
dGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0UyOUMzM0QxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmggKi87IH07
CkBAIC0zMjQsNiArMzI3LDkgQEAKIAkJMjYyOTlCNkQxN0E5RTVCODAwQURFQkU1IC8qIFJlZi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWYuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkMwNTM4NTMxNUJDODE5MDAwRjIxQjk2IC8qIEdyZWdvcmlhbkRhdGVU
aW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyZWdvcmlhbkRhdGVUaW1l
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDQ0Q4OTI5MTVDMDM5MDIwMDI4NTA4
MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBHcmVnb3JpYW5EYXRlVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUnVuTG9vcENGLmNwcDsgcGF0aCA9IGNmL1J1bkxv
b3BDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDREVEMEYxMTgxMTVDODUw
MDREQkE3MCAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJ1bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0RFRDBGMjE4
MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSdW5Mb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0REVFNzRBMTUy
Mjc0QkIwMEM2RUMzNyAvKiBpT1MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBw
YXRoID0gaU9TLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEY2NjAw
NzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVudW1DbGFz
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjAzMjFCQjE1NkFBOEQxMDA2RUJB
RjYgLyogQml0QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQml0QXJy
YXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU2NSw2ICs1NzEsMTQgQEAKIAkJ
CXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkyQ0RFRDBG
MDE4MTE1QzNGMDA0REJBNzAgLyogY2YgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3Bw
ICovLAorCQkJKTsKKwkJCW5hbWUgPSBjZjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC02MjUsNiArNjM5LDcgQEAKIAkJQTg3NkRCRDYxNTE4MTZFNTAw
REFEQjk1IC8qIHd0ZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJMkNERUQwRjAxODExNUMzRjAwNERCQTcwIC8qIGNmICovLAogCQkJCUE4QTQ3MjgxMTUx
QTgyNUEwMDQxMjNGRiAvKiBkdG9hICovLAogCQkJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAv
KiBpb3MgKi8sCiAJCQkJQThBNDcyQzQxNTFBODI1QTAwNDEyM0ZGIC8qIG1hYyAqLywKQEAgLTc2
NSw2ICs3ODAsOCBAQAogCQkJCUE4QTQ3MzAzMTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZQdHIuaCAq
LywKIAkJCQlBOEE0NzMwNDE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5oICovLAog
CQkJCUE4QTQ3MzA1MTUxQTgyNUIwMDQxMjNGRiAvKiBSZXRhaW5QdHIuaCAqLywKKwkJCQkyQ0RF
RDBGMTE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgKi8sCisJCQkJMkNERUQwRjIxODEx
NUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkxNDY5NDE5MDE2RUFBRjZEMDAyNEUx
NDYgLyogUnVuTG9vcFRpbWVyLmggKi8sCiAJCQkJMTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8q
IFJ1bkxvb3BUaW1lckNGLmNwcCAqLywKIAkJCQkxNEYzQjBGNjE1RTQ1RTQ2MDAyMTAwNjkgLyog
U2F0dXJhdGVkQXJpdGhtZXRpYy5oICovLApAQCAtMTA1Niw2ICsxMDczLDcgQEAKIAkJCQlBOEE0
NzQxQzE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0
NzQxRDE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThBNDc0MUUxNTFBODI1QjAwNDEyM0ZGIC8qIFJldGFpblB0ci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMkNERUQwRjQxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICov
LAogCQkJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0RjNCMEY3MTVFNDVFNDYwMDIxMDA2OSAvKiBTYXR1cmF0ZWRBcml0aG1l
dGljLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDY5NDE5NjE2RUFBRkY4MDAyNEUxNDYgLyogU2No
ZWR1bGVQYWlyLmggaW4gSGVhZGVycyAqLywKQEAgLTEyMzIsNiArMTI1MCw4IEBACiAJCQkJMTQz
RjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QThBNDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzQxQTE1MUE4MjVCMDA0MTIzRkYgLyogUmVmQ291bnRlZExlYWtDb3VudGVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDREVEMEYzMTgxMTVDODUwMDREQkE3MCAvKiBSdW5M
b29wLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDREVEMEVGMTgxMTVDMzgwMDREQkE3MCAvKiBS
dW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRFMTQ2
IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Njk0MTk5MTZFQUIw
NDEwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJB
MTVGMzE4MjQzM0E5MDBBODJFNjkgLyogU3RyaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NN
YWtlTGlzdHMudHh0CmluZGV4IGI2MTdiN2RmOGQ2MjVmODg3MjI3MmNkMjZjZTQwYzBhZDEyZTAz
MTEuLmFiMmU0YmY1Y2RkODhjM2U2ZGNjN2NmNGE4ZGEyODJlMDdhZjUwNmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CkBAIC04Niw2ICs4Niw3IEBAIHNldChXVEZfSEVBREVSUwogICAgIFJlZlB0ci5o
CiAgICAgUmVmUHRySGFzaE1hcC5oCiAgICAgUmV0YWluUHRyLmgKKyAgICBSdW5Mb29wLmgKICAg
ICBTSEExLmgKICAgICBTYXR1cmF0ZWRBcml0aG1ldGljLmgKICAgICBTZWdtZW50ZWRWZWN0b3Iu
aApAQCAtMTczLDYgKzE3NCw3IEBAIHNldChXVEZfU09VUkNFUwogICAgIFJBTVNpemUuY3BwCiAg
ICAgUmFuZG9tTnVtYmVyLmNwcAogICAgIFJlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKKyAgICBS
dW5Mb29wLmNwcAogICAgIFNIQTEuY3BwCiAgICAgU2l4Q2hhcmFjdGVySGFzaC5jcHAKICAgICBT
dGFja0JvdW5kcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tC
ZXJyeS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQppbmRl
eCBiNWRlMzA1MjMzNmQ5NTEzNTc0MTc4MGYxYTM4ZTRkMGJjZjA1YzJiLi4wODU3NjZjNDZjMTJl
OWVmNWIyNzFiZmRkYTZiNjUzYTI1NzI3OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFj
a0JlcnJ5LmNtYWtlCkBAIC0xLDMgKzEsNCBAQAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAg
ICBibGFja2JlcnJ5L01haW5UaHJlYWRCbGFja0JlcnJ5LmNwcAorICAgIGJsYWNrYmVycnkvUnVu
TG9vcEJsYWNrQmVycnkuY3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVmbC5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDc3MWM4
MmUyNGJjNGJmMThlMzJlYzM0ZTdiMGI0OWY2OTI4MzlmNjYuLmUxMGE0NDIzOGM5NTI5ZDlkMDUx
OGI0YTFmMDljNDdhYzE0NDJmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0yLDYg
KzIsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGVmbC9NYWluVGhyZWFkRWZsLmNw
cAogICAgIGVmbC9Pd25QdHJFZmwuY3BwCiAgICAgZWZsL1JlZlB0ckVmbC5jcHAKKyAgICBlZmwv
UnVuTG9vcEVmbC5jcHAKIAogICAgIGdvYmplY3QvR093blB0ci5jcHAKICAgICBnb2JqZWN0L0dS
ZWZQdHIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZSBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDY4OTQwZmYyNGNlOGM3NmJk
M2IyYTlkNzFkMWI2MWQxYWYwNWMzMGEuLjQzZGE3MDk1NmYwOTI3NDZmYzYxNWM0MTVlYmQ0NGYw
YTAwYTU4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC00LDYgKzQsNyBAQCBsaXN0
KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGdvYmplY3QvR2xpYlV0aWxpdGllcy5jcHAKIAogICAg
IGd0ay9NYWluVGhyZWFkR3RrLmNwcAorICAgIGd0ay9SdW5Mb29wR3RrLmNwcAogKQogCiBsaXN0
KEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVdpbi5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IDg4YmRh
ZjcxM2U1MjhjMTQ4OGU4YjlhYWZkNzE5OTczYTA4ZmYwOGMuLjg4MzRkMjUyZjRjMDQ5YzlkZGZi
MzM1Njg4NDg0MjkzODQ1MTA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
V2luLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCkBAIC0yLDYg
KzIsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHRocmVhZHMvd2luL0JpbmFyeVNl
bWFwaG9yZVdpbi5jcHAKIAogICAgIHdpbi9NYWluVGhyZWFkV2luLmNwcAorICAgIHdpbi9SdW5M
b29wV2luLmNwcAogKQogCiBpZiAoV0lOQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9S
dW5Mb29wLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYTg2
MGZkMDY1MTk1ZDI3ZmI3ZTliZmMwNzczNGUzZTdhNDkwNzQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CisKK25h
bWVzcGFjZSBXVEYgeworCitzdGF0aWMgUnVuTG9vcCogc19tYWluUnVuTG9vcDsKKworLy8gSGVs
cGVyIGNsYXNzIGZvciBUaHJlYWRTcGVjaWZpY0RhdGEuCitjbGFzcyBSdW5Mb29wOjpIb2xkZXIg
eworcHVibGljOgorICAgIEhvbGRlcigpCisgICAgICAgIDogbV9ydW5Mb29wKGFkb3B0UmVmKG5l
dyBSdW5Mb29wKSkKKyAgICB7CisgICAgfQorCisgICAgUnVuTG9vcCogcnVuTG9vcCgpIGNvbnN0
IHsgcmV0dXJuIG1fcnVuTG9vcC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxSdW5M
b29wPiBtX3J1bkxvb3A7Cit9OworCit2b2lkIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9v
cCgpCit7CisgICAgaWYgKHNfbWFpblJ1bkxvb3ApCisgICAgICAgIHJldHVybjsKKyAgICBzX21h
aW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworfQorCitSdW5Mb29wKiBSdW5Mb29wOjpj
dXJyZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8
UnVuTG9vcDo6SG9sZGVyPiwgcnVuTG9vcEhvbGRlciwgKCkpOworICAgIHJldHVybiBydW5Mb29w
SG9sZGVyLT5ydW5Mb29wKCk7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6Om1haW4oKQoreworICAg
IEFTU0VSVChzX21haW5SdW5Mb29wKTsKKyAgICByZXR1cm4gc19tYWluUnVuTG9vcDsKK30KKwor
Ym9vbCBSdW5Mb29wOjppc01haW4oKQoreworICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKKyAg
ICByZXR1cm4gc19tYWluUnVuTG9vcCA9PSBSdW5Mb29wOjpjdXJyZW50KCk7Cit9CisKK3ZvaWQg
UnVuTG9vcDo6cGVyZm9ybVdvcmsoKQoreworICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byBoYW5k
bGUgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgcXVldWUgb25lIGF0IGEgdGltZSBiZWNhdXNlIHdoaWxl
IGluc2lkZSBvbmUgb2YgdGhlc2UKKyAgICAvLyBmdW5jdGlvbnMgd2UgbWlnaHQgcmUtZW50ZXIg
UnVuTG9vcDo6cGVyZm9ybVdvcmsoKSBhbmQgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHBpY2sgdXAg
d2hlcmUgd2UgbGVmdCBvZmYuCisgICAgLy8gU2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvODk1OTAg
Zm9yIG1vcmUgZGlzY3Vzc2lvbi4KKworICAgIC8vIE9uZSBwb3NzaWJsZSBzY2VuYXJpbyB3aGVu
IGhhbmRsaW5nIHRoZSBmdW5jdGlvbiBxdWV1ZSBpcyBhcyBmb2xsb3dzOgorICAgIC8vIC0gUnVu
TG9vcDo6cGVyZm9ybVdvcmsoKSBpcyBpbnZva2VkIHdpdGggMSBmdW5jdGlvbiBvbiB0aGUgcXVl
dWUKKyAgICAvLyAtIEhhbmRsaW5nIHRoYXQgZnVuY3Rpb24gcmVzdWx0cyBpbiAxIG1vcmUgZnVu
Y3Rpb24gYmVpbmcgZW5xdWV1ZWQKKyAgICAvLyAtIEhhbmRsaW5nIHRoYXQgb25lIHJlc3VsdHMg
aW4geWV0IGFub3RoZXIgYmVpbmcgZW5xdWV1ZWQKKyAgICAvLyAtIEFuZCBzbyBvbgorICAgIC8v
CisgICAgLy8gSW4gdGhpcyBzaXR1YXRpb24gb25lIGludm9jYXRpb24gb2YgcGVyZm9ybVdvcmso
KSBuZXZlciByZXR1cm5zIHNvIGFsbCBvdGhlciBldmVudCBzb3VyY2VzIGFyZSBibG9ja2VkLgor
ICAgIC8vIEJ5IG9ubHkgaGFuZGxpbmcgdXAgdG8gdGhlIG51bWJlciBvZiBmdW5jdGlvbnMgdGhh
dCB3ZXJlIGluIHRoZSBxdWV1ZSB3aGVuIHBlcmZvcm1Xb3JrKCkgaXMgY2FsbGVkCisgICAgLy8g
d2UgZ3VhcmFudGVlIHRvIG9jY2FzaW9uYWxseSByZXR1cm4gZnJvbSB0aGUgcnVuIGxvb3Agc28g
b3RoZXIgZXZlbnQgc291cmNlcyB3aWxsIGJlIGFsbG93ZWQgdG8gc3Bpbi4KKworICAgIHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbjsKKyAgICBzaXplX3QgZnVuY3Rpb25zVG9IYW5kbGUg
PSAwOworCisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVl
TG9jayk7CisgICAgICAgIGZ1bmN0aW9uc1RvSGFuZGxlID0gbV9mdW5jdGlvblF1ZXVlLnNpemUo
KTsKKworICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBmdW5jdGlvbiA9IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3Qo
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbigpOworCisgICAgZm9yIChzaXplX3QgZnVuY3Rpb25z
SGFuZGxlZCA9IDE7IGZ1bmN0aW9uc0hhbmRsZWQgPCBmdW5jdGlvbnNUb0hhbmRsZTsgKytmdW5j
dGlvbnNIYW5kbGVkKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKKworICAgICAgICAgICAgLy8gRXZlbiBpZiB3ZSBzdGFy
dCBvZmYgd2l0aCBOIGZ1bmN0aW9ucyB0byBoYW5kbGUgYW5kIHdlJ3ZlIG9ubHkgaGFuZGxlZCBs
ZXNzIHRoYW4gTiBmdW5jdGlvbnMsIHRoZSBxdWV1ZQorICAgICAgICAgICAgLy8gc3RpbGwgbWln
aHQgYmUgZW1wdHkgYmVjYXVzZSB0aG9zZSBmdW5jdGlvbnMgbWlnaHQgaGF2ZSBiZWVuIGhhbmRs
ZWQgaW4gYW4gaW5uZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKS4KKyAgICAgICAgICAgIC8vIElu
IHRoYXQgY2FzZSB3ZSBzaG91bGQgYmFpbCBoZXJlLgorICAgICAgICAgICAgaWYgKG1fZnVuY3Rp
b25RdWV1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uID0gbV9mdW5jdGlvblF1ZXVlLnRha2VGaXJzdCgpOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBmdW5jdGlvbigpOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpkaXNw
YXRjaChzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uKQoreworICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKKyAgICBtX2Z1bmN0aW9uUXVldWUuYXBwZW5k
KHN0ZDo6bW92ZShmdW5jdGlvbikpOworCisgICAgd2FrZVVwKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dU
Ri93dGYvUnVuTG9vcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyOGI0NGVkZTAwNTg4YzA4MTg5OTAzNDA1MzY4
MzMxOWI1OTY1NDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgK
QEAgLTAsMCArMSwxNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj
KSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFJ1bkxvb3BfaAorI2RlZmluZSBSdW5Mb29wX2gKKworI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uRGlzcGF0Y2hlci5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1JlZlB0ci5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8RWNvcmUu
aD4KKyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBG
dW5jdGlvbkRpc3BhdGNoZXIgeworcHVibGljOgorICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20g
dGhlIG1haW4gdGhyZWFkIChleGNlcHQgZm9yIHRoZSBNYWMgcGxhdGZvcm0sIHdoZXJlIGl0Cisg
ICAgLy8gY2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQpLgorICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAgIFdURl9FWFBP
UlRfUFJJVkFURSBzdGF0aWMgUnVuTG9vcCogY3VycmVudCgpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgUnVuTG9vcCogbWFpbigpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0
aWMgYm9vbCBpc01haW4oKTsKKyAgICB+UnVuTG9vcCgpOworCisgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4pIE9WRVJSSURFOworCisgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyB2b2lkIHJ1bigpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IHN0b3AoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB3YWtlVXAoKTsKKworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBydW5Gb3JEdXJhdGlvbihk
b3VibGUgZHVyYXRpb24pOworI2VuZGlmCisgICAgCisgICAgY2xhc3MgVGltZXJCYXNlIHsKKyAg
ICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3A7CisgICAgcHVibGljOgorICAgICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgZXhwbGljaXQgVGltZXJCYXNlKFJ1bkxvb3AqKTsKKyAgICAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHZpcnR1YWwgflRpbWVyQmFzZSgpOworCisgICAgICAgIHZvaWQgc3RhcnRS
ZXBlYXRpbmcoZG91YmxlIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0KHJlcGVhdEludGVydmFsLCB0
cnVlKTsgfQorICAgICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50ZXJ2YWwpIHsgc3Rh
cnQoaW50ZXJ2YWwsIGZhbHNlKTsgfQorCisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IHN0b3AoKTsKKyAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNBY3RpdmUoKSBjb25z
dDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydChkb3VibGUgbmV4dEZpcmVJbnRl
cnZhbCwgYm9vbCByZXBlYXQpOworCisgICAgICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKKworI2lm
IFBMQVRGT1JNKFdJTikKKyAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwg
dWludDY0X3QgSUQpOworICAgICAgICB1aW50NjRfdCBtX0lEOworICAgICAgICBib29sIG1faXNS
ZXBlYXRpbmc7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVy
RmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKKyAgICAgICAgUmV0YWluUHRyPENGUnVu
TG9vcFRpbWVyUmVmPiBtX3RpbWVyOworI2VsaWYgUExBVEZPUk0oRUZMKQorICAgICAgICBzdGF0
aWMgYm9vbCB0aW1lckZpcmVkKHZvaWQqIGRhdGEpOworICAgICAgICBFY29yZV9UaW1lciogbV90
aW1lcjsKKyAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOworI2VsaWYgVVNFKEdMSUIpCisgICAg
ICAgIHN0YXRpYyBnYm9vbGVhbiB0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJCYXNl
Kik7CisgICAgICAgIGdib29sZWFuIGlzUmVwZWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc1Jl
cGVhdGluZzsgfQorICAgICAgICB2b2lkIGNsZWFyVGltZXJTb3VyY2UoKTsKKyAgICAgICAgR1Jl
ZlB0cjxHU291cmNlPiBtX3RpbWVyU291cmNlOworICAgICAgICBnYm9vbGVhbiBtX2lzUmVwZWF0
aW5nOworI2VuZGlmCisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUaW1lckZpcmVk
Q2xhc3M+CisgICAgY2xhc3MgVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIHR5cGVkZWYgdm9pZCAoVGltZXJGaXJlZENsYXNzOjoqVGltZXJGaXJlZEZ1bmN0
aW9uKSgpOworCisgICAgICAgIFRpbWVyKFJ1bkxvb3AqIHJ1bkxvb3AsIFRpbWVyRmlyZWRDbGFz
cyogbywgVGltZXJGaXJlZEZ1bmN0aW9uIGYpCisgICAgICAgICAgICA6IFRpbWVyQmFzZShydW5M
b29wKQorICAgICAgICAgICAgLCBtX29iamVjdChvKQorICAgICAgICAgICAgLCBtX2Z1bmN0aW9u
KGYpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVh
bCB2b2lkIGZpcmVkKCkgeyAobV9vYmplY3QtPiptX2Z1bmN0aW9uKSgpOyB9CisKKyAgICAgICAg
VGltZXJGaXJlZENsYXNzKiBtX29iamVjdDsKKyAgICAgICAgVGltZXJGaXJlZEZ1bmN0aW9uIG1f
ZnVuY3Rpb247CisgICAgfTsKKworICAgIGNsYXNzIEhvbGRlcjsKKworcHJpdmF0ZToKKyAgICBS
dW5Mb29wKCk7CisKKyAgICB2b2lkIHBlcmZvcm1Xb3JrKCk7CisKKyAgICBNdXRleCBtX2Z1bmN0
aW9uUXVldWVMb2NrOworICAgIERlcXVlPHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+IG1fZnVuY3Rp
b25RdWV1ZTsKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1
bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKKyAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBS
dW5Mb29wV25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7CisgICAgTFJFU1VMVCB3
bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtKTsKKyAgICBIV05EIG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3c7CisKKyAgICB0eXBlZGVmIEhh
c2hNYXA8dWludDY0X3QsIFRpbWVyQmFzZSo+IFRpbWVyTWFwOworICAgIFRpbWVyTWFwIG1fYWN0
aXZlVGltZXJzOworI2VsaWYgUExBVEZPUk0oTUFDKQorICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1X
b3JrKHZvaWQqKTsKKyAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wUmVmPiBtX3J1bkxvb3A7CisgICAg
UmV0YWluUHRyPENGUnVuTG9vcFNvdXJjZVJlZj4gbV9ydW5Mb29wU291cmNlOworICAgIGludCBt
X25lc3RpbmdMZXZlbDsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICBib29sIG1faW5pdEVmbDsK
KworICAgIE11dGV4IG1fcGlwZUxvY2s7CisgICAgT3duUHRyPEVjb3JlX1BpcGU+IG1fcGlwZTsK
KworICAgIE11dGV4IG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWRMb2NrOworICAgIGJvb2wgbV93YWtl
VXBFdmVudFJlcXVlc3RlZDsKKworICAgIHN0YXRpYyB2b2lkIHdha2VVcEV2ZW50KHZvaWQqIGRh
dGEsIHZvaWQqLCB1bnNpZ25lZCk7CisjZWxpZiBVU0UoR0xJQikKK3B1YmxpYzoKKyAgICBzdGF0
aWMgZ2Jvb2xlYW4gcXVldWVXb3JrKFJ1bkxvb3AqKTsKKyAgICBHTWFpbkxvb3AqIGlubmVybW9z
dExvb3AoKTsKKyAgICB2b2lkIHB1c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxvb3AqKTsKKyAgICB2
b2lkIHBvcE5lc3RlZE1haW5Mb29wKCk7Citwcml2YXRlOgorICAgIEdSZWZQdHI8R01haW5Db250
ZXh0PiBtX3J1bkxvb3BDb250ZXh0OworICAgIFZlY3RvcjxHUmVmUHRyPEdNYWluTG9vcD4+IG1f
cnVuTG9vcE1haW5Mb29wczsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3Vz
aW5nIFdURjo6UnVuTG9vcDsKKworI2VuZGlmIC8vIFJ1bkxvb3BfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmI4NmI1
YjUxMTg1MTc3MDQyNWY0ZDkyOGYzZGY4NWRmMWRlNDZiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKQEAgLTAsMCArMSw0
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVt
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorCituYW1lc3BhY2UgV1RGIHsKKworUnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL2NmL1J1bkxvb3BDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk2NzU4NjcwMjYxMTRjMjU4MmE3MTE5YmYzZDYzNTk0Mjk4NjMxY2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCkBAIC0wLDAgKzEs
MTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+
CisjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KKyNpbmNsdWRlIDx3dGYvQXV0b2RyYWlu
ZWRQb29sLmg+CisKK25hbWVzcGFjZSBXVEYgeworCit2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3Jr
KHZvaWQqIGNvbnRleHQpCit7CisgICAgQXV0b2RyYWluZWRQb29sIHBvb2w7CisgICAgc3RhdGlj
X2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5wZXJmb3JtV29yaygpOworfQorCitSdW5Mb29wOjpS
dW5Mb29wKCkKKyAgICA6IG1fcnVuTG9vcChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpCisgICAgLCBt
X25lc3RpbmdMZXZlbCgwKQoreworICAgIENGUnVuTG9vcFNvdXJjZUNvbnRleHQgY29udGV4dCA9
IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsKKyAgICBtX3J1
bkxvb3BTb3VyY2UgPSBhZG9wdENGKENGUnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCAwLCAmY29udGV4dCkpOworICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3Au
Z2V0KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30K
KworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRhdGUo
bV9ydW5Mb29wU291cmNlLmdldCgpKTsKK30KKwordm9pZCBSdW5Mb29wOjpydW5Gb3JEdXJhdGlv
bihkb3VibGUgZHVyYXRpb24pCit7CisgICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BE
ZWZhdWx0TW9kZSwgZHVyYXRpb24sIHRydWUpOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgp
Cit7CisgICAgQ0ZSdW5Mb29wU291cmNlU2lnbmFsKG1fcnVuTG9vcFNvdXJjZS5nZXQoKSk7Cisg
ICAgQ0ZSdW5Mb29wV2FrZVVwKG1fcnVuTG9vcC5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6
cnVuKCkKK3sKKyAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsKys7CisgICAgCisgICAgewor
ICAgICAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKKyAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7Cisg
ICAgfQorICAgIAorICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwtLTsKK30KKwordm9pZCBS
dW5Mb29wOjpzdG9wKCkKK3sKKyAgICBBU1NFUlQobV9ydW5Mb29wID09IENGUnVuTG9vcEdldEN1
cnJlbnQoKSk7CisgICAgQ0ZSdW5Mb29wU3RvcChtX3J1bkxvb3AuZ2V0KCkpOworfQorCisvLyBS
dW5Mb29wOjpUaW1lcgorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChDRlJ1
bkxvb3BUaW1lclJlZiwgdm9pZCogY29udGV4dCkKK3sKKyAgICBUaW1lckJhc2UqIHRpbWVyID0g
c3RhdGljX2Nhc3Q8VGltZXJCYXNlKj4oY29udGV4dCk7CisKKyAgICBBdXRvZHJhaW5lZFBvb2wg
cG9vbDsKKyAgICB0aW1lci0+ZmlyZWQoKTsKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1l
ckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQoreworfQor
CitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwor
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBi
b29sIHJlcGVhdCkKK3sKKyAgICBpZiAobV90aW1lcikKKyAgICAgICAgc3RvcCgpOworICAgIAor
ICAgIENGUnVuTG9vcFRpbWVyQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwIH07
CisgICAgQ0ZUaW1lSW50ZXJ2YWwgcmVwZWF0SW50ZXJ2YWwgPSByZXBlYXQgPyBuZXh0RmlyZUlu
dGVydmFsIDogMDsKKyAgICBtX3RpbWVyID0gYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIG5leHRGaXJl
SW50ZXJ2YWwsIHJlcGVhdEludGVydmFsLCAwLCAwLCB0aW1lckZpcmVkLCAmY29udGV4dCkpOwor
ICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wLmdldCgpLCBtX3RpbWVy
LmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX3RpbWVyKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgQ0ZSdW5Mb29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIuZ2V0KCkpOworICAgIG1fdGlt
ZXIgPSBudWxscHRyOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBj
b25zdAoreworICAgIHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3Rp
bWVyLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9lZmwvUnVuTG9vcEVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvUnVuTG9vcEVm
bC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGEzODQ5N2ViMzU1NGMyZTYwMGEzNmZlYjQ4OTMxZjVkZmMxYWU4
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9SdW5Mb29wRWZsLmNwcApA
QCAtMCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJT04gZW1i
ZWRkZWQgc3lzdGVtcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8RWNvcmUuaD4KKyNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworc3RhdGlj
IGNvbnN0IGludCBlY29yZVBpcGVNZXNzYWdlU2l6ZSA9IDE7CitzdGF0aWMgY29uc3QgY2hhciB3
YWt1cEVjb3JlUGlwZU1lc3NhZ2VbXSA9ICJXIjsKKworbmFtZXNwYWNlIFdURiB7CisKK1J1bkxv
b3A6OlJ1bkxvb3AoKQorICAgIDogbV9pbml0RWZsKGZhbHNlKQorICAgICwgbV93YWtlVXBFdmVu
dFJlcXVlc3RlZChmYWxzZSkKK3sKKyAgICBtX3BpcGUgPSBhZG9wdFB0cihlY29yZV9waXBlX2Fk
ZCh3YWtlVXBFdmVudCwgdGhpcykpOworICAgIG1faW5pdEVmbCA9IHRydWU7Cit9CisKK1J1bkxv
b3A6On5SdW5Mb29wKCkKK3sKK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAgIGVjb3Jl
X21haW5fbG9vcF9iZWdpbigpOworfQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIGVj
b3JlX21haW5fbG9vcF9xdWl0KCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwRXZlbnQodm9p
ZCogZGF0YSwgdm9pZCosIHVuc2lnbmVkKQoreworICAgIFJ1bkxvb3AqIGxvb3AgPSBzdGF0aWNf
Y2FzdDxSdW5Mb29wKj4oZGF0YSk7CisKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihsb29wLT5tX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jayk7CisgICAgICAgIGxvb3AtPm1fd2Fr
ZVVwRXZlbnRSZXF1ZXN0ZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBsb29wLT5wZXJmb3JtV29y
aygpOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgeworICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2spOworICAgICAgICBpZiAo
bV93YWtlVXBFdmVudFJlcXVlc3RlZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV93
YWtlVXBFdmVudFJlcXVlc3RlZCA9IHRydWU7CisgICAgfQorCisgICAgeworICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9waXBlTG9jayk7CisgICAgICAgIGVjb3JlX3BpcGVfd3JpdGUobV9w
aXBlLmdldCgpLCB3YWt1cEVjb3JlUGlwZU1lc3NhZ2UsIGVjb3JlUGlwZU1lc3NhZ2VTaXplKTsK
KyAgICB9Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqKQorICAg
IDogbV90aW1lcigwKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKK3sKK30KKworUnVuTG9v
cDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK2Jvb2wgUnVu
TG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHZvaWQqIGRhdGEpCit7CisgICAgUnVuTG9vcDo6
VGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFJ1bkxvb3A6OlRpbWVyQmFzZSo+KGRhdGEp
OworCisgICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykKKyAgICAgICAgdGltZXItPm1fdGlt
ZXIgPSAwOworCisgICAgdGltZXItPmZpcmVkKCk7CisKKyAgICByZXR1cm4gdGltZXItPm1faXNS
ZXBlYXRpbmcgPyBFQ09SRV9DQUxMQkFDS19SRU5FVyA6IEVDT1JFX0NBTExCQUNLX0NBTkNFTDsK
K30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVy
dmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBpZiAoaXNBY3RpdmUoKSkKKyAgICAgICAgc3RvcCgp
OworCisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBBU1NFUlQoIW1fdGltZXIpOwor
ICAgIG1fdGltZXIgPSBlY29yZV90aW1lcl9hZGQobmV4dEZpcmVJbnRlcnZhbCwgcmVpbnRlcnBy
ZXRfY2FzdDxFY29yZV9UYXNrX0NiPih0aW1lckZpcmVkKSwgdGhpcyk7Cit9CisKK3ZvaWQgUnVu
TG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBpZiAobV90aW1lcikgeworICAgICAgICBl
Y29yZV90aW1lcl9kZWwobV90aW1lcik7CisgICAgICAgIG1fdGltZXIgPSAwOworICAgIH0KK30K
KworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gKG1fdGltZXIpID8gdHJ1ZSA6IGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2d0ay9SdW5Mb29wR3RrLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL2d0ay9SdW5Mb29wR3RrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTJlYTIyMGNkZWM4ZDg4YWE0MTIz
ODEwMzM0MjY2NzdlNmQ4YjRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvZ3Rr
L1J1bkxvb3BHdGsuY3BwCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdo
dCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKwor
I2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3Bh
Y2UgV1RGIHsKKworUnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAgLy8gZ19tYWluX2NvbnRleHRf
ZGVmYXVsdCgpIGRvZXNuJ3QgYWRkIGFuIGV4dHJhIHJlZmVyZW5jZS4KKyAgICBtX3J1bkxvb3BD
b250ZXh0ID0gaXNNYWluVGhyZWFkKCkgPyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgOiBhZG9w
dEdSZWYoZ19tYWluX2NvbnRleHRfbmV3KCkpOworICAgIEFTU0VSVChtX3J1bkxvb3BDb250ZXh0
KTsKKyAgICBHUmVmUHRyPEdNYWluTG9vcD4gaW5uZXJtb3N0TG9vcCA9IGFkb3B0R1JlZihnX21h
aW5fbG9vcF9uZXcobV9ydW5Mb29wQ29udGV4dC5nZXQoKSwgRkFMU0UpKTsKKyAgICBBU1NFUlQo
aW5uZXJtb3N0TG9vcCk7CisgICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChpbm5lcm1vc3RM
b29wKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIGZvciAoaW50IGkgPSBtX3J1
bkxvb3BNYWluTG9vcHMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgaWYgKCFn
X21haW5fbG9vcF9pc19ydW5uaW5nKG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWlu
TG9vcHNbaV0uZ2V0KCkpOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAg
IFJ1bkxvb3AqIG1haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworICAgIEdNYWluTG9v
cCogaW5uZXJtb3N0TG9vcCA9IG1haW5SdW5Mb29wLT5pbm5lcm1vc3RMb29wKCk7CisgICAgaWYg
KCFnX21haW5fbG9vcF9pc19ydW5uaW5nKGlubmVybW9zdExvb3ApKSB7CisgICAgICAgIGdfbWFp
bl9sb29wX3J1bihpbm5lcm1vc3RMb29wKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IC8vIENyZWF0ZSBhbmQgcnVuIGEgbmVzdGVkIGxvb3AgaWYgdGhlIGlubmVybW9zdCBvbmUgd2Fz
IGFscmVhZHkgcnVubmluZy4KKyAgICBHTWFpbkxvb3AqIG5lc3RlZE1haW5Mb29wID0gZ19tYWlu
X2xvb3BfbmV3KDAsIEZBTFNFKTsKKyAgICBtYWluUnVuTG9vcC0+cHVzaE5lc3RlZE1haW5Mb29w
KG5lc3RlZE1haW5Mb29wKTsKKyAgICBnX21haW5fbG9vcF9ydW4obmVzdGVkTWFpbkxvb3ApOwor
ICAgIG1haW5SdW5Mb29wLT5wb3BOZXN0ZWRNYWluTG9vcCgpOworfQorCitHTWFpbkxvb3AqIFJ1
bkxvb3A6OmlubmVybW9zdExvb3AoKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29w
IHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMu
aXNFbXB0eSgpKTsKKyAgICByZXR1cm4gbV9ydW5Mb29wTWFpbkxvb3BzWzBdLmdldCgpOworfQor
Cit2b2lkIFJ1bkxvb3A6OnB1c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxvb3AqIG5lc3RlZExvb3Ap
Cit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVy
ZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOworICAgIG1fcnVu
TG9vcE1haW5Mb29wcy5hcHBlbmQoYWRvcHRHUmVmKG5lc3RlZExvb3ApKTsKK30KKwordm9pZCBS
dW5Mb29wOjpwb3BOZXN0ZWRNYWluTG9vcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWlu
IGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5M
b29wcy5pc0VtcHR5KCkpOworICAgIG1fcnVuTG9vcE1haW5Mb29wcy5yZW1vdmVMYXN0KCk7Cit9
CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxv
b3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29w
cy5pc0VtcHR5KCkpOworICAgIEdSZWZQdHI8R01haW5Mb29wPiBsYXN0TWFpbkxvb3AgPSBtX3J1
bkxvb3BNYWluTG9vcHMubGFzdCgpOworICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKGxh
c3RNYWluTG9vcC5nZXQoKSkpCisgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobGFzdE1haW5Mb29w
LmdldCgpKTsKK30KKworZ2Jvb2xlYW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxv
b3ApCit7CisgICAgcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsKKyAgICByZXR1cm4gRkFMU0U7Cit9
CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJj
ZSA9IGFkb3B0R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKKyAgICBnX3NvdXJjZV9zZXRfcHJp
b3JpdHkoc291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0RFRkFVTFQpOworICAgIGdfc291cmNlX3Nl
dF9jYWxsYmFjayhzb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZS
dW5Mb29wOjpxdWV1ZVdvcmspLCB0aGlzLCAwKTsKKyAgICBnX3NvdXJjZV9hdHRhY2goc291cmNl
LmdldCgpLCBtX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKKworICAgIGdfbWFpbl9jb250ZXh0X3dh
a2V1cChtX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpU
aW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQorICAg
ICwgbV90aW1lclNvdXJjZSgwKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJh
c2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFy
VGltZXJTb3VyY2UoKQoreworICAgIG1fdGltZXJTb3VyY2UgPSAwOworfQorCitnYm9vbGVhbiBS
dW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2Uq
IHRpbWVyKQoreworICAgIEdTb3VyY2UqIGN1cnJlbnRUaW1lclNvdXJjZSA9IHRpbWVyLT5tX3Rp
bWVyU291cmNlLmdldCgpOworICAgIGJvb2wgaXNSZXBlYXRpbmcgPSB0aW1lci0+aXNSZXBlYXRp
bmcoKTsKKyAgICAvLyBUaGlzIGNhbiBjaGFuZ2UgdGhlIHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5n
IGEgbmV3IHRpbWVyIHdpdGhpbiB0aGUgY2FsbGJhY2suCisgICAgaWYgKCFpc1JlcGVhdGluZyAm
JiBjdXJyZW50VGltZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCisgICAg
ICAgIHRpbWVyLT5jbGVhclRpbWVyU291cmNlKCk7CisKKyAgICB0aW1lci0+ZmlyZWQoKTsKKyAg
ICByZXR1cm4gaXNSZXBlYXRpbmc7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFy
dChkb3VibGUgZmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBpZiAobV90aW1lclNv
dXJjZSkKKyAgICAgICAgc3RvcCgpOworCisgICAgbV90aW1lclNvdXJjZSA9IGFkb3B0R1JlZihn
X3RpbWVvdXRfc291cmNlX25ldyhzdGF0aWNfY2FzdDxndWludD4oZmlyZUludGVydmFsICogMTAw
MCkpKTsKKyAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OworICAgIGdfc291cmNlX3NldF9jYWxs
YmFjayhtX3RpbWVyU291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigm
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spLCB0aGlzLCAwKTsKKyAgICBn
X3NvdXJjZV9hdHRhY2gobV90aW1lclNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BD
b250ZXh0LmdldCgpKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQorewor
ICAgIGlmICghbV90aW1lclNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ19zb3VyY2Vf
ZGVzdHJveShtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICBjbGVhclRpbWVyU291cmNlKCk7Cit9
CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fdGltZXJTb3VyY2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL1J1
bkxvb3BXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzNTMxYjYzOTRjNDgyZmMyZDM5ZWZkNmQwODE2YmFk
NWZmMGQ0NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdp
bi5jcHAKQEAgLTAsMCArMSwxNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Cisj
aW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwor
bmFtZXNwYWNlIFdURiB7CisKK3N0YXRpYyBjb25zdCBVSU5UIFBlcmZvcm1Xb3JrTWVzc2FnZSA9
IFdNX1VTRVIgKyAxOworc3RhdGljIGNvbnN0IExQV1NUUiBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dD
bGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdlV2luZG93IjsKKworTFJFU1VMVCBDQUxMQkFDSyBS
dW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQ
YXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAgICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9IHN0YXRp
Y19jYXN0PFJ1bkxvb3AqPihnZXRXaW5kb3dQb2ludGVyKGhXbmQsIDApKSkKKyAgICAgICAgcmV0
dXJuIHJ1bkxvb3AtPnduZFByb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworCisg
ICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JFQVRFKSB7CisgICAgICAgIExQQ1JFQVRFU1RSVUNUIGNy
ZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TFBDUkVBVEVTVFJVQ1Q+KGxQYXJhbSk7CisK
KyAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBSdW5Mb29wIHdpdGggdGhlIHdpbmRvdy4KKyAgICAg
ICAgc2V0V2luZG93UG9pbnRlcihoV25kLCAwLCBjcmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFyYW1z
KTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDo6RGVmV2luZG93UHJv
YyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisKK0xSRVNVTFQgUnVuTG9vcDo6
d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQ
YXJhbSkKK3sKKyAgICBzd2l0Y2ggKG1lc3NhZ2UpIHsKKyAgICBjYXNlIFBlcmZvcm1Xb3JrTWVz
c2FnZToKKyAgICAgICAgcGVyZm9ybVdvcmsoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgY2Fz
ZSBXTV9USU1FUjoKKyAgICAgICAgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHRoaXMs
IHdQYXJhbSk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiA6OkRlZldp
bmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworfQorCit2b2lkIFJ1bkxv
b3A6OnJ1bigpCit7CisgICAgTVNHIG1lc3NhZ2U7CisgICAgd2hpbGUgKEJPT0wgcmVzdWx0ID0g
OjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAwLCAwLCAwKSkgeworICAgICAgICBpZiAocmVzdWx0ID09
IC0xKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbWVz
c2FnZSk7CisgICAgICAgIDo6RGlzcGF0Y2hNZXNzYWdlKCZtZXNzYWdlKTsKKyAgICB9Cit9CisK
K3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgOjpQb3N0UXVpdE1lc3NhZ2UoMCk7Cit9CisK
K2Jvb2wgUnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCkKK3sKKyAg
ICAvLyBGSVhNRTogVGhpcyByZWFsbHkgb25seSBuZWVkcyB0byBiZSBjYWxsZWQgb25jZS4KKwor
ICAgIFdORENMQVNTIHdpbmRvd0NsYXNzID0geyAwIH07CisgICAgd2luZG93Q2xhc3MubHBmbldu
ZFByb2MgICAgID0gUnVuTG9vcDo6UnVuTG9vcFduZFByb2M7CisgICAgd2luZG93Q2xhc3MuY2JX
bmRFeHRyYSAgICAgID0gc2l6ZW9mKFJ1bkxvb3AqKTsKKyAgICB3aW5kb3dDbGFzcy5scHN6Q2xh
c3NOYW1lICAgPSBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWU7CisKKyAgICByZXR1cm4g
ISE6OlJlZ2lzdGVyQ2xhc3MoJndpbmRvd0NsYXNzKTsKK30KKworUnVuTG9vcDo6UnVuTG9vcCgp
Cit7CisgICAgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7CisKKyAgICBtX3J1
bkxvb3BNZXNzYWdlV2luZG93ID0gOjpDcmVhdGVXaW5kb3coa1J1bkxvb3BNZXNzYWdlV2luZG93
Q2xhc3NOYW1lLCAwLCAwLAorICAgICAgICBDV19VU0VERUZBVUxULCAwLCBDV19VU0VERUZBVUxU
LCAwLCBIV05EX01FU1NBR0UsIDAsIDAsIHRoaXMpOworICAgIEFTU0VSVCg6OklzV2luZG93KG1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3cpKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAg
IC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBoZXJlLgorfQorCit2b2lk
IFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgLy8gRklYTUU6IE5vIG5lZWQgdG8gd2FrZSB1cCB0
aGUgcnVuIGxvb3AgaWYgd2UndmUgYWxyZWFkeSBjYWxsZWQgZGlzcGF0Y2gKKyAgICAvLyBiZWZv
cmUgdGhlIHJ1biBsb29wIGhhcyBoYWQgdGhlIHRpbWUgdG8gcmVzcG9uZC4KKyAgICA6OlBvc3RN
ZXNzYWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRl
cnByZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAwKTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwor
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgdWlu
dDY0X3QgSUQpCit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3Rp
dmVUaW1lcnMuZmluZChJRCk7CisgICAgaWYgKGl0ID09IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJz
LmVuZCgpKSB7CisgICAgICAgIC8vIFRoZSB0aW1lciBtdXN0IGhhdmUgYmVlbiBzdG9wcGVkIGFm
dGVyIHRoZSBXTV9USU1FUiBtZXNzYWdlIHdhcyBwb3N0ZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUu
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnZh
bHVlOworCisgICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgeworICAgICAgICBydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOworICAgICAgICA6OktpbGxUaW1lcihydW5Mb29w
LT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBJRCk7CisgICAgfQorCisgICAgdGltZXItPmZpcmVk
KCk7Cit9CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVRpbWVySUQoKQoreworICAgIHN0YXRp
YyB1aW50NjRfdCB1bmlxdWVUaW1lcklEID0gMTsKKyAgICByZXR1cm4gdW5pcXVlVGltZXJJRCsr
OworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQor
ICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBtX0lEKGdlbmVyYXRlVGltZXJJRCgpKQor
ICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKK3sKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+
VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgbV9p
c1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldCht
X0lELCB0aGlzKTsKKyAgICA6OlNldFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdp
bmRvdywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAsIDApOworfQorCit2b2lkIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9y
dW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOworICAgIGlmIChpdCA9PSBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAgOjpLaWxsVGltZXIobV9ydW5Mb29w
LT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lEKTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1l
ckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5jb250YWlucyhtX0lEKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDNmOWFkMjEyY2M3OTg0MThjY2YyYWJlMjY0ZDgzODRjNmMyZWY0MWQu
LmJkNTE0ZjFkNTIwZjdmNTc4Y2Y0NjJjOTU4MGJkOGQwMjExYjgzMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0xNzg0LDcgKzE3ODQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxh
dGZvcm0vTm90SW1wbGVtZW50ZWQuY3BwCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5jcHAK
ICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCi0gICAgcGxhdGZvcm0vUnVuTG9v
cC5jcHAKICAgICBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAgcGxh
dGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA2NzdkYTM3YjA2MDVjODZlMjZjNzE1
Y2ExYjM0ZWY3MWEyZmI0NmQxLi4wZGMxMWQ5MzBjY2Q1MDk5YzA3ZWI0MTY2ZWQyZTA1ZjM1N2E4
YTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYwMjksOCArNjAyOSw2IEBA
IHBsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJs
YWNrVHJlZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZlcnJlclBvbGljeS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5oIFwKLQlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVuTG9vcC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmgg
XApAQCAtNjE4NCw3ICs2MTgyLDYgQEAgcGxhdGZvcm1ndGtfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwIFwKLQlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TaGFyZWRCdWZmZXJHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtQmxhY2tCZXJyeS5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJy
eS5jbWFrZQppbmRleCA4Y2QyZmRjZjdlY2U3OTY5NDQ5MTAzNDVmOTU2ZDUzMjRhNzJlYjYxLi4x
YTA0NDUwZmM5OWVjZDhhN2VlNTNhMDhlNWM0Y2Y0ZDNkOGM2ZmRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCkBAIC0xMjAsNyArMTIwLDYgQEAgbGlzdChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9QbGF0Zm9ybVRvdWNoUG9p
bnRCbGFja0JlcnJ5LmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvUG9wdXBNZW51QmxhY2tC
ZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lQmxhY2tCZXJyeS5j
cHAKLSAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcAogICAgIHBs
YXRmb3JtL2JsYWNrYmVycnkvU1NMS2V5R2VuZXJhdG9yQmxhY2tCZXJyeS5jcHAKICAgICBwbGF0
Zm9ybS9ibGFja2JlcnJ5L1Njcm9sbGJhclRoZW1lQmxhY2tCZXJyeS5jcHAKICAgICBwbGF0Zm9y
bS9ibGFja2JlcnJ5L1NlYXJjaFBvcHVwTWVudUJsYWNrQmVycnkuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlCmluZGV4IDI3ZDJhNWIwMTZlZmNiYmQzMmIwMmViZTQ1YWRiZTUwZjA1NTE0NDUu
LjEyZDhlMGJhMDdkYzc5ZGYyYTA1YWExNzU2ODNmYmYzNzA5ODVlMmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtRWZsLmNtYWtlCkBAIC04Myw3ICs4Myw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAKICAgICBwbGF0Zm9ybS9l
ZmwvUGxhdGZvcm1XaGVlbEV2ZW50RWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9SZW5kZXJUaGVt
ZUVmbC5jcHAKLSAgICBwbGF0Zm9ybS9lZmwvUnVuTG9vcEVmbC5jcHAKICAgICBwbGF0Zm9ybS9l
ZmwvU2Nyb2xsYmFyRWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9TY3JvbGxiYXJUaGVtZUVmbC5j
cHAKICAgICBwbGF0Zm9ybS9lZmwvU2hhcmVkVGltZXJFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RL
LmNtYWtlCmluZGV4IDhiZTA3YTAxNTU5ODJiYTBmNzY0OGM0M2I0ZmQ5Y2JhMGJhZjFkMjkuLjE5
N2UxZDZjYjFkYWRkMjY3ZmMyZTIwOWZjMjdkZjIyMzIzMjZjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
R1RLLmNtYWtlCkBAIC0xNjQsNyArMTY0LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VT
CiAgICAgcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9S
ZW5kZXJUaGVtZUd0azIuY3BwCiAgICAgcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAK
LSAgICBwbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvU2Nyb2xs
Vmlld0d0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCiAgICAg
cGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21h
a2UKaW5kZXggNzUyZTg0MWU4YTcyYTI0OWYxMGVjNmFlMjhlMGNhM2I1MTg4YjFlNi4uYTBmYTAy
MjVhZmMyNzI4ZDlhNjg4ZWZkOTU3OTY2NmE4OWQ5YzliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4u
Y21ha2UKQEAgLTUyLDcgKzUyLDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vd2luL1BsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4v
UGxhdGZvcm1TY3JlZW5XaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAK
LSAgICBwbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vU1NMS2V5
R2VuZXJhdG9yV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9TY3JvbGxiYXJUaGVtZVdpbi5jcHAK
ICAgICBwbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCBmMGVlNDM0N2ZiZWVhNzRlZjYxZTlmZWUyNDIxZWY2NjI0OTM0NzIzLi44NDJjYTc2
YWZhZTE0NDU4YjIzOTE1ZmE3NjNjNGMxNDU2ZTY3MTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtMTExMCwxOCArMTExMCw2IEBAIF9fWk43V2ViQ29yZTdJbnRSZWN0OWludGVyc2VjdEVSS1Mw
XwogX19aTjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzEwTGF5b3V0UmVjdEUKIF9fWk43V2ViQ29y
ZTdJbnRSZWN0QzFFUktOU185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlN0ludFNpemVDMUVSSzZD
R1NpemUKLV9fWk43V2ViQ29yZTdSdW5Mb29wMTRydW5Gb3JEdXJhdGlvbkVkCi1fX1pON1dlYkNv
cmU3UnVuTG9vcDIxaW5pdGlhbGl6ZU1haW5SdW5Mb29wRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29w
M3J1bkV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDRtYWluRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29w
NHN0b3BFdgotX19aTjdXZWJDb3JlN1J1bkxvb3A2aXNNYWluRXYKLV9fWk43V2ViQ29yZTdSdW5M
b29wNndha2VVcEV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDdjdXJyZW50RXYKLV9fWk43V2ViQ29y
ZTdSdW5Mb29wOVRpbWVyQmFzZTRzdG9wRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wOVRpbWVyQmFz
ZTVzdGFydEVkYgotX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlQzJFUFMwXwotX19aTjdX
ZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlRDJFdgogX19aTjdXZWJDb3JlN1RleHRSdW4xOWFsbG93
c1JvdW5kaW5nSGFja3NFdgogX19aTjdXZWJDb3JlN1RleHRSdW4yMXNfYWxsb3dzUm91bmRpbmdI
YWNrc0UKIF9fWk43V2ViQ29yZTdUZXh0UnVuMjJzZXRBbGxvd3NSb3VuZGluZ0hhY2tzRWIKQEAg
LTE3NDUsNyArMTczMyw2IEBAIF9fWk5LN1dlYkNvcmU3RWxlbWVudDE5YmVmb3JlUHNldWRvRWxl
bWVudEV2CiBfX1pOSzdXZWJDb3JlN0ludFJlY3QxMGludGVyc2VjdHNFUktTMF8KIF9fWk5LN1dl
YkNvcmU3SW50UmVjdDhjb250YWluc0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0Y3Y2Q0dS
ZWN0RXYKLV9fWk5LN1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2U4aXNBY3RpdmVFdgogX19aTks3
V2ViQ29yZThEb2N1bWVudDExY29tcGxldGVVUkxFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJD
b3JlOERvY3VtZW50MTNheE9iamVjdENhY2hlRXYKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQzMWRp
c3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmdFUktOM1dURjZTdHJpbmdFCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCAwOWNlMDkwMmMx
YzE5NGI3YzBhODM2ZTg5ODQyYWNkMzNhNjQwOGEwLi4zMmMzYTRjNDRlNGMxNmMyMjU3YmQ5MWFm
Y2I2MWRkNTZmNjhjODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKQEAgLTcyOTQsNyArNzI5NCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxOb3RJbXBsZW1lbnRlZC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwbGF0Zm9ybVxQbGF0Zm9ybUV2ZW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFBsYXRmb3JtU3RyYXRlZ2llcy5jcHAiIC8+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxSdW5Mb29wLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxTY2hlbWVSZWdpc3RyeS5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxTY3JvbGxhYmxlQXJlYS5j
cHAiIC8+CkBAIC03MzUzLDcgKzczNTIsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cd2luXFBsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cUGxhdGZvcm1TY3JlZW5XaW4uY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFBvcHVwTWVudVdpbi5jcHAiIC8+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cUnVuTG9vcFdpbi5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cU2Nyb2xsYmFyVGhl
bWVTYWZhcmkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2lu
XFNjcm9sbGJhclRoZW1lV2luLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXHdpblxTZWFyY2hQb3B1cE1lbnVXaW4uY3BwIiAvPgpAQCAtMTg4ODgsNyArMTg4ODYs
NiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUG9wdXBNZW51U3R5bGUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFB1cmdlYWJsZUJ1ZmZl
ci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUmVmZXJyZXJQb2xp
Y3kuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFJ1bkxvb3AuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cU2NoZW1l
UmVnaXN0cnkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNjcm9s
bGFibGVBcmVhLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYzVkYmUzODA3ZGUxZmQ5ZjQwMTNjNzlmZDcyYmIyYmJjNGE2
YWVlYy4uNzkzZTg3MTc2MWNhMmM2ZWJhMTMyYzE4MTlmOWQyMGQ5YWIzMGU5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTIw
LDcgKzkyMCw2IEBACiAJCTI5N0JFM0Q3MTZDMDNDMEUwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyOUU0RDhERjE2QjA5NDBGMDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ci5oICovOyB9OwogCQkyOTdCRTNEODE2QzAzQ0NFMDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyTWFjLm1tICovOyB9OwogCQkyOTdCRTNEQTE2QzA0M0Q4MDAzMzE2QkQgLyogUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyOTdCRTNEOTE2QzA0M0Q4MDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplci5jcHAgKi87IH07Ci0JCTI5QTMwOUFDMTU2MUM5OUIwMEJCRDhFNSAvKiBSdW5Mb29w
Q0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlB
MzA5QUIxNTYxQzk5QjAwQkJEOEU1IC8qIFJ1bkxvb3BDRi5jcHAgKi87IH07CiAJCTI5QTgxMjJC
MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjBEMEZCQjlDMUQwMDUxMDI5MyAv
KiBBY2Nlc3NpYmlsaXR5VGFibGUuaCAqLzsgfTsKIAkJMjlBODEyMkMwRkJCOUMxRDAwNTEwMjkz
IC8qIEFjY2Vzc2liaWxpdHlMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOUE4MTIwRTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUxp
c3QuaCAqLzsgfTsKIAkJMjlBODEyMkUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlB
UklBR3JpZENlbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5QTgxMjEwMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxs
LmggKi87IH07CkBAIC00NzI3LDggKzQ3MjYsNiBAQAogCQlCQzA2RUUwNDBCRkQ3MUFBMDA4NTZF
OUQgLyogSlNIVE1MVGFibGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZFRTAyMEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJs
ZUVsZW1lbnQuY3BwICovOyB9OwogCQlCQzA2RUUwNTBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1M
VGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzA2RUUwMzBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50LmggKi87
IH07CiAJCUJDMDczQkFBMEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDczQkE5MEMzOTlC
MUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLzsgfTsKLQkJQkMwQjM1ODcxNEM0Rjk4
MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMwQjM1ODUxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwICov
OyB9OwotCQlCQzBCMzU4ODE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM1ODYxNEM0Rjk4MzAwNTVF
MjJBIC8qIFJ1bkxvb3AuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQzBCMzZBNDBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzZBMTBDRDNDNjdD
MDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi87IH07CiAJCUJDMEIzNkE1MENEM0M2N0MwMEFDN0VC
NSAvKiBDb25zb2xlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzBCMzZBMjBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMTBENzY3MTdEOEVFNkUwMDVF
MjYyNiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNGQjQ1RjQxN0Q4RTQ5NDAwNDQ0NDQ2IC8qIFJlbmRlckJsb2Nr
Rmxvdy5jcHAgKi87IH07CkBAIC03NTE1LDcgKzc1MTIsNiBAQAogCQkyOTgxQ0FBRjEzMTgyMkVD
MDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBWE9iamVj
dENhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjk4NTcwOTIxNUNDNTMy
RDAwNjM1NUNEIC8qIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjk4NTcwOTMxNUNDNTMyRDAwNjM1NUNEIC8qIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTI5QTMwOUFCMTU2MUM5OUIwMEJCRDhFNSAvKiBSdW5Mb29wQ0Yu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9vcENGLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMEQwRkJCOUMxRDAwNTEwMjkzIC8q
IEFjY2Vzc2liaWxpdHlUYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5VGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEy
MEUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlMaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTI5QTgxMjEwMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJ
QUdyaWRDZWxsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxp
dHlBUklBR3JpZENlbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNjg5LDgg
KzExNjg1LDYgQEAKIAkJQkMwNkYyNEMwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNzb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFNM
VFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJQkMwNkYyNEQwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNzb3JM
aWJ4c2x0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJDMDczQkE5MEMzOTlCMUYwMDBG
NTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZsb2F0Q29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzBC
MzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSdW5Mb29wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzBCMzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDMEIzNkEyMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDMEIzNkEzMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gQ29uc29sZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNDE4Nyw3ICsxNDE4MSw2IEBACiAJCQkJRTFBOEU1NjUxNzU1MkIyQTAwNzQ4OEU3IC8q
IENGVVJMRXh0cmFzLmggKi8sCiAJCQkJNTE2MDMwNkIwQ0M0MzYyMzAwQzhBQzI1IC8qIEZpbGVT
eXN0ZW1DRi5jcHAgKi8sCiAJCQkJMUE5ODk1NkEwQUE3OEY4MDAwNUVGNUVGIC8qIFVSTENGLmNw
cCAqLywKLQkJCQkyOUEzMDlBQjE1NjFDOTlCMDBCQkQ4RTUgLyogUnVuTG9vcENGLmNwcCAqLywK
IAkJCQk1MTJERDhFMjBEOTFFMkI0MDAwRjg5RUUgLyogU2hhcmVkQnVmZmVyQ0YuY3BwICovLAog
CQkJKTsKIAkJCXBhdGggPSBjZjsKQEAgLTIwMDkxLDggKzIwMDg0LDYgQEAKIAkJCQk3RTMzQ0Qw
MDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oICovLAogCQkJCUE3MkVBM0JBMTU4
NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oICovLAogCQkJCTk4MzFBRTQ5
MTU0MjI1QTIwMEZFMjY0NCAvKiBSZWZlcnJlclBvbGljeS5oICovLAotCQkJCUJDMEIzNTg1MTRD
NEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLywKLQkJCQlCQzBCMzU4NjE0QzRGOTgzMDA1
NUUyMkEgLyogUnVuTG9vcC5oICovLAogCQkJCTI5M0VBRTIwMTM1NkIzMkUwMDY3QUNGOSAvKiBS
dW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwICovLAogCQkJCTI5M0VBRTFFMTM1NkIyRkUwMDY3
QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLywKIAkJCQk1MTYyQzdGMjExRjc3
RUZBMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuY3BwICovLApAQCAtMjQyNTIsNyArMjQyNDMs
NiBAQAogCQkJCUE3M0Y5NUZGMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTc5QkFEQTIxNjFFN0YzRjAwQzJFNjUyIC8qIFJ1bGVGZWF0dXJlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNzlCQURBNDE2MUU3RjNGMDBDMkU2NTIgLyogUnVsZVNldC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQkMwQjM1ODgxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3Au
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTY5RDFGMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1l
X2FycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQyMTBEN0UyQjgyMDA3QzM5ODMgLyog
cnVudGltZV9tZXRob2QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTY5RDIzMEQ3RTJCODIwMDdD
Mzk4MyAvKiBydW50aW1lX29iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzQ3MSw4ICsyNzQ2
MSw2IEBACiAJCQkJQTc5QkFEQTExNjFFN0YzRjAwQzJFNjUyIC8qIFJ1bGVGZWF0dXJlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE3OUJBREEzMTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlU2V0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAyMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0
cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDMEIzNTg3MTRDNEY5ODMwMDU1RTIy
QSAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTI5QTMwOUFDMTU2MUM5OUIwMEJC
RDhFNSAvKiBSdW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MyQkREM0QxN0M3Rjk4
QzAwMzhGRjE1IC8qIEpTRE9NR2xvYmFsT2JqZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTU2OUQxRTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTU2OUQyMDBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5M
b29wLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwNTU0MTdjYzQzNmY4ZmFjZmVjYjYzNTM5OWYzZjYxOWIxMzNk
YjQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTMxICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9v
cC5oIgotCi0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9UaHJl
YWRTcGVjaWZpYy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBSdW5Mb29wKiBz
X21haW5SdW5Mb29wOwotCi0vLyBIZWxwZXIgY2xhc3MgZm9yIFRocmVhZFNwZWNpZmljRGF0YS4K
LWNsYXNzIFJ1bkxvb3A6OkhvbGRlciB7Ci1wdWJsaWM6Ci0gICAgSG9sZGVyKCkKLSAgICAgICAg
OiBtX3J1bkxvb3AoYWRvcHRSZWYobmV3IFJ1bkxvb3ApKQotICAgIHsKLSAgICB9Ci0KLSAgICBS
dW5Mb29wKiBydW5Mb29wKCkgY29uc3QgeyByZXR1cm4gbV9ydW5Mb29wLmdldCgpOyB9Ci0KLXBy
aXZhdGU6Ci0gICAgUmVmUHRyPFJ1bkxvb3A+IG1fcnVuTG9vcDsKLX07Ci0KLXZvaWQgUnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCkKLXsKLSAgICBpZiAoc19tYWluUnVuTG9vcCkKLSAg
ICAgICAgcmV0dXJuOwotICAgIHNfbWFpblJ1bkxvb3AgPSBSdW5Mb29wOjpjdXJyZW50KCk7Ci19
Ci0KLVJ1bkxvb3AqIFJ1bkxvb3A6OmN1cnJlbnQoKQotewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5Mb29wOjpIb2xkZXI+LCBydW5Mb29wSG9sZGVyLCAo
KSk7Ci0gICAgcmV0dXJuIHJ1bkxvb3BIb2xkZXItPnJ1bkxvb3AoKTsKLX0KLQotUnVuTG9vcCog
UnVuTG9vcDo6bWFpbigpCi17Ci0gICAgQVNTRVJUKHNfbWFpblJ1bkxvb3ApOwotICAgIHJldHVy
biBzX21haW5SdW5Mb29wOwotfQotCi1ib29sIFJ1bkxvb3A6OmlzTWFpbigpCi17Ci0gICAgQVNT
RVJUKHNfbWFpblJ1bkxvb3ApOwotICAgIHJldHVybiBzX21haW5SdW5Mb29wID09IFJ1bkxvb3A6
OmN1cnJlbnQoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCi17Ci0gICAgLy8g
SXQgaXMgaW1wb3J0YW50IHRvIGhhbmRsZSB0aGUgZnVuY3Rpb25zIGluIHRoZSBxdWV1ZSBvbmUg
YXQgYSB0aW1lIGJlY2F1c2Ugd2hpbGUgaW5zaWRlIG9uZSBvZiB0aGVzZQotICAgIC8vIGZ1bmN0
aW9ucyB3ZSBtaWdodCByZS1lbnRlciBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGFuZCB3ZSBuZWVk
IHRvIGJlIGFibGUgdG8gcGljayB1cCB3aGVyZSB3ZSBsZWZ0IG9mZi4KLSAgICAvLyBTZWUgaHR0
cDovL3dlYmtpdC5vcmcvYi84OTU5MCBmb3IgbW9yZSBkaXNjdXNzaW9uLgotCi0gICAgLy8gT25l
IHBvc3NpYmxlIHNjZW5hcmlvIHdoZW4gaGFuZGxpbmcgdGhlIGZ1bmN0aW9uIHF1ZXVlIGlzIGFz
IGZvbGxvd3M6Ci0gICAgLy8gLSBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGlzIGludm9rZWQgd2l0
aCAxIGZ1bmN0aW9uIG9uIHRoZSBxdWV1ZQotICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBmdW5jdGlv
biByZXN1bHRzIGluIDEgbW9yZSBmdW5jdGlvbiBiZWluZyBlbnF1ZXVlZAotICAgIC8vIC0gSGFu
ZGxpbmcgdGhhdCBvbmUgcmVzdWx0cyBpbiB5ZXQgYW5vdGhlciBiZWluZyBlbnF1ZXVlZAotICAg
IC8vIC0gQW5kIHNvIG9uCi0gICAgLy8KLSAgICAvLyBJbiB0aGlzIHNpdHVhdGlvbiBvbmUgaW52
b2NhdGlvbiBvZiBwZXJmb3JtV29yaygpIG5ldmVyIHJldHVybnMgc28gYWxsIG90aGVyIGV2ZW50
IHNvdXJjZXMgYXJlIGJsb2NrZWQuCi0gICAgLy8gQnkgb25seSBoYW5kbGluZyB1cCB0byB0aGUg
bnVtYmVyIG9mIGZ1bmN0aW9ucyB0aGF0IHdlcmUgaW4gdGhlIHF1ZXVlIHdoZW4gcGVyZm9ybVdv
cmsoKSBpcyBjYWxsZWQKLSAgICAvLyB3ZSBndWFyYW50ZWUgdG8gb2NjYXNpb25hbGx5IHJldHVy
biBmcm9tIHRoZSBydW4gbG9vcCBzbyBvdGhlciBldmVudCBzb3VyY2VzIHdpbGwgYmUgYWxsb3dl
ZCB0byBzcGluLgotCi0gICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uOwotICAgIHNp
emVfdCBmdW5jdGlvbnNUb0hhbmRsZSA9IDA7Ci0KLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKLSAgICAgICAgZnVuY3Rpb25zVG9IYW5kbGUg
PSBtX2Z1bmN0aW9uUXVldWUuc2l6ZSgpOwotCi0gICAgICAgIGlmIChtX2Z1bmN0aW9uUXVldWUu
aXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZ1bmN0aW9uID0gbV9m
dW5jdGlvblF1ZXVlLnRha2VGaXJzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uKCk7Ci0KLSAg
ICBmb3IgKHNpemVfdCBmdW5jdGlvbnNIYW5kbGVkID0gMTsgZnVuY3Rpb25zSGFuZGxlZCA8IGZ1
bmN0aW9uc1RvSGFuZGxlOyArK2Z1bmN0aW9uc0hhbmRsZWQpIHsKLSAgICAgICAgewotICAgICAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotCi0gICAgICAg
ICAgICAvLyBFdmVuIGlmIHdlIHN0YXJ0IG9mZiB3aXRoIE4gZnVuY3Rpb25zIHRvIGhhbmRsZSBh
bmQgd2UndmUgb25seSBoYW5kbGVkIGxlc3MgdGhhbiBOIGZ1bmN0aW9ucywgdGhlIHF1ZXVlCi0g
ICAgICAgICAgICAvLyBzdGlsbCBtaWdodCBiZSBlbXB0eSBiZWNhdXNlIHRob3NlIGZ1bmN0aW9u
cyBtaWdodCBoYXZlIGJlZW4gaGFuZGxlZCBpbiBhbiBpbm5lciBSdW5Mb29wOjpwZXJmb3JtV29y
aygpLgotICAgICAgICAgICAgLy8gSW4gdGhhdCBjYXNlIHdlIHNob3VsZCBiYWlsIGhlcmUuCi0g
ICAgICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAg
ICBicmVhazsKLQotICAgICAgICAgICAgZnVuY3Rpb24gPSBtX2Z1bmN0aW9uUXVldWUudGFrZUZp
cnN0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9uKCk7Ci0gICAgfQot
fQotCi12b2lkIFJ1bkxvb3A6OmRpc3BhdGNoKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rp
b24pCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAg
IG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQoc3RkOjptb3ZlKGZ1bmN0aW9uKSk7Ci0KLSAgICB3YWtl
VXAoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9v
cC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzkzNDkwYjU2NWYwZDU2NzM5NTBi
ZTgwMmZmNDAyMzM1ZTlhZWU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaAorKysgL2Rldi9udWxs
CkBAIC0xLDE3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqIFBvcnRpb25zIENvcHlyaWdodCAo
YykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBSdW5Mb29wX2gKLSNkZWZpbmUgUnVuTG9vcF9oCi0KLSNpbmNsdWRl
IDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbkRpc3BhdGNoZXIuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KLQotI2lmIFVTRShHTElCKQotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dSZWZQdHIuaD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oRUZMKQotI2luY2x1ZGUgPEVjb3Jl
Lmg+Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSdW5Mb29wIDogcHVi
bGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7Ci1wdWJsaWM6Ci0gICAgLy8gTXVzdCBiZSBjYWxsZWQg
ZnJvbSB0aGUgbWFpbiB0aHJlYWQgKGV4Y2VwdCBmb3IgdGhlIE1hYyBwbGF0Zm9ybSwgd2hlcmUg
aXQKLSAgICAvLyBjYW4gYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZCkuCi0gICAgc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7Ci0KLSAgICBzdGF0aWMgUnVuTG9vcCogY3VycmVu
dCgpOwotICAgIHN0YXRpYyBSdW5Mb29wKiBtYWluKCk7Ci0gICAgc3RhdGljIGJvb2wgaXNNYWlu
KCk7Ci0gICAgflJ1bkxvb3AoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaChzdGQ6OmZ1
bmN0aW9uPHZvaWQgKCk+KSBPVkVSUklERTsKLQotICAgIHN0YXRpYyB2b2lkIHJ1bigpOwotICAg
IHZvaWQgc3RvcCgpOwotICAgIHZvaWQgd2FrZVVwKCk7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0g
ICAgdm9pZCBydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOwotI2VuZGlmCi0gICAgCi0g
ICAgY2xhc3MgVGltZXJCYXNlIHsKLSAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3A7Ci0gICAg
cHVibGljOgotICAgICAgICBleHBsaWNpdCBUaW1lckJhc2UoUnVuTG9vcCopOwotICAgICAgICB2
aXJ0dWFsIH5UaW1lckJhc2UoKTsKLQotICAgICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJs
ZSByZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1ZSk7IH0KLSAgICAg
ICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0KGludGVydmFsLCBm
YWxzZSk7IH0KLQotICAgICAgICB2b2lkIHN0b3AoKTsKLSAgICAgICAgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0OwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKLQotICAgIHByaXZh
dGU6Ci0gICAgICAgIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KTsKLQotICAgICAgICBSdW5Mb29wKiBtX3J1bkxvb3A7Ci0KLSNpZiBQTEFURk9STShXSU4p
Ci0gICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90IElEKTsK
LSAgICAgICAgdWludDY0X3QgbV9JRDsKLSAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOwotI2Vs
aWYgUExBVEZPUk0oTUFDKQotICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9v
cFRpbWVyUmVmLCB2b2lkKik7Ci0gICAgICAgIFJldGFpblB0cjxDRlJ1bkxvb3BUaW1lclJlZj4g
bV90aW1lcjsKLSNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICAgICAgc3RhdGljIGJvb2wgdGltZXJG
aXJlZCh2b2lkKiBkYXRhKTsKLSAgICAgICAgRWNvcmVfVGltZXIqIG1fdGltZXI7Ci0gICAgICAg
IGJvb2wgbV9pc1JlcGVhdGluZzsKLSNlbGlmIFVTRShHTElCKQotICAgICAgICBzdGF0aWMgZ2Jv
b2xlYW4gdGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOwotICAgICAgICBn
Ym9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRpbmc7IH0KLSAg
ICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7Ci0gICAgICAgIEdSZWZQdHI8R1NvdXJjZT4g
bV90aW1lclNvdXJjZTsKLSAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsKLSNlbmRpZgot
ICAgIH07Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENsYXNzPgotICAgIGNs
YXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICB0eXBl
ZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlvbikoKTsKLQotICAg
ICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xhc3MqIG8sIFRpbWVyRmly
ZWRGdW5jdGlvbiBmKQotICAgICAgICAgICAgOiBUaW1lckJhc2UocnVuTG9vcCkKLSAgICAgICAg
ICAgICwgbV9vYmplY3QobykKLSAgICAgICAgICAgICwgbV9mdW5jdGlvbihmKQotICAgICAgICB7
Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgp
IHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQotCi0gICAgICAgIFRpbWVyRmlyZWRDbGFz
cyogbV9vYmplY3Q7Ci0gICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBtX2Z1bmN0aW9uOwotICAg
IH07Ci0KLSAgICBjbGFzcyBIb2xkZXI7Ci0KLXByaXZhdGU6Ci0gICAgUnVuTG9vcCgpOwotCi0g
ICAgdm9pZCBwZXJmb3JtV29yaygpOwotCi0gICAgTXV0ZXggbV9mdW5jdGlvblF1ZXVlTG9jazsK
LSAgICBEZXF1ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PiBtX2Z1bmN0aW9uUXVldWU7Ci0KLSNp
ZiBQTEFURk9STShXSU4pCi0gICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdp
bmRvd0NsYXNzKCk7Ci0gICAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcFduZFByb2Mo
SFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOwotICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhX
bmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7Ci0gICAgSFdO
RCBtX3J1bkxvb3BNZXNzYWdlV2luZG93OwotCi0gICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90
LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKLSAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKLSNl
bGlmIFBMQVRGT1JNKE1BQykKLSAgICBzdGF0aWMgdm9pZCBwZXJmb3JtV29yayh2b2lkKik7Ci0g
ICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4gbV9ydW5Mb29wOwotICAgIFJldGFpblB0cjxDRlJ1
bkxvb3BTb3VyY2VSZWY+IG1fcnVuTG9vcFNvdXJjZTsKLSAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7
Ci0jZWxpZiBQTEFURk9STShFRkwpCi0gICAgYm9vbCBtX2luaXRFZmw7Ci0KLSAgICBNdXRleCBt
X3BpcGVMb2NrOwotICAgIE93blB0cjxFY29yZV9QaXBlPiBtX3BpcGU7Ci0KLSAgICBNdXRleCBt
X3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jazsKLSAgICBib29sIG1fd2FrZVVwRXZlbnRSZXF1ZXN0
ZWQ7Ci0KLSAgICBzdGF0aWMgdm9pZCB3YWtlVXBFdmVudCh2b2lkKiBkYXRhLCB2b2lkKiwgdW5z
aWduZWQgaW50KTsKLSNlbGlmIFVTRShHTElCKQotcHVibGljOgotICAgIHN0YXRpYyBnYm9vbGVh
biBxdWV1ZVdvcmsoUnVuTG9vcCopOwotICAgIEdNYWluTG9vcCogaW5uZXJtb3N0TG9vcCgpOwot
ICAgIHZvaWQgcHVzaE5lc3RlZE1haW5Mb29wKEdNYWluTG9vcCopOwotICAgIHZvaWQgcG9wTmVz
dGVkTWFpbkxvb3AoKTsKLXByaXZhdGU6Ci0gICAgR1JlZlB0cjxHTWFpbkNvbnRleHQ+IG1fcnVu
TG9vcENvbnRleHQ7Ci0gICAgVmVjdG9yPEdSZWZQdHI8R01haW5Mb29wPj4gbV9ydW5Mb29wTWFp
bkxvb3BzOwotI2VuZGlmCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVy
cnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2ti
ZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGU4MjA3ODhkNmFiYjA5MzgyZTllMThjY2VlZGU2NzUzMTExMTc1NjMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0OCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0
ZW1zLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUnVuTG9vcDo6UnVuTG9vcCgpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9SdW5Mb29wQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2YvUnVuTG9vcENGLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjYxOGUwMjg3OTIyNDgzNzRmYTIyYmVjODAxNjNhOTcxNWI2Nzk1Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
Zi9SdW5Mb29wQ0YuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTI5ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0j
aW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KLSNpbmNsdWRlIDxkaXNw
YXRjaC9kaXNwYXRjaC5oPgotI2luY2x1ZGUgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKHZvaWQqIGNvbnRl
eHQpCi17Ci0gICAgQXV0b2RyYWluZWRQb29sIHBvb2w7Ci0gICAgc3RhdGljX2Nhc3Q8UnVuTG9v
cCo+KGNvbnRleHQpLT5wZXJmb3JtV29yaygpOwotfQotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLSAg
ICA6IG1fcnVuTG9vcChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpCi0gICAgLCBtX25lc3RpbmdMZXZl
bCgwKQotewotICAgIENGUnVuTG9vcFNvdXJjZUNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsKLSAgICBtX3J1bkxvb3BTb3VyY2Ug
PSBhZG9wdENGKENGUnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAm
Y29udGV4dCkpOwotICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1fcnVu
TG9vcFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLX0KLQotUnVuTG9vcDo6
flJ1bkxvb3AoKQotewotICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRhdGUobV9ydW5Mb29wU291
cmNlLmdldCgpKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVy
YXRpb24pCi17Ci0gICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwg
ZHVyYXRpb24sIHRydWUpOwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgQ0ZS
dW5Mb29wU291cmNlU2lnbmFsKG1fcnVuTG9vcFNvdXJjZS5nZXQoKSk7Ci0gICAgQ0ZSdW5Mb29w
V2FrZVVwKG1fcnVuTG9vcC5nZXQoKSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAg
ICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsKys7Ci0gICAgCi0gICAgewotICAgICAgICBBdXRv
ZHJhaW5lZFBvb2wgcG9vbDsKLSAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7Ci0gICAgfQotICAgIAot
ICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwtLTsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9w
KCkKLXsKLSAgICBBU1NFUlQobV9ydW5Mb29wID09IENGUnVuTG9vcEdldEN1cnJlbnQoKSk7Ci0g
ICAgQ0ZSdW5Mb29wU3RvcChtX3J1bkxvb3AuZ2V0KCkpOwotfQotCi0vLyBSdW5Mb29wOjpUaW1l
cgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJl
Ziwgdm9pZCogY29udGV4dCkKLXsKLSAgICBUaW1lckJhc2UqIHRpbWVyID0gc3RhdGljX2Nhc3Q8
VGltZXJCYXNlKj4oY29udGV4dCk7Ci0KLSAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKLSAgICB0
aW1lci0+ZmlyZWQoKTsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9v
cCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29wKQotewotfQotCi1SdW5Mb29wOjpU
aW1lckJhc2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29w
OjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkK
LXsKLSAgICBpZiAobV90aW1lcikKLSAgICAgICAgc3RvcCgpOwotICAgIAotICAgIENGUnVuTG9v
cFRpbWVyQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwIH07Ci0gICAgQ0ZUaW1l
SW50ZXJ2YWwgcmVwZWF0SW50ZXJ2YWwgPSByZXBlYXQgPyBuZXh0RmlyZUludGVydmFsIDogMDsK
LSAgICBtX3RpbWVyID0gYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIG5leHRGaXJlSW50ZXJ2YWwsIHJl
cGVhdEludGVydmFsLCAwLCAwLCB0aW1lckZpcmVkLCAmY29udGV4dCkpOwotICAgIENGUnVuTG9v
cEFkZFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wLmdldCgpLCBtX3RpbWVyLmdldCgpLCBrQ0ZS
dW5Mb29wQ29tbW9uTW9kZXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgp
Ci17Ci0gICAgaWYgKCFtX3RpbWVyKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgQ0ZSdW5M
b29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIuZ2V0KCkpOwotICAgIG1fdGltZXIgPSBudWxscHRy
OwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAotewotICAg
IHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVyLmdldCgpKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1J1bkxvb3BFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1J1bkxvb3BFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTJkY2RmZTcy
MzFlZDUyMTJiZjBiNTk2YTRmNzJhNzQ2OTI1ODYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SdW5Mb29w
RWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNp
bmNsdWRlIDxFY29yZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgotCi1zdGF0aWMgY29uc3QgaW50IGVjb3JlUGlwZU1lc3NhZ2VTaXplID0g
MTsKLXN0YXRpYyBjb25zdCBjaGFyIHdha3VwRWNvcmVQaXBlTWVzc2FnZVtdID0gIlciOwotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotICAgIDogbV9pbml0RWZs
KGZhbHNlKQotICAgICwgbV93YWtlVXBFdmVudFJlcXVlc3RlZChmYWxzZSkKLXsKLSAgICBtX3Bp
cGUgPSBhZG9wdFB0cihlY29yZV9waXBlX2FkZCh3YWtlVXBFdmVudCwgdGhpcykpOwotICAgIG1f
aW5pdEVmbCA9IHRydWU7Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLX0KLQotdm9pZCBS
dW5Mb29wOjpydW4oKQotewotICAgIGVjb3JlX21haW5fbG9vcF9iZWdpbigpOwotfQotCi12b2lk
IFJ1bkxvb3A6OnN0b3AoKQotewotICAgIGVjb3JlX21haW5fbG9vcF9xdWl0KCk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6d2FrZVVwRXZlbnQodm9pZCogZGF0YSwgdm9pZCosIHVuc2lnbmVkIGludCkK
LXsKLSAgICBSdW5Mb29wKiBsb29wID0gc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGRhdGEpOwotCi0g
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobG9vcC0+bV93YWtlVXBFdmVudFJlcXVl
c3RlZExvY2spOwotICAgICAgICBsb29wLT5tX3dha2VVcEV2ZW50UmVxdWVzdGVkID0gZmFsc2U7
Ci0gICAgfQotCi0gICAgbG9vcC0+cGVyZm9ybVdvcmsoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3
YWtlVXAoKQotewotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fd2FrZVVwRXZl
bnRSZXF1ZXN0ZWRMb2NrKTsKLSAgICAgICAgaWYgKG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQgPSB0cnVl
OwotICAgIH0KLQotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGlwZUxvY2sp
OwotICAgICAgICBlY29yZV9waXBlX3dyaXRlKG1fcGlwZS5nZXQoKSwgd2FrdXBFY29yZVBpcGVN
ZXNzYWdlLCBlY29yZVBpcGVNZXNzYWdlU2l6ZSk7Ci0gICAgfQotfQotCi1SdW5Mb29wOjpUaW1l
ckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKikKLSAgICA6IG1fdGltZXIoMCkKLSAgICAsIG1faXNS
ZXBlYXRpbmcoZmFsc2UpCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgp
Ci17Ci0gICAgc3RvcCgpOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJl
ZCh2b2lkKiBkYXRhKQotewotICAgIFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIgPSBzdGF0aWNf
Y2FzdDxSdW5Mb29wOjpUaW1lckJhc2UqPihkYXRhKTsKLQotICAgIGlmICghdGltZXItPm1faXNS
ZXBlYXRpbmcpCi0gICAgICAgIHRpbWVyLT5tX3RpbWVyID0gMDsKLQotICAgIHRpbWVyLT5maXJl
ZCgpOwotCi0gICAgcmV0dXJuIHRpbWVyLT5tX2lzUmVwZWF0aW5nID8gRUNPUkVfQ0FMTEJBQ0tf
UkVORVcgOiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJC
YXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0gICAg
aWYgKGlzQWN0aXZlKCkpCi0gICAgICAgIHN0b3AoKTsKLQotICAgIG1faXNSZXBlYXRpbmcgPSBy
ZXBlYXQ7Ci0gICAgQVNTRVJUKCFtX3RpbWVyKTsKLSAgICBtX3RpbWVyID0gZWNvcmVfdGltZXJf
YWRkKG5leHRGaXJlSW50ZXJ2YWwsIHJlaW50ZXJwcmV0X2Nhc3Q8RWNvcmVfVGFza19DYj4odGlt
ZXJGaXJlZCksIHRoaXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17
Ci0gICAgaWYgKG1fdGltZXIpIHsKLSAgICAgICAgZWNvcmVfdGltZXJfZGVsKG1fdGltZXIpOwot
ICAgICAgICBtX3RpbWVyID0gMDsKLSAgICB9Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNl
Ojppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIChtX3RpbWVyKSA/IHRydWUgOiBmYWxz
ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGI0NTZkNGY1ZmVhZWIwY2Y2
NGVjZmViNzY5MDA0YmU1ZTc3NzhhYWIuLmRkOWFmMjhhNzk1ZjIxNDJlY2RmNzlmY2VjMGY1ZGRi
YjE5MjI1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJHcmFwaGljc0xheWVy
VHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCi0j
aW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlLmgiCiAjaW5j
bHVkZSAiVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlv
bk1hdHJpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZS5oCmluZGV4IDAyNTA1ZDBiYTdkNjI4OWVlN2FmNjg2NzAyMjJlYmZhNmI0NTk1
YzguLjA3Y2Q1NjM0ZmNjN2Q5YTUxMTdlYWFiNzU2ZDllYzhlZTY5YWVmODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKQEAgLTMw
LDcgKzMwLDYgQEAKICNpbmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNs
dWRlICJUZXh0dXJlTWFwcGVyLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9y
ZS5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJGUFNDb3VudGVyLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZlMzI5MmQ0ZTk0OGIyOGJkYjhjMDg1YzVhNTQ1YWE4NjBmNjFkMjIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1J1bkxvb3BHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTcxICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSA8Z2RrL2dkay5oPgotI2luY2x1ZGUgPGdsaWIu
aD4KLQotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotUnVuTG9vcDo6UnVuTG9vcCgpCi17Ci0gICAgLy8gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgp
IGRvZXNuJ3QgYWRkIGFuIGV4dHJhIHJlZmVyZW5jZS4KLSAgICBtX3J1bkxvb3BDb250ZXh0ID0g
aXNNYWluVGhyZWFkKCkgPyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgOiBhZG9wdEdSZWYoZ19t
YWluX2NvbnRleHRfbmV3KCkpOwotICAgIEFTU0VSVChtX3J1bkxvb3BDb250ZXh0KTsKLSAgICBH
UmVmUHRyPEdNYWluTG9vcD4gaW5uZXJtb3N0TG9vcCA9IGFkb3B0R1JlZihnX21haW5fbG9vcF9u
ZXcobV9ydW5Mb29wQ29udGV4dC5nZXQoKSwgRkFMU0UpKTsKLSAgICBBU1NFUlQoaW5uZXJtb3N0
TG9vcCk7Ci0gICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChpbm5lcm1vc3RMb29wKTsKLX0K
LQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIGZvciAoaW50IGkgPSBtX3J1bkxvb3BNYWlu
TG9vcHMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgaWYgKCFnX21haW5fbG9v
cF9pc19ydW5uaW5nKG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSkpCi0gICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluTG9vcHNbaV0u
Z2V0KCkpOwotICAgIH0KLX0KLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIFJ1bkxvb3Aq
IG1haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOwotICAgIEdNYWluTG9vcCogaW5uZXJt
b3N0TG9vcCA9IG1haW5SdW5Mb29wLT5pbm5lcm1vc3RMb29wKCk7Ci0gICAgaWYgKCFnX21haW5f
bG9vcF9pc19ydW5uaW5nKGlubmVybW9zdExvb3ApKSB7Ci0gICAgICAgIGdfbWFpbl9sb29wX3J1
bihpbm5lcm1vc3RMb29wKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIENyZWF0
ZSBhbmQgcnVuIGEgbmVzdGVkIGxvb3AgaWYgdGhlIGlubmVybW9zdCBvbmUgd2FzIGFscmVhZHkg
cnVubmluZy4KLSAgICBHTWFpbkxvb3AqIG5lc3RlZE1haW5Mb29wID0gZ19tYWluX2xvb3BfbmV3
KDAsIEZBTFNFKTsKLSAgICBtYWluUnVuTG9vcC0+cHVzaE5lc3RlZE1haW5Mb29wKG5lc3RlZE1h
aW5Mb29wKTsKLSAgICBnX21haW5fbG9vcF9ydW4obmVzdGVkTWFpbkxvb3ApOwotICAgIG1haW5S
dW5Mb29wLT5wb3BOZXN0ZWRNYWluTG9vcCgpOwotfQotCi1HTWFpbkxvb3AqIFJ1bkxvb3A6Omlu
bmVybW9zdExvb3AoKQotewotICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBh
bHdheXMgYmUgdGhlcmUuCi0gICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgp
KTsKLSAgICByZXR1cm4gbV9ydW5Mb29wTWFpbkxvb3BzWzBdLmdldCgpOwotfQotCi12b2lkIFJ1
bkxvb3A6OnB1c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxvb3AqIG5lc3RlZExvb3ApCi17Ci0gICAg
Ly8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAgICBB
U1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwotICAgIG1fcnVuTG9vcE1haW5M
b29wcy5hcHBlbmQoYWRvcHRHUmVmKG5lc3RlZExvb3ApKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpw
b3BOZXN0ZWRNYWluTG9vcCgpCi17Ci0gICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hv
dWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0Vt
cHR5KCkpOwotICAgIG1fcnVuTG9vcE1haW5Mb29wcy5yZW1vdmVMYXN0KCk7Ci19Ci0KLXZvaWQg
UnVuTG9vcDo6c3RvcCgpCi17Ci0gICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxk
IGFsd2F5cyBiZSB0aGVyZS4KLSAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5
KCkpOwotICAgIEdSZWZQdHI8R01haW5Mb29wPiBsYXN0TWFpbkxvb3AgPSBtX3J1bkxvb3BNYWlu
TG9vcHMubGFzdCgpOwotICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKGxhc3RNYWluTG9v
cC5nZXQoKSkpCi0gICAgICAgIGdfbWFpbl9sb29wX3F1aXQobGFzdE1haW5Mb29wLmdldCgpKTsK
LX0KLQotZ2Jvb2xlYW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3ApCi17Ci0g
ICAgcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsKLSAgICByZXR1cm4gRkFMU0U7Ci19Ci0KLXZvaWQg
UnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFkb3B0
R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKLSAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkoc291
cmNlLmdldCgpLCBHX1BSSU9SSVRZX0RFRkFVTFQpOwotICAgIGdfc291cmNlX3NldF9jYWxsYmFj
ayhzb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpx
dWV1ZVdvcmspLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgpLCBt
X3J1bkxvb3BDb250ZXh0LmdldCgpKTsKLQotICAgIGdfbWFpbl9jb250ZXh0X3dha2V1cChtX3J1
bkxvb3BDb250ZXh0LmdldCgpKTsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2Uo
UnVuTG9vcCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgICwgbV90aW1l
clNvdXJjZSgwKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQotewot
ICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3Vy
Y2UoKQotewotICAgIG1fdGltZXJTb3VyY2UgPSAwOwotfQotCi1nYm9vbGVhbiBSdW5Mb29wOjpU
aW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRpbWVyKQot
ewotICAgIEdTb3VyY2UqIGN1cnJlbnRUaW1lclNvdXJjZSA9IHRpbWVyLT5tX3RpbWVyU291cmNl
LmdldCgpOwotICAgIGJvb2wgaXNSZXBlYXRpbmcgPSB0aW1lci0+aXNSZXBlYXRpbmcoKTsKLSAg
ICAvLyBUaGlzIGNhbiBjaGFuZ2UgdGhlIHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5nIGEgbmV3IHRp
bWVyIHdpdGhpbiB0aGUgY2FsbGJhY2suCi0gICAgaWYgKCFpc1JlcGVhdGluZyAmJiBjdXJyZW50
VGltZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCi0gICAgICAgIHRpbWVy
LT5jbGVhclRpbWVyU291cmNlKCk7Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsKLSAgICByZXR1cm4g
aXNSZXBlYXRpbmc7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUg
ZmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBpZiAobV90aW1lclNvdXJjZSkKLSAg
ICAgICAgc3RvcCgpOwotCi0gICAgbV90aW1lclNvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRf
c291cmNlX25ldyhzdGF0aWNfY2FzdDxndWludD4oZmlyZUludGVydmFsICogMTAwMCkpKTsKLSAg
ICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3Rp
bWVyU291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9h
dHRhY2gobV90aW1lclNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BDb250ZXh0Lmdl
dCgpKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIGlmICgh
bV90aW1lclNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ19zb3VyY2VfZGVzdHJveSht
X3RpbWVyU291cmNlLmdldCgpKTsKLSAgICBjbGVhclRpbWVyU291cmNlKCk7Ci19Ci0KLWJvb2wg
UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGlt
ZXJTb3VyY2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2Y2OWMwNjQ5YzczZDI1NjhhMTFjNzdlODM4NjRjOTIyNzQ4MGIxYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUnVuTG9vcFdpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNzkgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJhcy5oPgot
Ci11c2luZyBuYW1lc3BhY2Ugc3RkOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBj
b25zdCBVSU5UIFBlcmZvcm1Xb3JrTWVzc2FnZSA9IFdNX1VTRVIgKyAxOwotc3RhdGljIGNvbnN0
IExQV1NUUiBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdl
V2luZG93IjsKLQotTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05E
IGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsKLSAg
ICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9IHN0YXRpY19jYXN0PFJ1bkxvb3AqPihnZXRXaW5kb3dQ
b2ludGVyKGhXbmQsIDApKSkKLSAgICAgICAgcmV0dXJuIHJ1bkxvb3AtPnduZFByb2MoaFduZCwg
bWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwotCi0gICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JFQVRF
KSB7Ci0gICAgICAgIExQQ1JFQVRFU1RSVUNUIGNyZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8TFBDUkVBVEVTVFJVQ1Q+KGxQYXJhbSk7Ci0KLSAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBS
dW5Mb29wIHdpdGggdGhlIHdpbmRvdy4KLSAgICAgICAgc2V0V2luZG93UG9pbnRlcihoV25kLCAw
LCBjcmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFyYW1zKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAg
fQotCi0gICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQ
YXJhbSk7Ci19Ci0KLUxSRVNVTFQgUnVuTG9vcDo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsKLSAgICBzd2l0Y2ggKG1lc3Nh
Z2UpIHsKLSAgICBjYXNlIFBlcmZvcm1Xb3JrTWVzc2FnZToKLSAgICAgICAgcGVyZm9ybVdvcmso
KTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2FzZSBXTV9USU1FUjoKLSAgICAgICAgUnVuTG9v
cDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHRoaXMsIHdQYXJhbSk7Ci0gICAgICAgIHJldHVybiAw
OwotICAgIH0KLQotICAgIHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1Bh
cmFtLCBsUGFyYW0pOwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgTVNHIG1lc3Nh
Z2U7Ci0gICAgd2hpbGUgKEJPT0wgcmVzdWx0ID0gOjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAwLCAw
LCAwKSkgewotICAgICAgICBpZiAocmVzdWx0ID09IC0xKQotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbWVzc2FnZSk7Ci0gICAgICAgIDo6RGlzcGF0Y2hN
ZXNzYWdlKCZtZXNzYWdlKTsKLSAgICB9Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0g
ICAgOjpQb3N0UXVpdE1lc3NhZ2UoMCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6cmVnaXN0ZXJSdW5M
b29wTWVzc2FnZVdpbmRvd0NsYXNzKCkKLXsKLSAgICAvLyBGSVhNRTogVGhpcyByZWFsbHkgb25s
eSBuZWVkcyB0byBiZSBjYWxsZWQgb25jZS4KLQotICAgIFdORENMQVNTIHdpbmRvd0NsYXNzID0g
eyAwIH07Ci0gICAgd2luZG93Q2xhc3MubHBmblduZFByb2MgICAgID0gUnVuTG9vcDo6UnVuTG9v
cFduZFByb2M7Ci0gICAgd2luZG93Q2xhc3MuY2JXbmRFeHRyYSAgICAgID0gc2l6ZW9mKFJ1bkxv
b3AqKTsKLSAgICB3aW5kb3dDbGFzcy5scHN6Q2xhc3NOYW1lICAgPSBrUnVuTG9vcE1lc3NhZ2VX
aW5kb3dDbGFzc05hbWU7Ci0KLSAgICByZXR1cm4gISE6OlJlZ2lzdGVyQ2xhc3MoJndpbmRvd0Ns
YXNzKTsKLX0KLQotUnVuTG9vcDo6UnVuTG9vcCgpCi17Ci0gICAgcmVnaXN0ZXJSdW5Mb29wTWVz
c2FnZVdpbmRvd0NsYXNzKCk7Ci0KLSAgICBtX3J1bkxvb3BNZXNzYWdlV2luZG93ID0gOjpDcmVh
dGVXaW5kb3coa1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lLCAwLCAwLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDV19VU0VERUZBVUxULCAwLCBDV19V
U0VERUZBVUxULCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBIV05EX01FU1NBR0UsIDAsIDAsIHRoaXMpOwotICAgIEFTU0VSVCg6OklzV2luZG93KG1fcnVu
TG9vcE1lc3NhZ2VXaW5kb3cpKTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIC8v
IEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBoZXJlLgotfQotCi12b2lkIFJ1
bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgLy8gRklYTUU6IE5vIG5lZWQgdG8gd2FrZSB1cCB0aGUg
cnVuIGxvb3AgaWYgd2UndmUgYWxyZWFkeSBjYWxsZWQgZGlzcGF0Y2gKLSAgICAvLyBiZWZvcmUg
dGhlIHJ1biBsb29wIGhhcyBoYWQgdGhlIHRpbWUgdG8gcmVzcG9uZC4KLSAgICA6OlBvc3RNZXNz
YWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRlcnBy
ZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAwKTsKLX0KLQotLy8gUnVuTG9vcDo6VGltZXIKLQotdm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgdWludDY0
X3QgSUQpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZmluZChJRCk7Ci0gICAgaWYgKGl0ID09IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVu
ZCgpKSB7Ci0gICAgICAgIC8vIFRoZSB0aW1lciBtdXN0IGhhdmUgYmVlbiBzdG9wcGVkIGFmdGVy
IHRoZSBXTV9USU1FUiBtZXNzYWdlIHdhcyBwb3N0ZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUuCi0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnZhbHVl
OwotCi0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgewotICAgICAgICBydW5Mb29wLT5t
X2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwotICAgICAgICA6OktpbGxUaW1lcihydW5Mb29wLT5t
X3J1bkxvb3BNZXNzYWdlV2luZG93LCBJRCk7Ci0gICAgfQotCi0gICAgdGltZXItPmZpcmVkKCk7
Ci19Ci0KLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVRpbWVySUQoKQotewotICAgIHN0YXRpYyB1
aW50NjRfdCB1bmlxdWVUaW1lcklEID0gMTsKLSAgICByZXR1cm4gdW5pcXVlVGltZXJJRCsrOwot
fQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAg
IDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX0lEKGdlbmVyYXRlVGltZXJJRCgpKQotICAg
ICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGlt
ZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpz
dGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0gICAgbV9pc1Jl
cGVhdGluZyA9IHJlcGVhdDsKLSAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lE
LCB0aGlzKTsKLSAgICA6OlNldFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRv
dywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAsIDApOwotfQotCi12b2lkIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5M
b29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOwotICAgIGlmIChpdCA9PSBtX3J1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3J1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgOjpLaWxsVGltZXIobV9ydW5Mb29wLT5t
X3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lEKTsKLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJh
c2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRp
bWVycy5jb250YWlucyhtX0lEKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRleCAzOGYx
MzQ3YTM0YmE0YzIwNDE0NjFmZWM0ZmU0NGE4ZWRmMGEyNjIyLi5lMTEyODc1YzFkN2EyMjlkMDdh
MDRhZmMwY2M5MDZiZWFhYTY3MWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJi
b24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24v
Q2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtNzMsOSArNzMsOSBAQAogI2ltcG9ydCA8YXNzZXJ0
Lmg+CiAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+
CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAog
I2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViTlNPYmplY3RFeHRyYXMuaCIK
QEAgLTI3Miw3ICsyNzIsNyBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVF
dmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogewogICAgIEpTQzo6
aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1By
b2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5S
dW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2Vi
Q29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQppbmRleCA2NjE1NWRiYjhhOWZj
Njc3M2MxZmRiN2RlOTQ4MmQ3YmRkYTgwMTAyLi40YmVmZTY2OTY3ZjBhNTQ0MzczZjc1NTMxYmM0
M2MwMTM3YWRlZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJh
Y2tGb3J3YXJkTGlzdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tG
b3J3YXJkTGlzdC5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5
SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VD
YWNoZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Nl
dHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CkBAIC01MCw2ICs0OSw3IEBACiAjaW1wb3J0IDx3dGYv
QXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTA1LDcgKzEwNSw3IEBA
IFdlYkJhY2tGb3J3YXJkTGlzdCAqa2l0KEJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0
KQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6
ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6
aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5M
b29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KaW5kZXggNTc5ZmY2
Y2M1MWExODU5M2FmMDgzODUxZTQ0OGI2NjY3ZTFmYmQ2My4uNTUwZTZlMWEyMzVmMWQ1ODFmMTM2
MDM1YTg0NDkzODgyMjkxZGJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9y
eS9XZWJIaXN0b3J5SXRlbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhp
c3RvcnlJdGVtLm1tCkBAIC00NywxMiArNDcsMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvSW1hZ2Uu
aD4KICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDYWNoZS5o
PgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENo
ZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxy
dW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+
CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNp
bXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgV0tOb3RpZnlIaXN0b3J5SXRlbUNoYW5nZWQoSGlz
dG9yeUl0ZW0qKQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6
aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6
UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6
ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxm
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2FjaGUubW0KaW5kZXggMGNiZWQwMTIyZjg5NjEy
ZDdjMDQ2YzdkNzk3MTBmMWZiN2Q5NTg4MC4uNzY1MTg3NjU3MmUxNzczZWM0MGQ4ODY5NzUzNTU4
NjBlNWM4MDZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCkBAIC0zMyw5ICszMyw5
IEBACiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaD4KICNpbXBvcnQgPFdl
YkNvcmUvTWVtb3J5Q2FjaGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9y
dCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVh
ZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogQGltcGxlbWVudGF0aW9uIFdlYkNhY2hl
CiAKQEAgLTQzLDcgKzQzLDcgQEAKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsK
ICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAg
IFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6
OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
KCk7ICAgCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVu
dERpY3Rpb25hcnkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkVsZW1lbnREaWN0aW9u
YXJ5Lm1tCmluZGV4IDE3ZjIyMDE5MDcwYzQwMTE2NTU3YmUwY2E2M2Y3YzRkOGQyZGVmZjYuLjkw
OTRhMzhiMjZkOWE4MmY2NTc2NTYxODE1ZjgxNDQxMmY5N2UwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbQpAQCAtMzksMTIgKzM5LDEyIEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpdFRlc3RSZXN1
bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW1hZ2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9v
cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2Vi
S2l0L0RPTUNvcmUuaD4KICNpbXBvcnQgPFdlYktpdC9ET01FeHRlbnNpb25zLmg+CiAjaW1wb3J0
IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgdm9pZCBjYWNoZVZhbHVlRm9yS2V5KGNvbnN0IHZv
aWQgKmtleSwgY29uc3Qgdm9pZCAqdmFsdWUsIHZvaWQgKnNlbGYpCiB7CiAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vz
c01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3Jl
T2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViSWNvbkRhdGFiYXNlLm1tCmluZGV4IDdmODczYWIxZWRjNmNlMjk2OGIzNzcyZmQ1ZTkw
YjQxYzRlMDhiODUuLjFlMzk5MWIwYzllZTc3NDNkZTE1OWY1NTkwMjg3NDYyZTkzMjM2YjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCkBAIC0zOSwxMSArMzks
MTEgQEAKICNpbXBvcnQgPFdlYkNvcmUvSWNvbkRhdGFiYXNlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0ltYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
UnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05MCw3ICs5MCw3IEBAIHN0YXRpYyBX
ZWJJY29uRGF0YWJhc2VDbGllbnQqIGRlZmF1bHRDbGllbnQoKQogewogICAgIEpTQzo6aW5pdGlh
bGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NN
YWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiB9CiAKICsgKFdlYklj
b25EYXRhYmFzZSAqKXNoYXJlZEljb25EYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCmluZGV4IDdlMDViMzQ4YTFjZDRmMDBkNTc3NTYyMWQ5ODAwZmYxM2IwMWM2OTMuLjE4MWFi
NzA1OTEzM2NkNTNmNjIyMTJiYmUxYzk1ZGI2NzRhNWVmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBs
dWdpblZpZXcubW0KQEAgLTQ2LDEyICs0NiwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJF
bWJlZGRlZE9iamVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvcnVudGltZV9yb290Lmg+CiAjaW1wb3J0IDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1w
b3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+
CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC03Myw3ICs3Myw3IEBAIGV4dGVybiAiQyIgewogewog
ICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5U
aHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICBXS1NlbmRV
c2VyQ2hhbmdlTm90aWZpY2F0aW9ucygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IGFiY2M4MmIyNGJh
MmViMmEzN2UyMTZjZmZlMTYxMzEwNzkyNDA2OGUuLjE0Nzc1YjUyY2E4OGFlNmUxYjFhM2FmYTM2
MzAwMTU2OWUxNjI2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
QmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTU1LDEzICs1NSwxMyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmll
dy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJXaWRnZXQuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
UnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTVByaXZhdGUu
aD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3Rm
L0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYv
UnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVmaW5lIExvZ2lu
V2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24gICAgQCJXZWJMb2dpbldpbmRvd0Rp
ZFN3aXRjaEZyb21Vc2VyTm90aWZpY2F0aW9uIgpAQCAtNzUsNyArNzUsNyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBX
VEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNv
cmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRp
YWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQo
c2VsZik7CiAgICAgV0tTZW5kVXNlckNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCmluZGV4IDVi
MDdiOTgwNTkyZGUyM2MwYWYyN2M5MGJkMGQ5NzQ0ZDJlMjI5NzQuLjI0MGM0OThjZDBhZTlkMWE5
M2UyZDU3M2UzY2YzZjhmMDAwZGQ4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbQpAQCAtMjksNyArMjksNiBAQAogI2ltcG9ydCA8
V2ViS2l0L1dlYkJhc2VQbHVnaW5QYWNrYWdlLmg+CiAKICNpbXBvcnQgPGFsZ29yaXRobT4KLSNp
bXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4
dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdE5TU3RyaW5nRXh0cmFzLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLmg+CkBAIC0zOCw2ICszNyw3IEBACiAj
aW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNp
bXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApA
QCAtNjgsNyArNjgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHsKICAgICBKU0M6Omlu
aXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9j
ZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVu
TG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNv
cmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggN2Y0Yzg4YTVi
ZWYwMmM5ZTExMjAyMGM1NzQyOGI5NzA1YmYxNjBmOC4uNmQwZjNkZDhhZDkxMzZiZDgyYmUzZjM4
MjVlNTViNDMzOGY4ZDk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTY3LDcgKzY3LDYgQEAKICNpbXBvcnQgPFdlYkNv
cmUvUGFnZS5oPiAKICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Qcm94eVNlcnZlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4g
CkBAIC04Miw2ICs4MSw3IEBACiAjaW1wb3J0IDxydW50aW1lL0pTTG9jay5oPgogI2ltcG9ydCA8
d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVmaW5lIExv
Z2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24gICAgQCJXZWJMb2dpbldpbmRv
d0RpZFN3aXRjaEZyb21Vc2VyTm90aWZpY2F0aW9uIgpAQCAtMTk0LDcgKzE5NCw3IEBAIHR5cGVk
ZWYgc3RydWN0IHsKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6
OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6
OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2Vs
Zik7CiAgICAgV0tTZW5kVXNlckNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCBl
MmNlYTBjMGM2OGZhYTM5ZjU1NzRlM2MxNmU2NTg0ZWQyMjZiNmFkLi5kYzI2OGUyNjYxY2YzMDcx
MjgwOWQ1MWE1YTFiNTBhMzg1ZDIwNzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02MSw3ICs2MSw2IEBACiAjaW1w
b3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0eVNl
dC5oPgpAQCAtNzEsNiArNzAsNyBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDcsNyArMTA3LDcgQEAgc3Rh
dGljIFdlYlZpZXdJbnNlcnRBY3Rpb24ga2l0KEVkaXRvckluc2VydEFjdGlvbiBjb3JlQWN0aW9u
KQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6
ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6
aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5M
b29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQppbmRleCBmOGNiMTM0YmE3NDNiYzI2NGZlM2ViY2M4MWZiY2I3NWVjNjNi
OTM0Li4xODc1YWMwYmJkYzE1YWZlYjE3NjY0NjJmNzM0MTY5MzlmNTY5NjY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbQpAQCAtMTE1LDcgKzExNSw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlSGFu
ZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVk
QnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CkBAIC0xMjcs
NiArMTI2LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW1w
b3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNp
ZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKQEAgLTIwMDksNyArMjAwOSw3IEBAIFBh
c3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7
CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAg
ICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29w
Ojppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWlu
VGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkFyY2hpdmUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0K
aW5kZXggOTg5MGY4ZGZhOGM3MjM4YzlhN2I0NzhkM2VkMjdiMDJiZTgzZDNmNi4uNzIzMzE2Zjlj
YTczODRkMzZiZmU2ZjkzZDFjODA0ZDE5ZTI5MGFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViQXJjaGl2ZS5tbQpAQCAtMzYsMTAgKzM2LDEwIEBACiAjaW1wb3J0IDxKYXZhU2NyaXB0
Q29yZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FyY2hpdmVSZXNv
dXJjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtNjksNyArNjksNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJTdWJmcmFtZUFy
Y2hpdmVzS2V5ID0gQCJXZWJTdWJmcmFtZUFyY2hpdmVzIjsKIHsKICAgICBKU0M6OmluaXRpYWxp
emVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFp
blRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpD
RmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRGF0YVNvdXJjZS5tbQppbmRleCAwZWZiMmFkMDZlZTYxYzg2OWZlOGMyM2ZjMjhjNTky
YmFjYzhhNzMzLi42MDI5OGRmN2UzZjAyYjM3NzlhNDRhNDc2ZDE3MzVmODEzMzg0MTUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCkBAIC01NCw3ICs1NCw2
IEBACiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVm
ZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVVUkxSZXNwb25zZS5oPgpAQCAtNjUsNiArNjQsNyBAQAogI2ltcG9ydCA8
d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVz
RnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAg
ICBpZiAoc2VsZiA9PSBbV2ViRGF0YVNvdXJjZSBjbGFzc10pIHsKICAgICAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1By
b2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVN
YWluUnVuTG9vcCgpOworICAgICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsK
ICAgICAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCBhMmFlZjJhYmRm
MjYxNGZiMTg1ZDBkYWZjMjQ2ZTY1YWY2YWM3YzgwLi40ODYyODBlNDdiNmE1NWQ2OTNmODRhMzUx
NDJkYTMzOGUyYmY3OWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcu
bW0KQEAgLTExMSw3ICsxMTEsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1JlbmRlcldpZGdldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJj
ZUJ1ZmZlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZm
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2ltcGxlRm9udERhdGEuaD4KQEAgLTEzMSw2ICsxMzAs
NyBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3
dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CisjaW1w
b3J0IDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
I2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CkBAIC01NjQsNyArNTY0LDcgQEAgc3Rh
dGljIE5TQ2VsbFN0YXRlVmFsdWUga2l0KFRyaVN0YXRlIHN0YXRlKQogewogICAgIEpTQzo6aW5p
dGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nl
c3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5M
b29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29y
ZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICAKICAgICBpZiAoIW9sZFNldEN1
cnNvckZvck1vdXNlTG9jYXRpb25JTVApIHsKQEAgLTIyNzMsNyArMjI3Myw3IEBAIHN0YXRpYyBi
b29sIG1vdXNlRXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlczpbW3NlbGYgY2xhc3NdIF9pbnNlcnRh
YmxlUGFzdGVib2FyZFR5cGVzXV07CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAg
ICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBX
ZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjpp
bml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhy
ZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbQppbmRleCA3NzVjMmYzMmNhYWIzZDJjOWU5OTYzOTcwY2JkOTczYzViYWY1OTQwLi42ZjBl
OGM5ODE3OWFmMzQyZTUxY2VjMjNkYTNiNjhiOWY1NmEzYmRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTQzLDEwICs0MywxMCBAQAogI2ltcG9y
dCA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFs
aXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKQEAgLTMwNiw3ICszMDYsNyBAQCBwdWJsaWM6CiB7CiAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vz
c01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAogICAgIE5TRGlj
dGlvbmFyeSAqZGljdCA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5
czoKICAgICAgICAgQCJUaW1lcyIsICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRTdGFuZGFy
ZEZvbnRQcmVmZXJlbmNlS2V5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJSZXNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2Uu
bW0KaW5kZXggYTRlYzM1MzE1YWZkNGJmNDVkYzJjNWRlNjQ3MjBhMzE2MDdjOTBjZC4uYWMyZTBh
NjVlZTJlOGUxMGNjNzQwOTkyNWEzODViY2UxM2FlMTYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlJlc291cmNlLm1tCkBAIC0zOCwxMyArMzgsMTMgQEAKICNpbXBvcnQgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3Au
aD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1RleHRFbmNvZGluZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlVVJMUmVzcG9uc2UuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1w
b3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjgs
NyArNjgsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJSZXNvdXJjZVJlc3BvbnNlS2V5
ID0gICAgICAgICAgQCJXZWJSZXNvdXJjZVJlc3BvbnNlIgogewogICAgIEpTQzo6aW5pdGlhbGl6
ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWlu
VGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNG
aW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJUZXh0SXRlcmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlRleHRJdGVyYXRvci5tbQppbmRleCA5YjFiZDhmZWI1NTNmZDhkMTEwYWRlMmNmNjM2
NWRhNDI0MTA1NzZjLi5lODkxNGQ5NzJkNjkwMzI0MjlkZDQ1MWVjNDQ4MjVlNTczOTY0ZGQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbQpAQCAtMjgs
MTIgKzI4LDEyIEBACiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVJh
bmdlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKLSNpbXBvcnQgPHd0
Zi9WZWN0b3IuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9UZXh0SXRlcmF0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4K
ICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01h
aW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvVmVjdG9y
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTUwLDcgKzUwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB7CiAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vz
c01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3Jl
T2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KaW5kZXggMjk1MzYyN2M1YTMyYTM3MDI4YjQyOTQ3NWY0ZGU4YzU2YTAwZjRm
My4uOTQ5MDIxMDA0NGE5YTlhYmM5ZmEyYjBjZTNkMjYyMDJmNDRhNTcwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTY1LDcgKzE2NSw2IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlTG9hZFNjaGVk
dWxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgpAQCAtMjAwLDYgKzE5OSw3IEBACiAjaW1wb3J0
IDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVkTGVha0Nv
dW50ZXIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+
CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NV
UFBPUlQpCkBAIC0zMzYxLDcgKzMzNjEsNyBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gdG9TdHJp
bmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMpCiAgICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UoKTsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxp
emVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVu
TG9vcCgpOwogCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxsVGVybWluYXRl
KSBuYW1lOk5TQXBwbGljYXRpb25XaWxsVGVybWluYXRlTm90aWZpY2F0aW9uIG9iamVjdDpOU0Fw
cF07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZl
cjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfY2FjaGVNb2RlbENoYW5nZWROb3RpZmljYXRpb246
KSBuYW1lOldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlv
biBvYmplY3Q6bmlsXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmlu
ZGV4IGQ3MWZkNjUzYjQ1NzFlN2IzMWUzYmU3MTM1OGRmNjVhZWRmZjVlMDMuLjAzNDNhOWM0NzYw
YTI3MzgzNWI1OTVkZWRhZWU5OTNjM2Q4MjNkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3RGF0YS5tbQpAQCAtMzQsMTAgKzM0LDEwIEBACiAjaW1wb3J0IDxXZWJDb3JlL0Fs
dGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2Jq
Q0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2ltcG9ydCA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxvYmpjL29iamMtYXV0by5oPgogI2ltcG9ydCA8cnVu
dGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgor
I2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogQk9PTCBhcHBsaWNhdGlvbklzVGVybWluYXRpbmcg
PSBOTzsKIGludCBwbHVnaW5EYXRhYmFzZUNsaWVudENvdW50ID0gMDsKQEAgLTc0LDcgKzc0LDcg
QEAgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OldlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVy
KExheWVyRmx1c2hDb250cm9sbGVyKiBmbHUKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRp
bmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgp
OwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1
bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVP
bk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKaW5kZXggMjI5N2I5NGVhNzZjYTE2NmQ4MTg1NDZk
YjEwNTFjNzNiMjg4MWQzYy4uYTVjMDg0MjEwZGQ5YmVmMzA2MWQzNTU0MzZkMDdkZWViN2VkNzhj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJv
Y2Vzcy5jcHAKQEAgLTMxLDggKzMxLDYgQEAKIAogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNT
KQogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIERh
dGFiYXNlUHJvY2VzcyYgRGF0YWJhc2VQcm9jZXNzOjpzaGFyZWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCAxZTk0MWZiYWNmOTBjOTRmMzdhZDc1ZWU0MmE2MWY2YWYz
YzNlMmM4Li5hNmZlNzNhYjMyMmI4ZjU0YTEzZjQxMDZmM2UwNTdlOGFhNmNmM2IxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUg
IkRhdGFiYXNlUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZC5oIgogI2luY2x1ZGUgIkRhdGFiYXNl
UHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BS
T0NFU1MpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAwM2FmMWM0ZmYyMThm
OWRhZmZlNmIyZTI1ZmY1OWIxNDNhYjBkMjE2Li5lMDA3ZmQ2Mzc1YzY0MjkzN2E3ODg0Y2ZkNWI5
ZjFmMzM1MTYzZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zOSw3ICsz
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDQ0NDll
MTczNWM5MGQ0MWI3MTI3YjBiOTY3OWJlYzM5OTY4NTkyZjEuLmEzYTYwYmRlOWVhOWVjYzc0YWVh
ZDFkMDU0MGY3YzI5Y2IzMmVjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJD
b29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
KyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogI2lmIFVTRShTRUNVUklUWV9GUkFNRVdPUkspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAwMTI4MTc0YTM2ODExYzFkY2QyNzJiZjAz
Y2VjMTA0MDVlZGQxMTAwLi5jYTZmOGZiYjVmMzgzNWNiYWE0YTIwOTZlMjc1ZDkzNDhiOThlOGYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTM1LDEwICszNSw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxl
ci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAg
ICBjbGFzcyBSdW5Mb29wOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQXV0aGVu
dGljYXRpb25NYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA4Y2EyMjdhMjFmZjc5MGU5ZjA0M2E5NzRk
MmM3MjUyZWIxZDI3ZDM0Li4zMjdhZTM0Y2M3YjRkMmE1NGJhMWUxYTU3M2I0YmE1NGIwYmJmMThj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VIYW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9u
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZDYWNoZWRVUkxSZXNwb25z
ZSogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKaW5kZXggYzEzNzk5NWU1YjhlNTBm
ZTlkNjBlNGFkMWZkNDc4MDFiZWQ2MTNhZC4uNDlkMGMwZjZlNjBjMzdmMTA1MDY3Y2Y4ZmU0YjQ2
MjUyZTA5YzFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L0Rpc2tDYWNoZU1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9t
YWMvRGlza0NhY2hlTW9uaXRvci5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBfQ0ZDYWNoZWRVUkxSZXNwb25zZSogQ0ZDYWNoZWRVUkxSZXNwb25z
ZVJlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9O
ZXR3b3JrUHJvY2Vzc01haW5Vbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5jcHAKaW5kZXggZDA4MGI3ODQwYTMyNjNiMTRj
OTE4Y2JiN2IxZmM5MmU1M2M3NWNlZi4uMGI4M2E0YTQ5NzJjNGZhMjQ3ZTkzYmE2YjQzMGE2YTUz
ZjkwMTEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9O
ZXR3b3JrUHJvY2Vzc01haW5Vbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguY3BwCkBAIC0zMiwxMiArMzIsMTIgQEAK
ICNpbmNsdWRlICJQcm94eVJlc29sdmVyU291cC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2lu
Y2x1ZGUgIldlYktpdDJJbml0aWFsaXplLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy5oPgogI2luY2x1ZGUgPGVycm9yLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8c3Rk
bGliLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KIAogI2lmIFBMQVRGT1JNKEVG
TCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCmlu
ZGV4IGUyOTE0MTBiNTBkZTJhMDRmZmIyNTA5ODY0YjBlYjE1NmJhZjQ2YWQuLjUyZjJiZjI4ZmEw
YmIxMzg0YjRjMGI5MWI0MmE2NDBjOGEyMDk3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtMjYsMTQgKzI2LDEyIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogCi0jaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgog
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIENvcmVJUEMgewogCiBjbGFz
cyBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPENvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggN2YwNzNiZjM2ZDY3MzEzYjBlNmI4MmQ2
NzBlYWUyNWYyNDMwMzM5NS4uMTQ1MzhjNTE0NGRkZDFiMmQ3NGE5MDA0YjkyNTkyMzY0Y2NlYWQ0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAg
LTQ5LDcgKzQ5LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgiCiAj
ZW5kaWYKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdURiB7CiBjbGFzcyBSdW5M
b29wOwogfQogCkBAIC0xMTcsOCArMTE3LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlk
ZW50aWZpZXJJc051bGwoSWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiAhaWRlbnRpZmll
cjsgfQogI2VuZGlmCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVT
ZXJ2ZXJDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVudCosIFdlYkNvcmU6OlJ1bkxvb3AqIGNs
aWVudFJ1bkxvb3ApOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZUNs
aWVudENvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xp
ZW50UnVuTG9vcCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlU2Vy
dmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBXVEY6OlJ1bkxvb3AqIGNsaWVudFJ1
bkxvb3ApOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZUNsaWVudENv
bm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV1RGOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29w
KTsKICAgICB+Q29ubmVjdGlvbigpOwogCiAgICAgQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudDsgfQpAQCAtMTY3LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlu
U2VuZFN5bmMoKSBjb25zdCB7IHJldHVybiBtX2luU2VuZFN5bmNDb3VudDsgfQogCiBwcml2YXRl
OgotICAgIENvbm5lY3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50KiwgV2Vi
Q29yZTo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CisgICAgQ29ubmVjdGlvbihJZGVudGlmaWVy
LCBib29sIGlzU2VydmVyLCBDbGllbnQqLCBXVEY6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwog
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKElkZW50aWZpZXIpOwogICAgIHZvaWQgcGxhdGZv
cm1JbnZhbGlkYXRlKCk7CiAgICAgCkBAIC0yMTMsNyArMjEzLDcgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgbV9pc0Nvbm5lY3RlZDsKICAgICBSZWZQdHI8V29ya1F1ZXVlPiBtX2Nvbm5lY3Rpb25R
dWV1ZTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wKiBtX2NsaWVudFJ1bkxvb3A7CisgICAgV1RGOjpS
dW5Mb29wKiBtX2NsaWVudFJ1bkxvb3A7CiAKICAgICBIYXNoTWFwPFN0cmluZ1JlZmVyZW5jZSwg
c3RkOjpwYWlyPFJlZlB0cjxXb3JrUXVldWU+LCBSZWZQdHI8V29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyPj4+IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyczsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcAppbmRleCAyN2Jj
MmNjZDE2YmRmZjM1MjFjZjQ2Yjg0MTUwNDQ1NTRhMjMyZjllLi5mZjlhMGI4YTQ0ODgwMTQyOGU0
ZWViYmQ0Y2UxYTZjNzQxZTI5ZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcApAQCAtMzMsOSArMzMsMTUgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxtYWNoL21hY2hfZXJyb3IuaD4K
ICNpbmNsdWRlIDxtYWNoL3ZtX21hcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5j
bHVkZSA8eHBjL3hwYy5oPgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK25hbWVzcGFjZSBX
VEYgeworY2xhc3MgUnVuTG9vcCB7CitwdWJsaWM6Cit2b2lkIHRlc3QoKTsKK307Cit9CiAKIG5h
bWVzcGFjZSBDb3JlSVBDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tIGIv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L1BsdWdpblByb2Nlc3NNYWluLm1tCmluZGV4IGE4NzFmMTIxYTk3MzQ5ZDdmZjg1ODhkZGJjYTQ0
NzdkNTE2ZDJkNGMuLmVhYmFiZGQ5MzljMTZkNDMyNDhiZTk3MmM0YzNhNjM4ZGJjNTkwMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVn
YWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4u
bW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAj
aW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCiAjaW1wb3J0ICJXS0Jhc2UuaCIKLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFVTRShBUFBL
SVQpCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKFdlYk5TQXBwbGljYXRpb25EZXRhaWxzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9Y
UENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBv
aW50Lm1tCmluZGV4IDBjNGJkZDNlMTEwYWQwMTQyNWIzNjQ1MWNjYTM2OTA2M2RhNDZkNzEuLjA3
ODIyZTY4MGU5MjRlOTlhMmI5ZGRlZDQwZjA5NmYzNWJhMDdkZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5T
ZXJ2aWNlRW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTI5
LDcgKzI5LDcgQEAKICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKICNpbXBvcnQgIldLQmFzZS5o
IgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUnVu
TG9vcC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
QEAgLTU5LDcgKzU5LDYgQEAgcHVibGljOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBleHRlcm4g
IkMiIFdLX0VYUE9SVCB2b2lkIFBsdWdpblNlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlv
bl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgK
aW5kZXggY2U0ZWYxNjBiNjUwNWZhZDgzNmI3Yzc5YzAxNzU3NDlkNDFjNGY5My4uZTg3YzdhN2E0
ZGUwZjI1Zjk2NjE3N2NjNDEyN2QxNGMwZWQxZWY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCkBAIC0zNCw5ICszNCw5
IEBACiAjaW5jbHVkZSAiUGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKICAgICBjbGFzcyBEYXRhUmVm
ZXJlbmNlOwpAQCAtMTgzLDE0ICsxODMsMTQgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRS
ZWN0IG1fZGlydHlSZWN0OwogCiAgICAgLy8gVGhlIHBhaW50IHRpbWVyLCB1c2VkIGZvciBjb2Fs
ZXNjaW5nIHBhaW50aW5nLgotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRy
b2xsZXJQcm94eT4gbV9wYWludFRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRy
b2xsZXJQcm94eT4gbV9wYWludFRpbWVyOwogICAgIAogICAgIC8vIEEgY291bnRlciB1c2VkIHRv
IHByZXZlbnQgdGhlIHBsdWctaW4gZnJvbSBiZWluZyBkZXN0cm95ZWQuCiAgICAgdW5zaWduZWQg
bV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RDb3VudDsKIAogICAgIC8vIEEgdGltZXIgdGhhdCB3
ZSB1c2UgdG8gcHJldmVudCBkZXN0cnVjdGlvbiBvZiB0aGUgcGx1Zy1pbiB3aGlsZSBwbHVnLWlu
CiAgICAgLy8gY29kZSBpcyBvbiB0aGUgc3RhY2suCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGlt
ZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BsdWdpbkRlc3Ryb3lUaW1lcjsKKyAgICBSdW5M
b29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1Z2luRGVzdHJveVRpbWVyOwog
CiAgICAgLy8gV2hldGhlciB3ZSdyZSB3YWl0aW5nIGZvciB0aGUgcGx1Zy1pbiBwcm94eSBpbiB0
aGUgd2ViIHByb2Nlc3MgdG8gZHJhdyB0aGUgY29udGVudHMgb2YgaXRzCiAgICAgLy8gYmFja2lu
ZyBzdG9yZSBpbnRvIHRoZSB3ZWIgcHJvY2VzcyBiYWNraW5nIHN0b3JlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKaW5kZXggMzZkMWZjNGExNjVl
NTViMTA2ZjZhM2IzNjU3NDg1N2MyY2Y3MWNmYy4uOGZlYjlmZmU3MmFjNjczOGVjNWQwOGY1MmZk
ZjMxYzIxYjY0YTc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Qcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuY3BwCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogI2lu
Y2x1ZGUgPGNydF9leHRlcm5zLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCmluZGV4IDdhMjBlZDA1YjJhYTlkYzVlYmVkMjg1MmFiNjE2NWI5MzVlZGIy
ZmYuLjE2ZjMyMzg4NWE1NzM0OTUwMGExMzcyODY5MTc3NjZhOTBkMWVlMmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCkBAIC0xMDksNyArMTA5LDcg
QEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5J
bml0aWFsaXphdGlvbjsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBsdWdpblByb2Nl
c3M+IG1fbWluaW11bUxpZmV0aW1lVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luUHJv
Y2Vzcz4gbV9taW5pbXVtTGlmZXRpbWVUaW1lcjsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgUExBVEZPUk0oTUFDKQogICAgIC8vIFRoZSBNYWNoIHBvcnQgdXNlZCBmb3Ig
YWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGM3MWMxZDQ4MmRjZDRmMjZl
Y2E1OTJkMTllN2I3YzIzNjhjNzU4NTQuLjNhNGQxNWFkNTlmZDI1ZDIxZDI1OTUwYzU1OWE4ZjY2
M2MxMTNjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zOSw4ICszOSw4IEBACiAjaW5jbHVkZSAiUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzTWFpblVuaXguY3Bw
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5p
eC5jcHAKaW5kZXggMGE1NjQ2MWM5OGMxZGNlMDg5ZjYzZDFkOTQzMjU0YjFlMjZjZWI2Ni4uMDY3
ZDVkMGY1ZjMxNGNiMDI5ZjE2MmY2NWQ0NDVmOTU4MjJmZjJhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWluVW5p
eC5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbi5oIgogI2lu
Y2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJLaXQySW5pdGlhbGl6ZS5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAj
aWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpZiBQTEFURk9STShYMTEp
ICYmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19YMTEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFBy
b2Nlc3MuY3BwCmluZGV4IGIyMjMzYTM1YTFhMTM5NjhhMDAwNGEyMGMxMTg4NzI0YmFiMDgxMjUu
LjhlMGRiOGI0M2UwYjk0NzZhZGU3ZmUzM2ZjZGZiODY0YzMzOWU1MGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCkBAIC0yOSw4ICsyOSw2IEBACiAjaW5jbHVkZSAiU2Fu
ZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIENoaWxkUHJv
Y2Vzczo6Q2hpbGRQcm9jZXNzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
aGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaAppbmRl
eCBiYTcyMjYyZmExZmM4ZWZmZTc5NjQ3MDAyOTAwZGRmM2EwMzRlYmE5Li4zNjRmODNlOWZjMDIy
NDkzYmNmYTgxZDBjMDU3NTA1NWQ5ZmIxMTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzcy5oCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIApAQCAtMTE0LDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgLy8gYWZ0ZXIgYSBnaXZlbiBw
ZXJpb2Qgb2YgdGltZS4KICAgICB1bnNpZ25lZCBtX3Rlcm1pbmF0aW9uQ291bnRlcjsKIAotICAg
IFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPENoaWxkUHJvY2Vzcz4gbV90ZXJtaW5hdGlvblRpbWVy
OworICAgIFJ1bkxvb3A6OlRpbWVyPENoaWxkUHJvY2Vzcz4gbV90ZXJtaW5hdGlvblRpbWVyOwog
CiAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBDb3Jl
SVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CkBAIC0xMjQsNyAr
MTI0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWRJ
bnRlcm5hbChib29sKTsKICAgICBzaXplX3QgbV9hY3RpdmVUYXNrQ291bnQ7CiAgICAgYm9vbCBt
X3Nob3VsZFN1c3BlbmQ7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8Q2hpbGRQcm9jZXNz
PiBtX3N1c3BlbnNpb25IeXN0ZXJlc2lzVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8Q2hpbGRQ
cm9jZXNzPiBtX3N1c3BlbnNpb25IeXN0ZXJlc2lzVGltZXI7CiAgICAgUmV0YWluUHRyPGlkPiBt
X3Byb2Nlc3NTdXBwcmVzc2lvbkFzc2VydGlvbjsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU5YmFmOTE2NGJkODk5OGZkZmRi
ZjQ5ZjY1OWM3NTU3NTc2NDU5MDQuLjExZTA4NjgyZWE1ZjBjMTIyMTcxYjBlZDlhYjU2MzZiM2M2
NTQ2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMjYsOSArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNoaWxkUHJv
Y2Vzc1Byb3h5LmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KLQotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRp
bGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0No
aWxkUHJvY2Vzc0VudHJ5UG9pbnQuaAppbmRleCBjNGM4NTgyOTRmZjVlMjgxYjg3ZjIzMDMwMTg4
YzViNTU5NTdmZmM3Li45MWUyOTc2ODUwZjRiODM1YzMyNDUxZjMxMzQ3NmE3YzVkNDY1MDRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMv
TGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9j
ZXNzRW50cnlQb2ludC5oCkBAIC0yOSw5ICsyOSw5IEBACiAjaW1wb3J0ICJDaGlsZFByb2Nlc3Mu
aCIKICNpbXBvcnQgIkNvbW1hbmRMaW5lLmgiCiAjaW1wb3J0ICJXZWJLaXQySW5pdGlhbGl6ZS5o
IgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuaD4KICNpbXBvcnQgPHN5c2V4aXRzLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQ
b2ludC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9M
ZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQubW0KaW5kZXggOTZhNzgxZTc1MzUz
NjlmNTdiZDQ1NmVhZDE3NTY1MWIwNDFkMDJjOS4uNWY4ZmY0ZTAzMWFjMjlmZWE1Yjc2ZWM2MWI5
ZDVkYjc1MmRlOWMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5
UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tCkBAIC0zNCw4ICszNCw2IEBACiAKICNk
ZWZpbmUgU0hPV19DUkFTSF9SRVBPUlRFUiAxCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjp+Q2hpbGRQ
cm9jZXNzTWFpbkRlbGVnYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Q
bHVnaW5zL05QT2JqZWN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMv
TlBPYmplY3RQcm94eS5jcHAKaW5kZXggZTc0Y2EyYzZhZWI3ZmU4ZDcwN2FhYWU3MTMyNGViNGM5
ZWQxZDRlZS4uYTM0ZjE5ZGM1ODQ0NmZkZjFiZTJmM2I2OTNmZjQwNTY2NzlkMDY4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94eS5jcHAKQEAgLTM1
LDEwICszNSw4IEBACiAjaW5jbHVkZSAiTlBSZW1vdGVPYmplY3RNYXAuaCIKICNpbmNsdWRlICJO
UFJ1bnRpbWVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJOUFZhcmlhbnREYXRhLmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLQotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQy
SW5pdGlhbGl6ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2l0MkluaXRpYWxpemUu
Y3BwCmluZGV4IGM4ODgyZDhhZTFmNDliYjY5MDVhOGUwMTM0NzgyYmVmZmRiMDc1ZDAuLmZlOWY1
YWU3YmJmM2MwYThiMDU0YmEzMGViYjMxZTY0OWZlNjBjMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcApAQCAtMjgsOSArMjgsOSBAQAogCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
IAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKQEAg
LTQ2LDcgKzQ2LDcgQEAgdm9pZCBJbml0aWFsaXplV2ViS2l0MigpCiAKICAgICBKU0M6OmluaXRp
YWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7Ci0gICAg
V2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6
aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgV2ViQ29y
ZTo6aW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmF2aWNvbkRhdGFiYXNl
LmNwcAppbmRleCBiNTMxNTVmOWQ1Yjk4N2I1ODYyNjQwZjhjNWIzZjExOGY1NzdjNTAxLi42N2M4
ZmQ0MzA0OTJlMjFkMThhOGQ3YTEzNzZkNTI2MzNhMzBjMTliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5j
cHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWZQdHJDYWlyby5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L0ZpbmRJbmRpY2F0b3JXaW5kb3cuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L0ZpbmRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCA4ZTQ3ODAxNjkzMjA5ZmJmMTdmMzUzZGU0MmQx
MzNhZjQ2ZmZmMDU0Li42ODY0YjY0OWJmMDExOWMzMGY3MDUwOTFmNDA3MmM5MjI2MDZkYTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9y
V2luZG93LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGlj
YXRvcldpbmRvdy5oCkBAIC0yNywxMCArMjcsMTAgQEAKICNkZWZpbmUgRmluZEluZGljYXRvcldp
bmRvd19oCiAKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvTm9uY29weWFibGUuaD4KICNpbXBvcnQgPHd0
Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5M
b29wLmg+CiAKIEBjbGFzcyBXS0ZpbmRJbmRpY2F0b3JXaW5kb3dBbmltYXRpb247CiBAY2xhc3Mg
V0tWaWV3OwpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIFdLV2luZG93Qm91bmNlQW5p
bWF0aW9uQ29udGV4dFJlZiBtX2JvdW5jZUFuaW1hdGlvbkNvbnRleHQ7CiAgICAgUmV0YWluUHRy
PFdLRmluZEluZGljYXRvcldpbmRvd0FuaW1hdGlvbj4gbV9ib3VuY2VBbmltYXRpb247CiAKLSAg
ICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxGaW5kSW5kaWNhdG9yV2luZG93PiBtX3N0YXJ0RmFk
ZU91dFRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPEZpbmRJbmRpY2F0b3JXaW5kb3c+IG1fc3Rh
cnRGYWRlT3V0VGltZXI7CiAgICAgUmV0YWluUHRyPFdLRmluZEluZGljYXRvcldpbmRvd0FuaW1h
dGlvbj4gbV9mYWRlT3V0QW5pbWF0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbQppbmRleCAwZWNiODFjOWFiMzI3MDBm
MzZjZGZiNjhiZDhmNDQ2NDlkNzhkYjY0Li42YTkyZTQ3YjU1YmVmM2M1NTNlYjQyNTE5OTNlMTY0
MTU3MjUzYTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ByaW50aW5nVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ByaW50aW5nVmlldy5tbQpAQCAtMzQsOCArMzQsOCBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5
LmgiCiAjaW1wb3J0IDxQREZLaXQvUERGS2l0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNz
Q29udGV4dC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVPYmpDRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggMmZhMWFjNDhiNGU2OWE5ZTcwMDIz
ODUzNGQ5MDEzOTY3MTU1MWRlMS4uOTNjZjBlMWI0NDNkODhkNGIzZWIwMzMwYTU5Y2I5N2IxZDEy
NGYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAt
NzksNyArNzksNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
ZWdpb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9T
aGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1N0cmluZ0V4dHJhcy5oPgpAQCAtOTAsNiAr
ODksNyBAQAogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIC8qIEFQ
SSBpbnRlcm5hbHMuICovCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRl
cm5hbC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHku
aAppbmRleCAxYzRjNGRkODdjZjAwOGJjMmJlM2Q3NzFlN2ExYjVkNGNiY2ZkOTIyLi4zYjI1ZmMx
ZWNkZTQyNjY4NTZiNWIxZjc4NDAzNjEwMGIxMWY4ZDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVh
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuaApAQCAtMzIsOCArMzIsOCBAQAogI2luY2x1
ZGUgIkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNs
dWRlICJMYXllclRyZWVDb250ZXh0LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlZ2lvbjsKQEAgLTExNiw3ICsxMTYsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc0JhY2tpbmdTdG9yZURpc2NhcmRhYmxlOwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxCYWNraW5nU3RvcmU+IG1fYmFja2luZ1N0b3JlOwogCi0gICAgV2ViQ29yZTo6UnVuTG9v
cDo6VGltZXI8Q29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5PiBtX2Rpc2NhcmRCYWNraW5nU3Rv
cmVUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk+
IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUlt
cGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCmlu
ZGV4IGQzMTBlNTcyYWQwYmQ2NjkwN2VkNzQ5NjlhNzYyMzcwZDI4YjZhZmMuLjQzYzkzMjFjYTk5
N2E2MmUxZmVlZGM3ZGVmZGRkM2JhODc0NWI3YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCkBAIC0yOSw4ICsyOSw4IEBACiAjaW5jbHVk
ZSAiQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1
ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgUmVnaW9uOwpAQCAtMTA5LDcgKzEwOSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2lzQmFja2luZ1N0b3JlRGlzY2FyZGFibGU7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29w
OjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5SW1wbD4gbV9kaXNjYXJkQmFja2luZ1N0b3JlVGltZXI7
CisgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFQcm94eUltcGw+IG1fZGlzY2FyZEJhY2tp
bmdTdG9yZVRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hl
ckVmbC5jcHAKaW5kZXggM2JkMWVhNjAzZTMxODhiNDNjMzA1OTU1NTE2ZjcxNzFmZWE2ZDQyMi4u
NjllNmI4M2JjZDI0N2EwYTNlOTdkNGI0MDZhMWQ1OTRkMjYyZjRhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5j
aGVyRWZsLmNwcApAQCAtMjcsOCArMjcsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3Rl
bS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcAppbmRl
eCAzMTY5MTgwNTkxMThmODRiZjg5OWU0YWQwMWI5ZmVjMTUyYTQ1M2MwLi5hYmU4MjA0NTdlOGVm
Zjc1ZWU2OTgzNTc2Y2JlMjhhNGY1N2Y4MTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCkBA
IC0zMywxMCArMzMsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUhhbmRsZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPGVy
cm5vLmg+CiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGxvY2FsZS5oPgorI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vz
c0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Q
cm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggZDhjMTIyM2FlZWQ1MWJmNWZmYWI5MDAwMjVlZWQy
YTNiODEwYmZlOC4uNTIwMmU3YzVkYzgwMTdjMzBkZGRjZGNhZTg2ZWI2ZTM1MjQ4M2Y3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1
bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Q
cm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTI5LDcgKzI5LDYgQEAKICNpbXBvcnQgIkR5bmFtaWNM
aW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oIgogI2ltcG9ydCAiRW52aXJvbm1lbnRWYXJpYWJs
ZXMuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxjcnRfZXh0ZXJucy5oPgogI2ltcG9ydCA8bWFjaC1vL2R5
bGQuaD4KICNpbXBvcnQgPG1hY2gvbWFjaGluZS5oPgpAQCAtNDAsMTMgKzM5LDEyIEBACiAjaW1w
b3J0IDxzeXMvc3RhdC5oPgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvVGhy
ZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KICNpbXBvcnQgPHhwYy94cGMuaD4KIAotdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7Ci0KIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgZG9pbmcgdGhpcyBhbm90aGVyIHdheS4K
IGV4dGVybiAiQyIga2Vybl9yZXR1cm5fdCBib290c3RyYXBfcmVnaXN0ZXIyKG1hY2hfcG9ydF90
LCBuYW1lX3QsIG1hY2hfcG9ydF90LCB1aW50NjRfdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MDk0MGRiNGIwMDUzODA4MTdkYTkxZTllNzg4YzYwNjlhMmYyODQ0Zi4uZmRmNmM3OWUyNGU0ZjU0
NjYwMzA1NDIzYjE3NWMxMDNlZjdlZGJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTM1LDcgKzM1
LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
Q29udGV4dC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBVU0UoU0VD
VVJJVFlfRlJBTUVXT1JLKQogI2luY2x1ZGUgIlNlY0l0ZW1TaGltUHJveHkuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
Y3BwCmluZGV4IDdhZDE3MmE0MDdiMmE2NjYzZDI3MTc2YzkzYWViMGVkYzgyYTRhNGEuLmRhNjM3
YzQxNTVmZGVlNmY4NjY1NWNlMzIwMjQ3OTMzMDU4NDI4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcApAQCAt
MzcsNyArMzcsNyBAQAogI2luY2x1ZGUgIldlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50
ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKaW5kZXggNzY2
YWUwZTIwYzI3ZWRiNDkxN2U3NmZiMTU2MjFkNjcxNGY1YmFiYi4uOTczOWZhM2ExMWY1NDA4YTYx
MDBiMDYzOGViYjEwM2E1OTg0NmZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIuaCIKIAotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgY29uc3QgZG91Ymxl
IHJlc3BvbnNpdmVuZXNzVGltZW91dCA9IDM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Jlc3BvbnNpdmVuZXNzVGltZXIuaAppbmRleCA4ZGIyODcyZmRlYWZlNzk3YzlhZjRlN2VjNzEy
OTE2ZTI2YjdlZWVjLi5mNzVjMGE5OThmZjQ2N2RhYzkzYmE3M2FiYzBlMmE1NmI2YzgxNTkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmgKQEAg
LTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUmVzcG9uc2l2ZW5lc3NUaW1lcl9oCiAjZGVmaW5lIFJl
c3BvbnNpdmVuZXNzVGltZXJfaAogCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU2LDcgKzU2
LDcgQEAgcHJpdmF0ZToKICAgICBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQqIG1fY2xpZW50
OwogICAgIGJvb2wgbV9pc1Jlc3BvbnNpdmU7CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1l
cjxSZXNwb25zaXZlbmVzc1RpbWVyPiBtX3RpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFJlc3Bv
bnNpdmVuZXNzVGltZXI+IG1fdGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oCmluZGV4IGUw
ZTUzMTAyNWIxZGE3MDIzYTU4ZDIzMzE5ZGVhYzFiODQyZGM2YTkuLmMwZDRlYzk2MzcxMDI0ZmVm
Y2UxOGYyNDkzNzY2YjBjODZiYjhmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaApAQCAtMjgsOSArMjgsOSBAQAogCiAjaW5jbHVkZSAiVmlz
aXRlZExpbmtUYWJsZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICBWaXNpdGVkTGlua1RhYmxl
IG1fdGFibGU7CiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OkxpbmtIYXNoLCBXZWJDb3JlOjpMaW5r
SGFzaEhhc2g+IG1fcGVuZGluZ1Zpc2l0ZWRMaW5rczsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpU
aW1lcjxWaXNpdGVkTGlua1Byb3ZpZGVyPiBtX3BlbmRpbmdWaXNpdGVkTGlua3NUaW1lcjsKKyAg
ICBSdW5Mb29wOjpUaW1lcjxWaXNpdGVkTGlua1Byb3ZpZGVyPiBtX3BlbmRpbmdWaXNpdGVkTGlu
a3NUaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDVlZWY1Y2Y1MmY2ZDFjZGFkZTkzMzU3ZjRkOTM5Njhi
OGRkYjRlNDEuLmVkNjI2YWRkN2UxZWM0OTQyMzZlN2NhYWM0NDdjOTk5YTNjMmQ2NmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTYwLDExICs2MCwxMSBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KIAogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKICNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFu
YWdlclByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDBjM2NlYzBkMzM2NTZlODkwODQ4MDFiODJkYmY4NWM5NDcyMzJmMzUuLmJlMWJk
NzRkOThlZjNkMTYxZmRhMDc3NTliZTNiN2JmMTJhMmVjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC00MSwxMCArNDEsMTAgQEAKICNpbmNs
dWRlICJXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUg
PFdlYkNvcmUvVVJMLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TdWRkZW5UZXJtaW5hdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAj
aW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJh
c2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMGVhMTA5YjIzNDBi
OTIzODQ5NjQ3ZWYxODA4OWJhNGU4ZTZmOWYwYi4uNDRhYTY1ZjgxMzk3MDY4YzU1OTk0N2ZhNTQ3
MThmMTdmZDRhNDZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vz
c01haW4ubW0KaW5kZXggMzY1Y2IzNjEyNTU5MDljODMxZTNmYWRkMzg1Y2JhZDZhODcyMjU0Zi4u
ZjUwZGZiNzY2YjIwMWUwNzFjMWFlMzI0MzQ2YzQ4OGViNjhmZWI1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNv
bnRlbnRQcm9jZXNzTWFpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5
UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCkBAIC0zMSwx
MiArMzEsMTIgQEAKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiV0tCYXNl
LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPG1hY2gvbWFjaF9lcnJvci5oPgogI2ltcG9ydCA8c2VydmVycy9ib290c3RyYXAu
aD4KICNpbXBvcnQgPHNwYXduLmg+CiAjaW1wb3J0IDxzdGRpby5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29u
dGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQppbmRl
eCAyMmM4ZmY1ODE4NTA2NjUwNDNkZDI5NzU5MDFjMmFkOWE0YTY3YzUyLi5jZWU3NTFhNTA2ZDhl
MTEzYWJmODQ5MWE4MDdiOTg5MWUyMzI5YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRy
eVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTI5LDcgKzI5LDcg
QEAKICNpbXBvcnQgIldLQmFzZS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9ydCAi
WFBDU2VydmljZUVudHJ5UG9pbnQuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2lt
cG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCmluZGV4IDdlZTJhN2VkMTNi
MTIzMmRlMDBkZjkyN2ZiNmJmNmM4NDk4MTJlYjYuLjI2YzJkODEzZWUzMGViYzE0YzIxOGFmNTIx
ZjE0Njk0YmZmYTg3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTMwLDcgKzMwLDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFByaW9yaXR5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlTG9hZGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKQEAgLTY4LDcgKzY4
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludGVybmFsbHlGYWlsZWRMb2FkVGltZXJGaXJlZCgp
OwogICAgIAogICAgIEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPj4gbV9p
bnRlcm5hbGx5RmFpbGVkUmVzb3VyY2VMb2FkZXJzOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRp
bWVyPFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcj4gbV9pbnRlcm5hbGx5RmFpbGVkTG9hZFRpbWVy
OworICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcj4gbV9pbnRlcm5h
bGx5RmFpbGVkTG9hZFRpbWVyOwogICAgIAogICAgIEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUmVm
UHRyPFdlYlJlc291cmNlTG9hZGVyPj4gbV93ZWJSZXNvdXJjZUxvYWRlcnM7CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50
aW1lT2JqZWN0TWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTlBSdW50aW1lT2JqZWN0TWFwLmgKaW5kZXggZTUxNzhhZDE3NDY3NWM1ZGMyNzhiYWI5NDc1
NzEyODBmMTc0NzQ4Mi4uZmFkZTQxZGY1OGQ0Nzk4MWQzMTRjOWE4ZjQ0YWQzMWE3MGZhZWVkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05Q
UnVudGltZU9iamVjdE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaApAQCAtMjgsMTEgKzI4LDExIEBACiAKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgogI2luY2x1ZGUgPGhlYXAvV2Vha0lubGluZXMu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Cisj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogc3RydWN0IE5QT2JqZWN0OwogdHlwZWRlZiBzdHJ1
Y3QgX05QVmFyaWFudCBOUFZhcmlhbnQ7CkBAIC05OCw3ICs5OCw3IEBAIHByaXZhdGU6CiAgICAg
SGFzaE1hcDxKU0M6OkpTT2JqZWN0KiwgTlBKU09iamVjdCo+IG1fbnBKU09iamVjdHM7CiAgICAg
SGFzaE1hcDxOUE9iamVjdCosIEpTQzo6V2VhazxKU05QT2JqZWN0Pj4gbV9qc05QT2JqZWN0czsK
ICAgICBWZWN0b3I8TlBPYmplY3QqPiBtX25wT2JqZWN0c1RvRmluYWxpemU7Ci0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6VGltZXI8TlBSdW50aW1lT2JqZWN0TWFwPiBtX2ZpbmFsaXphdGlvblRpbWVy
OworICAgIFJ1bkxvb3A6OlRpbWVyPE5QUnVudGltZU9iamVjdE1hcD4gbV9maW5hbGl6YXRpb25U
aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaApp
bmRleCBiNjQ5YTIwZTA4Zjc2MDE4ZmVkMDcxYjEyNmE0ZGQxNjdjNjRkODJlLi4yOTE1N2YyNWM2
OGU2MmRiODkzNDlkNDFjMWRhYTdhY2U2ZDRiMWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaApA
QCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJhbnNmb3JtLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRS
ZWN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTMzMCw3ICszMzAs
NyBAQCBwcml2YXRlOgogICAgICAgICBib29sIG1fcmVwZWF0OwogICAgICAgICBUaW1lckZ1bmMg
bV90aW1lckZ1bmM7CiAKLSAgICAgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8VGltZXI+IG1f
dGltZXI7CisgICAgICAgIFJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBtX3RpbWVyOwogICAgIH07CiAg
ICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+PiBUaW1l
ck1hcDsKICAgICBUaW1lck1hcCBtX3RpbWVyczsKQEAgLTM3Nyw3ICszNzcsNyBAQCBwcml2YXRl
OgogCiAgICAgLy8gRklYTUU6IEl0J3MgYSBiaXQgd2FzdGVmdWwgdG8gaGF2ZSBvbmUgbnVsbCBl
dmVudCB0aW1lciBwZXIgcGx1Zy1pbi4KICAgICAvLyBXZSBzaG91bGQgaW52ZXN0aWdhdGUgaGF2
aW5nIG9uZSBwZXIgd2luZG93LgotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBl
UGx1Z2luPiBtX251bGxFdmVudFRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1
Z2luPiBtX251bGxFdmVudFRpbWVyOwogICAgIE5QX0NHQ29udGV4dCBtX25wQ0dDb250ZXh0Owog
I2VuZGlmCiAjZWxpZiBQTFVHSU5fQVJDSElURUNUVVJFKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVh
bS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luU3RyZWFtLmgKaW5kZXggYjM1MDE4NjM1NmU0OTU2MDNmNGNlMDJmMTk5NGU4Yjk5Mzkx
YzE1Ny4uYWQ4MmM3YWEzMjhmNTMxNWZhYTI4ZjFiNmRkYTI4MjdjZGIyY2NkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKQEAgLTI5LDEyICsyOSwxMiBAQAogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ucHJ1bnRp
bWVfaW50ZXJuYWwuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwNSw3ICsxMDUsNyBAQCBwcml2
YXRlOgogICAgIENTdHJpbmcgbV9taW1lVHlwZTsKICAgICBDU3RyaW5nIG1faGVhZGVyczsKIAot
ICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBtX2RlbGl2
ZXJ5RGF0YVRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBt
X2RlbGl2ZXJ5RGF0YVRpbWVyOwogICAgIE93blB0cjwgVmVjdG9yPHVpbnQ4X3Q+PiBtX2RlbGl2
ZXJ5RGF0YTsKICAgICBib29sIG1fc3RvcFN0cmVhbVdoZW5Eb25lRGVsaXZlcmluZzsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCAy
ZDA0MzNkNTgzOTZkMTBlZDI4YjU3YjViOGNlOTk1MmYyZTE2Njk3Li44OTFlODQ5NzZhOGFjZmVl
NWM4NzdiN2U1NjZkYWQ4YzYzNjBiYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTM2LDkgKzM2LDkgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1BsdWdpblZpZXdCYXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIC8vIEZJWE1FOiBFdmVudHVhbGx5
IHRoaXMgc2hvdWxkIG1vdmUgdG8gV2ViQ29yZS4KIApAQCAtMjM0LDcgKzIzNCw3IEBAIHByaXZh
dGU6CiAKICAgICAvLyBQZW5kaW5nIFVSTFJlcXVlc3RzIHRoYXQgdGhlIHBsdWctaW4gaGFzIG1h
ZGUuCiAgICAgRGVxdWU8UmVmUHRyPFVSTFJlcXVlc3Q+PiBtX3BlbmRpbmdVUkxSZXF1ZXN0czsK
LSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5WaWV3PiBtX3BlbmRpbmdVUkxSZXF1
ZXN0c1RpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpblZpZXc+IG1fcGVuZGluZ1VSTFJl
cXVlc3RzVGltZXI7CiAKICAgICAvLyBQZW5kaW5nIGZyYW1lIGxvYWRzIHRoYXQgdGhlIHBsdWct
aW4gaGFzIG1hZGUuCiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxXZWJGcmFtZT4sIFJlZlB0
cjxVUkxSZXF1ZXN0Pj4gRnJhbWVMb2FkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5n
QXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oCmluZGV4IDI0MmQ5ZGMyMjczMDM2ZDM5NTI1
OWM0MGJiMzYxNDkwOGM4OGRlZDAuLjkzOTYyNmNmODE4MzVmYjZjYWExNzY3NDdlYTBkMDY5ZTA5
OWEzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERy
YXdpbmdBcmVhLmgKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgog
I2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lvbi5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xMjQsOCArMTI0LDggQEAgcHJpdmF0ZToKICAgICAv
LyB3b24ndCBwYWludCB1bnRpbCBwYWludGluZyBoYXMgcmVzdW1lZCBhZ2Fpbi4KICAgICBib29s
IG1faXNQYWludGluZ1N1c3BlbmRlZDsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPENv
b3JkaW5hdGVkRHJhd2luZ0FyZWE+IG1fZGlzcGxheVRpbWVyOwotICAgIFdlYkNvcmU6OlJ1bkxv
b3A6OlRpbWVyPENvb3JkaW5hdGVkRHJhd2luZ0FyZWE+IG1fZXhpdENvbXBvc2l0aW5nVGltZXI7
CisgICAgUnVuTG9vcDo6VGltZXI8Q29vcmRpbmF0ZWREcmF3aW5nQXJlYT4gbV9kaXNwbGF5VGlt
ZXI7CisgICAgUnVuTG9vcDo6VGltZXI8Q29vcmRpbmF0ZWREcmF3aW5nQXJlYT4gbV9leGl0Q29t
cG9zaXRpbmdUaW1lcjsKIAogICAgIC8vIFRoZSBsYXllciB0cmVlIGhvc3QgdGhhdCBoYW5kbGVz
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgogICAgIFJlZlB0cjxMYXllclRyZWVIb3N0PiBtX2xh
eWVyVHJlZUhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWFJbXBsLmgKaW5kZXggM2U1YTg5MGFhMGJkZWViNGM4M2E2Mzk5MDE4MDY4MDA1
ZjEwYjA0MS4uMWIxM2VkMDc1ZTAwZWE3M2M2NDIwZDNlMTg4MzVhNWNhMGYzZmQxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwu
aApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAi
TGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKQEAgLTEyNyw4ICsxMjcsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1BhaW50aW5nU3VzcGVuZGVkOwogICAgIGJvb2wgbV9h
bHdheXNVc2VDb21wb3NpdGluZzsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPERyYXdp
bmdBcmVhSW1wbD4gbV9kaXNwbGF5VGltZXI7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8
RHJhd2luZ0FyZWFJbXBsPiBtX2V4aXRDb21wb3NpdGluZ1RpbWVyOworICAgIFJ1bkxvb3A6OlRp
bWVyPERyYXdpbmdBcmVhSW1wbD4gbV9kaXNwbGF5VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8
RHJhd2luZ0FyZWFJbXBsPiBtX2V4aXRDb21wb3NpdGluZ1RpbWVyOwogCiAgICAgLy8gVGhlIGxh
eWVyIHRyZWUgaG9zdCB0aGF0IGhhbmRsZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCiAgICAg
UmVmUHRyPExheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggMWMx
ZTIxNDVhMTEzNjFjZWJlMmM5ZmI3ODE3YmI3YjEwN2U2ZTZjNC4uNzIwMTc4N2NiNGMwMTA0ZmFk
Y2ZjYzNiYjczMmEwZWJiNzgyZmRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTMzLDggKzMzLDggQEAKICNp
bmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAK
ICNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9QYWdlT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1BhZ2VPdmVybGF5LmgKaW5kZXggODk2ZjEyNjc1ODE4NTU3ZTY5NTIwYjM2YTlmYjQzMmEwN2Rh
NTg4OS4uNjFjNjgxOGRkNmI1ZmJjMGM1Yzk0NDM2NjlmOGY5OTY3OWRjNzE4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKQEAgLTI4LDgg
KzI4LDggQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDsKQEAgLTkwLDcgKzkwLDcgQEAgcHJpdmF0ZToKICAgICBDbGll
bnQqIG1fY2xpZW50OwogICAgIFdlYlBhZ2UqIG1fd2ViUGFnZTsKIAotICAgIFdlYkNvcmU6OlJ1
bkxvb3A6OlRpbWVyPFBhZ2VPdmVybGF5PiBtX2ZhZGVBbmltYXRpb25UaW1lcjsKKyAgICBSdW5M
b29wOjpUaW1lcjxQYWdlT3ZlcmxheT4gbV9mYWRlQW5pbWF0aW9uVGltZXI7CiAgICAgZG91Ymxl
IG1fZmFkZUFuaW1hdGlvblN0YXJ0VGltZTsKICAgICBkb3VibGUgbV9mYWRlQW5pbWF0aW9uRHVy
YXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCBjYjBjMTUzMzQzN2IwNjZiNjlmODY1MDdkNGIyZjJkZDNiOGFhNjY2Li5kM2ZlMDVk
OGEzOWFkYmY1NTQyYTRmNWRlNjE3MjBmMzRkMDUwZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjUsNyArMTI1LDYgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CkBAIC0xNDIsNiArMTQxLDcgQEAKICNpbmNs
dWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAKICNpZiBFTkFCTEUoTUhUTUwpCiAjaW5jbHVkZSA8V2ViQ29yZS9NSFRNTEFyY2hpdmUuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDg2YzUx
YTMzMWI3ODdiMmE4MzQyNGExOGZjMjcxM2Q3OTZlODVhOWIuLjBkNDdiZjZhYjQ3YzVmZGU3NDEw
NGI3NDI1MDVlZjY1NmY2MWZmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaApAQCAtODYyLDcgKzg2Miw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1f
cHJpbWFyeVBsdWdJblBhZ2VPcmlnaW47CiAgICAgU3RyaW5nIG1fcHJpbWFyeVBsdWdJbk9yaWdp
bjsKICAgICBTdHJpbmcgbV9wcmltYXJ5UGx1Z0luTWltZVR5cGU7Ci0gICAgV2ViQ29yZTo6UnVu
TG9vcDo6VGltZXI8V2ViUGFnZT4gbV9kZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5U
aW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX2RldGVybWluZVByaW1hcnlTbmFw
c2hvdHRlZFBsdWdJblRpbWVyOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC05MDEs
OCArOTAxLDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UGFnZUJhbm5lcj4gbV9oZWFkZXJCYW5u
ZXI7CiAgICAgUmVmUHRyPFBhZ2VCYW5uZXI+IG1fZm9vdGVyQmFubmVyOwogCi0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZXRDYW5TdGFydE1lZGlhVGltZXI7Ci0gICAg
V2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZW5kRGlkVXBkYXRlVmlld1N0YXRl
VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZXRDYW5TdGFydE1lZGlhVGlt
ZXI7CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZW5kRGlkVXBkYXRlVmlld1N0YXRl
VGltZXI7CiAgICAgYm9vbCBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CiAKICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViVW5kb1N0ZXA+PiBtX3VuZG9TdGVwTWFwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYzA5MGY0NDU1NTYzYTg4YmZk
MWU2ODA5ODM1OGNjYjc4YWJhZDNjMi4uMzQ0NDM0N2E4YmEyNWM1MzNlOTUyNjA1MTU2YjZmOGM2
NzBmMzg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC03
NCw3ICs3NCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJl
Z2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTgzLDYgKzgyLDcgQEAKICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAppbmRl
eCA1YjM0ODBkYTRmZGEzYmQzYzg0YjAxZjM3YWY1ZmVkMDNhZGQwZTAyLi40ZDI0OWRiZDIzOGEy
ODIyODdmMTE3ZWI3ZWMzMzFhNmFmNDA3M2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCkBAIC0zNiwxMSArMzYsMTEgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VI
YW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJLaXQy
L1dlYlByb2Nlc3MuaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KICNpbmNsdWRlIDxydW50
aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmZGVmIEhBVkVfRUNP
UkVfWApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vz
c01haW5HdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01h
aW5HdGsuY3BwCmluZGV4IDU0YzhkZjNlMGNiY2VjNzVkNzA5MmMyYjI0MjZhYzdmZjUxYzRlZjgu
LmI0ODFlZTM0ZjIzZTNhYjhhZmVlNGViYjUyYWViNTBlMDIzNzUzM2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKQEAgLTMy
LDEyICszMiwxMiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUhhbmRsZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPFdlYktpdDIvV2ViUHJvY2Vzcy5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNs
dWRlIDxsaWJpbnRsLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAjaW5jbHVkZSA8dW5p
c3RkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9H
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216493</attachid>
            <date>2013-11-09 06:22:10 -0800</date>
            <delta_ts>2013-11-09 12:57:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116606-20131109152207.patch</filename>
            <type>text/plain</type>
            <size>166330</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4OTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFjMGNmNWYxZTc2NmNiM2UzMDQyYTEx
YzcwNzJjMmFhMTg0Y2M2ZjguLjQwNmQwYzY3ZmZlMTgxZjU4NGVhOWNmNmY4MjQ2MDRmOGVmMWQ2
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTAwIEBACisyMDEzLTExLTA4ICBQYXRyaWNrIEdhbnN0ZXJlciAg
PHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgUnVuTG9vcCBmcm9tIFdlYkNvcmUg
dG8gV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY2MDYKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCisKKyAgICAgICAg
V2l0aCB0aGlzIGNoYW5nZSBSdW5Mb29wIGNhbiBiZSB1c2VkIGluIEphdmFTY3JpcHRDb3JlIHRv
by4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLnZjeHBy
b2ovV1RGLnZjeHByb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUJs
YWNrQmVycnkuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XaW4uY21h
a2U6CisgICAgICAgICogd3RmL1J1bkxvb3AuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAuCisgICAgICAgIChXVEY6OlJ1bkxvb3A6OkhvbGRlcjo6
SG9sZGVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6SG9sZGVyOjpydW5Mb29wKToKKyAgICAg
ICAgKFdURjo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6Y3VycmVudCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Om1haW4pOgorICAgICAg
ICAoV1RGOjpSdW5Mb29wOjppc01haW4pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpwZXJmb3Jt
V29yayk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OmRpc3BhdGNoKToKKyAgICAgICAgKiB3dGYv
UnVuTG9vcC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5o
LgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0UmVwZWF0aW5nKToKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydE9uZVNob3QpOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzUmVwZWF0aW5nKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6VGltZXI6OlRpbWVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXI6OmZpcmVk
KToKKyAgICAgICAgKiB3dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHA6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0Jl
cnJ5LmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAg
ICAgICAgKiB3dGYvY2YvUnVuTG9vcENGLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NmL1J1bkxvb3BDRi5jcHAuCisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnBlcmZv
cm1Xb3JrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuRm9yRHVyYXRp
b24pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpydW4pOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjpUaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6
On5UaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogd3RmL2VmbC9SdW5Mb29w
RWZsLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SdW5Mb29w
RWZsLmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAg
ICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcEV2
ZW50KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1l
ckJhc2U6On5UaW1lckJhc2UpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnRp
bWVyRmlyZWQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogd3RmL2d0ay9SdW5Mb29wR3Rr
LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3Rr
LmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cnVuKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6aW5uZXJtb3N0TG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnB1
c2hOZXN0ZWRNYWluTG9vcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnBvcE5lc3RlZE1haW5M
b29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxv
b3A6OnF1ZXVlV29yayk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGlt
ZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJC
YXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJh
c2U6OnN0YXJ0KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKToKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogd3Rm
L3dpbi9SdW5Mb29wV2luLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9SdW5Mb29wV2luLmNwcC4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6UnVuTG9vcFduZFBy
b2MpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp3bmRQcm9jKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6cnVuKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcyk6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp+UnVuTG9vcCk6
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6
OlRpbWVyQmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OmdlbmVyYXRlVGltZXJJRCk6
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFz
ZTo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUpOgor
CiAyMDEzLTExLTA3ICBEZW5pcyBOb21peWFtYSAgPGQubm9taXlhbWFAc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0dUS10gR2x5cGhzIGluIHZlcnRpY2FsIHRleHQgdGVzdHMgYXJlIHJvdGF0ZWQg
OTAgZGVncmVlcyBjbG9ja3dpc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NGEwOWZiNDI2MGM2OGNiOGY1ZTJh
NmM5NTQyNDMxYWMyMWU2OThhLi41ZjUxNGU5MzAwM2M3ZDdkZWNlYmRjNDFjYmNhN2JiNWM2YTRi
OTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMTEtMDggIFBhdHJpY2sgR2Fu
c3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIGZyb20g
V2ViQ29yZSB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExNjYwNgorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlOgorICAgICAgICAqIFBsYXRmb3Jt
RWZsLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFBsYXRm
b3JtV2luLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmg6CisK
IDIwMTMtMTAtMzAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
W01TRV0gQnJpbmcgU291cmNlQnVmZmVyLmFwcGVuZCB1cCB0byB0aGUgbW9zdCByZWNlbnQgc3Bl
Yy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBmYjlkODE1MjY5MDBjZmExMTJhNDkxOGFmMzIyNDliOWQ0
Yzg5ZjI1Li4zZjFlOTlhMzAxZWIwM2MxNGYxNDRiY2ZmZDdhYzM2NDNhODQ3NjUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTMtMTEtMDggIFBhdHJpY2sgR2Fuc3RlcmVy
ICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIGZyb20gV2ViQ29y
ZSB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExNjYwNgorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAg
ICAqIENhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tOgorICAgICAgICAoK1tDYXJib25XaW5k
b3dBZGFwdGVyIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBIaXN0b3J5L1dlYkJhY2tGb3J3YXJk
TGlzdC5tbToKKyAgICAgICAgKCtbV2ViQmFja0ZvcndhcmRMaXN0IGluaXRpYWxpemVdKToKKyAg
ICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoK1tXZWJIaXN0b3J5
SXRlbSBpbml0aWFsaXplXSk6CisgICAgICAgICogTWlzYy9XZWJDYWNoZS5tbToKKyAgICAgICAg
KCtbV2ViQ2FjaGUgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIE1pc2MvV2ViRWxlbWVudERpY3Rp
b25hcnkubW06CisgICAgICAgICgrW1dlYkVsZW1lbnREaWN0aW9uYXJ5IGluaXRpYWxpemVdKToK
KyAgICAgICAgKiBNaXNjL1dlYkljb25EYXRhYmFzZS5tbToKKyAgICAgICAgKCtbV2ViSWNvbkRh
dGFiYXNlIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWRO
ZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgrW1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2lu
VmlldyBpbml0aWFsaXplXSk6CisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tOgorICAgICAgICAqIFBsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW06Cisg
ICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgrW1dl
Yk5ldHNjYXBlUGx1Z2luVmlldyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoK1tXZWJVbmRvU3RlcCBpbml0aWFsaXpl
XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06Cisg
ICAgICAgICogV2ViVmlldy9XZWJBcmNoaXZlLm1tOgorICAgICAgICAoK1tXZWJBcmNoaXZlUHJp
dmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJEYXRhU291cmNlLm1tOgor
ICAgICAgICAoK1tXZWJEYXRhU291cmNlIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoK1tXZWJIVE1MVmlld1ByaXZhdGUgaW5pdGlhbGl6
ZV0pOgorICAgICAgICAoK1tXZWJIVE1MVmlldyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlh
bGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUmVzb3VyY2UubW06CisgICAgICAgICgrW1dl
YlJlc291cmNlUHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJUZXh0
SXRlcmF0b3IubW06CisgICAgICAgICgrW1dlYlRleHRJdGVyYXRvclByaXZhdGUgaW5pdGlhbGl6
ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBp
bml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAgICAg
KCtbV2ViVmlld1ByaXZhdGUgaW5pdGlhbGl6ZV0pOgorCiAyMDEzLTExLTA3ICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGEgUExBVEZPUk0o
SU9TKSBmcm9tIFdlYktpdCBQcml2YXRlIEhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDViYWU0ZjExOWQ3
MDg4YWQ4Nzk1NmU5NDY0ODBhZGQ5YmJkMDJkMWEuLjBkOGU5MjhjMzcwMTJhMTdiMDMyMmFhN2Vh
MWJhM2NjYWRkZTg1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxMy0xMS0wOCAg
UGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1
bkxvb3AgZnJvbSBXZWJDb3JlIHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENh
cmxzc29uLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHA6
CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
dW5peC9OZXR3b3JrUHJvY2Vzc01haW5Vbml4LmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVn
aW5Qcm9jZXNzTWFpbi5tbToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAgICogUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNz
L1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vz
cy5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzTWFpblVuaXguY3BwOgor
ICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAqIFNoYXJlZC9DaGls
ZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxk
UHJvY2Vzc0VudHJ5UG9pbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tOgorICAgICAgICAq
IFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJL
aXQySW5pdGlhbGl6ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVy
L2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hl
ci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVz
c1RpbWVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9j
ZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9M
ZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50
Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2Jq
ZWN0TWFwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luU3RyZWFtLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZERyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhSW1wbC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcDoKKwogMjAxMy0xMS0w
OCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEVuY29k
ZSBhbmQgZGVjb2RlIE5TVVJMUmVxdWVzdHMgdXNpbmcgTlNDb2RlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDI3MGViYjRmZGU0MWU2NTBlMjI1NzE3NjVlZjQzYzU5YzlhZDMxNGYuLjc5MjYx
MDQ2NGI0MjQxNzczMDhkZDE0MzY2MWNlODFkOGRkMmYwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTEzNyw2ICsxMzcsOCBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93
dGYvUmVmUHRyLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1JlZlB0ckhhc2hNYXAuaCBcCiAgICAg
U291cmNlL1dURi93dGYvUmV0YWluUHRyLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
Y3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggXAogICAgIFNvdXJjZS9XVEYvd3Rm
L1NIQTEuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9TSEExLmggXAogICAgIFNvdXJjZS9XVEYv
d3RmL1NhdHVyYXRlZEFyaXRobWV0aWMuaCBcCkBAIC0yMTYsNiArMjE4LDcgQEAgd3RmX3NvdXJj
ZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5jcHAgXAog
ICAgIFNvdXJjZS9XVEYvd3RmL2dvYmplY3QvR2xpYlV0aWxpdGllcy5oIFwKICAgICBTb3VyY2Uv
V1RGL3d0Zi9ndGsvTWFpblRocmVhZEd0ay5jcHAgXAorICAgIFNvdXJjZS9XVEYvd3RmL2d0ay9S
dW5Mb29wR3RrLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9BU0NJSUZhc3RQYXRoLmgg
XAogICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcCBcCiAgICAgU291cmNl
L1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dU
Ri52Y3hwcm9qL1dURi52Y3hwcm9qIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJv
agppbmRleCAxNWJlNjUzZjE3MmZiNGRjNDBiMDhmOTc3NTQ5NGYyMjVlMDY4OWFhLi41MTZjNWYx
MTczNmE0NmVjYWQ1OWUwMjAyZjJkOTQ2ZWNhYzk3MTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RG
LnZjeHByb2oKQEAgLTg5LDYgKzg5LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0
ZlxSQU1TaXplLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcUmFuZG9t
TnVtYmVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcUmVmQ291bnRl
ZExlYWtDb3VudGVyLmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcUnVu
TG9vcC5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFNIQTEuY3BwIiAv
Pg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxTaXhDaGFyYWN0ZXJIYXNoLmNwcCIg
Lz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcU2l6ZUxpbWl0cy5jcHAiIC8+DQpA
QCAtMTE0LDYgKzExNSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcdW5pY29k
ZVxpY3VcQ29sbGF0b3JJQ1UuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0
Zlx1bmljb2RlXFVURjguY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0Zlx3
aW5cTWFpblRocmVhZFdpbi5jcHAiIC8+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3Rm
XHdpblxSdW5Mb29wV2luLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZc
V1RGVGhyZWFkRGF0YS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFNj
aGVkdWxlUGFpckNGLmNwcCIgLz4NCiAgIDwvSXRlbUdyb3VwPg0KQEAgLTIyMSw2ICsyMjMsNyBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFJlZlB0ci5oIiAvPg0KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxSZWZQdHJIYXNoTWFwLmgiIC8+DQogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd3RmXFJldGFpblB0ci5oIiAvPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHd0ZlxSdW5Mb29wLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XFNhdHVyYXRlZEFyaXRobWV0aWMuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcU2NoZWR1bGVQYWlyLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFNl
Z21lbnRlZFZlY3Rvci5oIiAvPg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGM2YWRmYzg3ODBjOTNkMWZiNzJkYWUwMWI5ZDk1Yjg0NmM0OTdkMjMuLmFkY2I0
YTJhNTM3YmEwOTQ0OTZjOWJkMDIyMjAyNWQ0NGUxNDc0ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjAsNiArNjAsOSBAQAogCQkyNjI5OUI2RTE3QTlF
NUI4MDBBREVCRTUgLyogUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyNjI5OUI2RDE3QTlFNUI4MDBBREVCRTUgLyogUmVmLmggKi87IH07CiAJCTJD
MDUzODU0MTVCQzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRlVGltZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwNTM4NTMxNUJDODE5MDAwRjIx
Qjk2IC8qIEdyZWdvcmlhbkRhdGVUaW1lLmggKi87IH07CiAJCTJDQ0Q4OTJBMTVDMDM5MDIwMDI4
NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0NEODkyOTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFu
RGF0ZVRpbWUuY3BwICovOyB9OworCQkyQ0RFRDBFRjE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9v
cENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJD
REVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovOyB9OworCQkyQ0RFRDBG
MzE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBGMTE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9v
cC5jcHAgKi87IH07CisJCTJDREVEMEY0MTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBGMjE4MTE1
Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovOyB9OwogCQk0NEY2NjAwODE3MUFGQUU2MDBFNEFE
MTkgLyogRW51bUNsYXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NEY2NjAwNzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi87IH07CiAJ
CTRGMDMyMUJDMTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8q
IEJpdEFycmF5LmggKi87IH07CiAJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVu
dGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0UyOUMzM0QxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmggKi87IH07
CkBAIC0zMjQsNiArMzI3LDkgQEAKIAkJMjYyOTlCNkQxN0E5RTVCODAwQURFQkU1IC8qIFJlZi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWYuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkMwNTM4NTMxNUJDODE5MDAwRjIxQjk2IC8qIEdyZWdvcmlhbkRhdGVU
aW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyZWdvcmlhbkRhdGVUaW1l
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDQ0Q4OTI5MTVDMDM5MDIwMDI4NTA4
MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBHcmVnb3JpYW5EYXRlVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUnVuTG9vcENGLmNwcDsgcGF0aCA9IGNmL1J1bkxv
b3BDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDREVEMEYxMTgxMTVDODUw
MDREQkE3MCAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJ1bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0RFRDBGMjE4
MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSdW5Mb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0REVFNzRBMTUy
Mjc0QkIwMEM2RUMzNyAvKiBpT1MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBw
YXRoID0gaU9TLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEY2NjAw
NzE3MUFGQUE5MDBFNEFEMTkgLyogRW51bUNsYXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVudW1DbGFz
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjAzMjFCQjE1NkFBOEQxMDA2RUJB
RjYgLyogQml0QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQml0QXJy
YXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU2NSw2ICs1NzEsMTQgQEAKIAkJ
CXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkyQ0RFRDBG
MDE4MTE1QzNGMDA0REJBNzAgLyogY2YgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3Bw
ICovLAorCQkJKTsKKwkJCW5hbWUgPSBjZjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC02MjUsNiArNjM5LDcgQEAKIAkJQTg3NkRCRDYxNTE4MTZFNTAw
REFEQjk1IC8qIHd0ZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJMkNERUQwRjAxODExNUMzRjAwNERCQTcwIC8qIGNmICovLAogCQkJCUE4QTQ3MjgxMTUx
QTgyNUEwMDQxMjNGRiAvKiBkdG9hICovLAogCQkJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAv
KiBpb3MgKi8sCiAJCQkJQThBNDcyQzQxNTFBODI1QTAwNDEyM0ZGIC8qIG1hYyAqLywKQEAgLTc2
NSw2ICs3ODAsOCBAQAogCQkJCUE4QTQ3MzAzMTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZQdHIuaCAq
LywKIAkJCQlBOEE0NzMwNDE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5oICovLAog
CQkJCUE4QTQ3MzA1MTUxQTgyNUIwMDQxMjNGRiAvKiBSZXRhaW5QdHIuaCAqLywKKwkJCQkyQ0RF
RDBGMTE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgKi8sCisJCQkJMkNERUQwRjIxODEx
NUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkxNDY5NDE5MDE2RUFBRjZEMDAyNEUx
NDYgLyogUnVuTG9vcFRpbWVyLmggKi8sCiAJCQkJMTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8q
IFJ1bkxvb3BUaW1lckNGLmNwcCAqLywKIAkJCQkxNEYzQjBGNjE1RTQ1RTQ2MDAyMTAwNjkgLyog
U2F0dXJhdGVkQXJpdGhtZXRpYy5oICovLApAQCAtMTA1Niw2ICsxMDczLDcgQEAKIAkJCQlBOEE0
NzQxQzE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0
NzQxRDE1MUE4MjVCMDA0MTIzRkYgLyogUmVmUHRySGFzaE1hcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThBNDc0MUUxNTFBODI1QjAwNDEyM0ZGIC8qIFJldGFpblB0ci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMkNERUQwRjQxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICov
LAogCQkJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0RjNCMEY3MTVFNDVFNDYwMDIxMDA2OSAvKiBTYXR1cmF0ZWRBcml0aG1l
dGljLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDY5NDE5NjE2RUFBRkY4MDAyNEUxNDYgLyogU2No
ZWR1bGVQYWlyLmggaW4gSGVhZGVycyAqLywKQEAgLTEyMzIsNiArMTI1MCw4IEBACiAJCQkJMTQz
RjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QThBNDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzQxQTE1MUE4MjVCMDA0MTIzRkYgLyogUmVmQ291bnRlZExlYWtDb3VudGVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDREVEMEYzMTgxMTVDODUwMDREQkE3MCAvKiBSdW5M
b29wLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDREVEMEVGMTgxMTVDMzgwMDREQkE3MCAvKiBS
dW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRFMTQ2
IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Njk0MTk5MTZFQUIw
NDEwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJB
MTVGMzE4MjQzM0E5MDBBODJFNjkgLyogU3RyaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NN
YWtlTGlzdHMudHh0CmluZGV4IGI2MTdiN2RmOGQ2MjVmODg3MjI3MmNkMjZjZTQwYzBhZDEyZTAz
MTEuLmFiMmU0YmY1Y2RkODhjM2U2ZGNjN2NmNGE4ZGEyODJlMDdhZjUwNmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CkBAIC04Niw2ICs4Niw3IEBAIHNldChXVEZfSEVBREVSUwogICAgIFJlZlB0ci5o
CiAgICAgUmVmUHRySGFzaE1hcC5oCiAgICAgUmV0YWluUHRyLmgKKyAgICBSdW5Mb29wLmgKICAg
ICBTSEExLmgKICAgICBTYXR1cmF0ZWRBcml0aG1ldGljLmgKICAgICBTZWdtZW50ZWRWZWN0b3Iu
aApAQCAtMTczLDYgKzE3NCw3IEBAIHNldChXVEZfU09VUkNFUwogICAgIFJBTVNpemUuY3BwCiAg
ICAgUmFuZG9tTnVtYmVyLmNwcAogICAgIFJlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKKyAgICBS
dW5Mb29wLmNwcAogICAgIFNIQTEuY3BwCiAgICAgU2l4Q2hhcmFjdGVySGFzaC5jcHAKICAgICBT
dGFja0JvdW5kcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tC
ZXJyeS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQppbmRl
eCBiNWRlMzA1MjMzNmQ5NTEzNTc0MTc4MGYxYTM4ZTRkMGJjZjA1YzJiLi4wODU3NjZjNDZjMTJl
OWVmNWIyNzFiZmRkYTZiNjUzYTI1NzI3OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1CbGFj
a0JlcnJ5LmNtYWtlCkBAIC0xLDMgKzEsNCBAQAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAg
ICBibGFja2JlcnJ5L01haW5UaHJlYWRCbGFja0JlcnJ5LmNwcAorICAgIGJsYWNrYmVycnkvUnVu
TG9vcEJsYWNrQmVycnkuY3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVmbC5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDc3MWM4
MmUyNGJjNGJmMThlMzJlYzM0ZTdiMGI0OWY2OTI4MzlmNjYuLmUxMGE0NDIzOGM5NTI5ZDlkMDUx
OGI0YTFmMDljNDdhYzE0NDJmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0yLDYg
KzIsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGVmbC9NYWluVGhyZWFkRWZsLmNw
cAogICAgIGVmbC9Pd25QdHJFZmwuY3BwCiAgICAgZWZsL1JlZlB0ckVmbC5jcHAKKyAgICBlZmwv
UnVuTG9vcEVmbC5jcHAKIAogICAgIGdvYmplY3QvR093blB0ci5jcHAKICAgICBnb2JqZWN0L0dS
ZWZQdHIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZSBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDY4OTQwZmYyNGNlOGM3NmJk
M2IyYTlkNzFkMWI2MWQxYWYwNWMzMGEuLjQzZGE3MDk1NmYwOTI3NDZmYzYxNWM0MTVlYmQ0NGYw
YTAwYTU4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC00LDYgKzQsNyBAQCBsaXN0
KEFQUEVORCBXVEZfU09VUkNFUwogICAgIGdvYmplY3QvR2xpYlV0aWxpdGllcy5jcHAKIAogICAg
IGd0ay9NYWluVGhyZWFkR3RrLmNwcAorICAgIGd0ay9SdW5Mb29wR3RrLmNwcAogKQogCiBsaXN0
KEFQUEVORCBXVEZfTElCUkFSSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVdpbi5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IDg4YmRh
ZjcxM2U1MjhjMTQ4OGU4YjlhYWZkNzE5OTczYTA4ZmYwOGMuLjg4MzRkMjUyZjRjMDQ5YzlkZGZi
MzM1Njg4NDg0MjkzODQ1MTA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
V2luLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCkBAIC0yLDYg
KzIsNyBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHRocmVhZHMvd2luL0JpbmFyeVNl
bWFwaG9yZVdpbi5jcHAKIAogICAgIHdpbi9NYWluVGhyZWFkV2luLmNwcAorICAgIHdpbi9SdW5M
b29wV2luLmNwcAogKQogCiBpZiAoV0lOQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9S
dW5Mb29wLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYTg2
MGZkMDY1MTk1ZDI3ZmI3ZTliZmMwNzczNGUzZTdhNDkwNzQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CisKK25h
bWVzcGFjZSBXVEYgeworCitzdGF0aWMgUnVuTG9vcCogc19tYWluUnVuTG9vcDsKKworLy8gSGVs
cGVyIGNsYXNzIGZvciBUaHJlYWRTcGVjaWZpY0RhdGEuCitjbGFzcyBSdW5Mb29wOjpIb2xkZXIg
eworcHVibGljOgorICAgIEhvbGRlcigpCisgICAgICAgIDogbV9ydW5Mb29wKGFkb3B0UmVmKG5l
dyBSdW5Mb29wKSkKKyAgICB7CisgICAgfQorCisgICAgUnVuTG9vcCogcnVuTG9vcCgpIGNvbnN0
IHsgcmV0dXJuIG1fcnVuTG9vcC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxSdW5M
b29wPiBtX3J1bkxvb3A7Cit9OworCit2b2lkIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9v
cCgpCit7CisgICAgaWYgKHNfbWFpblJ1bkxvb3ApCisgICAgICAgIHJldHVybjsKKyAgICBzX21h
aW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworfQorCitSdW5Mb29wKiBSdW5Mb29wOjpj
dXJyZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8
UnVuTG9vcDo6SG9sZGVyPiwgcnVuTG9vcEhvbGRlciwgKCkpOworICAgIHJldHVybiBydW5Mb29w
SG9sZGVyLT5ydW5Mb29wKCk7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6Om1haW4oKQoreworICAg
IEFTU0VSVChzX21haW5SdW5Mb29wKTsKKyAgICByZXR1cm4gc19tYWluUnVuTG9vcDsKK30KKwor
Ym9vbCBSdW5Mb29wOjppc01haW4oKQoreworICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKKyAg
ICByZXR1cm4gc19tYWluUnVuTG9vcCA9PSBSdW5Mb29wOjpjdXJyZW50KCk7Cit9CisKK3ZvaWQg
UnVuTG9vcDo6cGVyZm9ybVdvcmsoKQoreworICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byBoYW5k
bGUgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgcXVldWUgb25lIGF0IGEgdGltZSBiZWNhdXNlIHdoaWxl
IGluc2lkZSBvbmUgb2YgdGhlc2UKKyAgICAvLyBmdW5jdGlvbnMgd2UgbWlnaHQgcmUtZW50ZXIg
UnVuTG9vcDo6cGVyZm9ybVdvcmsoKSBhbmQgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHBpY2sgdXAg
d2hlcmUgd2UgbGVmdCBvZmYuCisgICAgLy8gU2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvODk1OTAg
Zm9yIG1vcmUgZGlzY3Vzc2lvbi4KKworICAgIC8vIE9uZSBwb3NzaWJsZSBzY2VuYXJpbyB3aGVu
IGhhbmRsaW5nIHRoZSBmdW5jdGlvbiBxdWV1ZSBpcyBhcyBmb2xsb3dzOgorICAgIC8vIC0gUnVu
TG9vcDo6cGVyZm9ybVdvcmsoKSBpcyBpbnZva2VkIHdpdGggMSBmdW5jdGlvbiBvbiB0aGUgcXVl
dWUKKyAgICAvLyAtIEhhbmRsaW5nIHRoYXQgZnVuY3Rpb24gcmVzdWx0cyBpbiAxIG1vcmUgZnVu
Y3Rpb24gYmVpbmcgZW5xdWV1ZWQKKyAgICAvLyAtIEhhbmRsaW5nIHRoYXQgb25lIHJlc3VsdHMg
aW4geWV0IGFub3RoZXIgYmVpbmcgZW5xdWV1ZWQKKyAgICAvLyAtIEFuZCBzbyBvbgorICAgIC8v
CisgICAgLy8gSW4gdGhpcyBzaXR1YXRpb24gb25lIGludm9jYXRpb24gb2YgcGVyZm9ybVdvcmso
KSBuZXZlciByZXR1cm5zIHNvIGFsbCBvdGhlciBldmVudCBzb3VyY2VzIGFyZSBibG9ja2VkLgor
ICAgIC8vIEJ5IG9ubHkgaGFuZGxpbmcgdXAgdG8gdGhlIG51bWJlciBvZiBmdW5jdGlvbnMgdGhh
dCB3ZXJlIGluIHRoZSBxdWV1ZSB3aGVuIHBlcmZvcm1Xb3JrKCkgaXMgY2FsbGVkCisgICAgLy8g
d2UgZ3VhcmFudGVlIHRvIG9jY2FzaW9uYWxseSByZXR1cm4gZnJvbSB0aGUgcnVuIGxvb3Agc28g
b3RoZXIgZXZlbnQgc291cmNlcyB3aWxsIGJlIGFsbG93ZWQgdG8gc3Bpbi4KKworICAgIHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbjsKKyAgICBzaXplX3QgZnVuY3Rpb25zVG9IYW5kbGUg
PSAwOworCisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVl
TG9jayk7CisgICAgICAgIGZ1bmN0aW9uc1RvSGFuZGxlID0gbV9mdW5jdGlvblF1ZXVlLnNpemUo
KTsKKworICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBmdW5jdGlvbiA9IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3Qo
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbigpOworCisgICAgZm9yIChzaXplX3QgZnVuY3Rpb25z
SGFuZGxlZCA9IDE7IGZ1bmN0aW9uc0hhbmRsZWQgPCBmdW5jdGlvbnNUb0hhbmRsZTsgKytmdW5j
dGlvbnNIYW5kbGVkKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKKworICAgICAgICAgICAgLy8gRXZlbiBpZiB3ZSBzdGFy
dCBvZmYgd2l0aCBOIGZ1bmN0aW9ucyB0byBoYW5kbGUgYW5kIHdlJ3ZlIG9ubHkgaGFuZGxlZCBs
ZXNzIHRoYW4gTiBmdW5jdGlvbnMsIHRoZSBxdWV1ZQorICAgICAgICAgICAgLy8gc3RpbGwgbWln
aHQgYmUgZW1wdHkgYmVjYXVzZSB0aG9zZSBmdW5jdGlvbnMgbWlnaHQgaGF2ZSBiZWVuIGhhbmRs
ZWQgaW4gYW4gaW5uZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKS4KKyAgICAgICAgICAgIC8vIElu
IHRoYXQgY2FzZSB3ZSBzaG91bGQgYmFpbCBoZXJlLgorICAgICAgICAgICAgaWYgKG1fZnVuY3Rp
b25RdWV1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uID0gbV9mdW5jdGlvblF1ZXVlLnRha2VGaXJzdCgpOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBmdW5jdGlvbigpOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpkaXNw
YXRjaChzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uKQoreworICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKKyAgICBtX2Z1bmN0aW9uUXVldWUuYXBwZW5k
KHN0ZDo6bW92ZShmdW5jdGlvbikpOworCisgICAgd2FrZVVwKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dU
Ri93dGYvUnVuTG9vcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyOGI0NGVkZTAwNTg4YzA4MTg5OTAzNDA1MzY4
MzMxOWI1OTY1NDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgK
QEAgLTAsMCArMSwxNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj
KSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFJ1bkxvb3BfaAorI2RlZmluZSBSdW5Mb29wX2gKKworI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uRGlzcGF0Y2hlci5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1JlZlB0ci5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8RWNvcmUu
aD4KKyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBG
dW5jdGlvbkRpc3BhdGNoZXIgeworcHVibGljOgorICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20g
dGhlIG1haW4gdGhyZWFkIChleGNlcHQgZm9yIHRoZSBNYWMgcGxhdGZvcm0sIHdoZXJlIGl0Cisg
ICAgLy8gY2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQpLgorICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAgIFdURl9FWFBP
UlRfUFJJVkFURSBzdGF0aWMgUnVuTG9vcCogY3VycmVudCgpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgUnVuTG9vcCogbWFpbigpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0
aWMgYm9vbCBpc01haW4oKTsKKyAgICB+UnVuTG9vcCgpOworCisgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4pIE9WRVJSSURFOworCisgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyB2b2lkIHJ1bigpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IHN0b3AoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB3YWtlVXAoKTsKKworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBydW5Gb3JEdXJhdGlvbihk
b3VibGUgZHVyYXRpb24pOworI2VuZGlmCisgICAgCisgICAgY2xhc3MgVGltZXJCYXNlIHsKKyAg
ICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3A7CisgICAgcHVibGljOgorICAgICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgZXhwbGljaXQgVGltZXJCYXNlKFJ1bkxvb3AqKTsKKyAgICAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHZpcnR1YWwgflRpbWVyQmFzZSgpOworCisgICAgICAgIHZvaWQgc3RhcnRS
ZXBlYXRpbmcoZG91YmxlIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0KHJlcGVhdEludGVydmFsLCB0
cnVlKTsgfQorICAgICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50ZXJ2YWwpIHsgc3Rh
cnQoaW50ZXJ2YWwsIGZhbHNlKTsgfQorCisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IHN0b3AoKTsKKyAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNBY3RpdmUoKSBjb25z
dDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydChkb3VibGUgbmV4dEZpcmVJbnRl
cnZhbCwgYm9vbCByZXBlYXQpOworCisgICAgICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKKworI2lm
IFBMQVRGT1JNKFdJTikKKyAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwg
dWludDY0X3QgSUQpOworICAgICAgICB1aW50NjRfdCBtX0lEOworICAgICAgICBib29sIG1faXNS
ZXBlYXRpbmc7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVy
RmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKKyAgICAgICAgUmV0YWluUHRyPENGUnVu
TG9vcFRpbWVyUmVmPiBtX3RpbWVyOworI2VsaWYgUExBVEZPUk0oRUZMKQorICAgICAgICBzdGF0
aWMgYm9vbCB0aW1lckZpcmVkKHZvaWQqIGRhdGEpOworICAgICAgICBFY29yZV9UaW1lciogbV90
aW1lcjsKKyAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOworI2VsaWYgVVNFKEdMSUIpCisgICAg
ICAgIHN0YXRpYyBnYm9vbGVhbiB0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJCYXNl
Kik7CisgICAgICAgIGdib29sZWFuIGlzUmVwZWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc1Jl
cGVhdGluZzsgfQorICAgICAgICB2b2lkIGNsZWFyVGltZXJTb3VyY2UoKTsKKyAgICAgICAgR1Jl
ZlB0cjxHU291cmNlPiBtX3RpbWVyU291cmNlOworICAgICAgICBnYm9vbGVhbiBtX2lzUmVwZWF0
aW5nOworI2VuZGlmCisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUaW1lckZpcmVk
Q2xhc3M+CisgICAgY2xhc3MgVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIHR5cGVkZWYgdm9pZCAoVGltZXJGaXJlZENsYXNzOjoqVGltZXJGaXJlZEZ1bmN0
aW9uKSgpOworCisgICAgICAgIFRpbWVyKFJ1bkxvb3AqIHJ1bkxvb3AsIFRpbWVyRmlyZWRDbGFz
cyogbywgVGltZXJGaXJlZEZ1bmN0aW9uIGYpCisgICAgICAgICAgICA6IFRpbWVyQmFzZShydW5M
b29wKQorICAgICAgICAgICAgLCBtX29iamVjdChvKQorICAgICAgICAgICAgLCBtX2Z1bmN0aW9u
KGYpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVh
bCB2b2lkIGZpcmVkKCkgeyAobV9vYmplY3QtPiptX2Z1bmN0aW9uKSgpOyB9CisKKyAgICAgICAg
VGltZXJGaXJlZENsYXNzKiBtX29iamVjdDsKKyAgICAgICAgVGltZXJGaXJlZEZ1bmN0aW9uIG1f
ZnVuY3Rpb247CisgICAgfTsKKworICAgIGNsYXNzIEhvbGRlcjsKKworcHJpdmF0ZToKKyAgICBS
dW5Mb29wKCk7CisKKyAgICB2b2lkIHBlcmZvcm1Xb3JrKCk7CisKKyAgICBNdXRleCBtX2Z1bmN0
aW9uUXVldWVMb2NrOworICAgIERlcXVlPHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+IG1fZnVuY3Rp
b25RdWV1ZTsKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1
bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKKyAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBS
dW5Mb29wV25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7CisgICAgTFJFU1VMVCB3
bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtKTsKKyAgICBIV05EIG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3c7CisKKyAgICB0eXBlZGVmIEhh
c2hNYXA8dWludDY0X3QsIFRpbWVyQmFzZSo+IFRpbWVyTWFwOworICAgIFRpbWVyTWFwIG1fYWN0
aXZlVGltZXJzOworI2VsaWYgUExBVEZPUk0oTUFDKQorICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1X
b3JrKHZvaWQqKTsKKyAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wUmVmPiBtX3J1bkxvb3A7CisgICAg
UmV0YWluUHRyPENGUnVuTG9vcFNvdXJjZVJlZj4gbV9ydW5Mb29wU291cmNlOworICAgIGludCBt
X25lc3RpbmdMZXZlbDsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICBib29sIG1faW5pdEVmbDsK
KworICAgIE11dGV4IG1fcGlwZUxvY2s7CisgICAgT3duUHRyPEVjb3JlX1BpcGU+IG1fcGlwZTsK
KworICAgIE11dGV4IG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWRMb2NrOworICAgIGJvb2wgbV93YWtl
VXBFdmVudFJlcXVlc3RlZDsKKworICAgIHN0YXRpYyB2b2lkIHdha2VVcEV2ZW50KHZvaWQqIGRh
dGEsIHZvaWQqLCB1bnNpZ25lZCk7CisjZWxpZiBVU0UoR0xJQikKK3B1YmxpYzoKKyAgICBzdGF0
aWMgZ2Jvb2xlYW4gcXVldWVXb3JrKFJ1bkxvb3AqKTsKKyAgICBHTWFpbkxvb3AqIGlubmVybW9z
dExvb3AoKTsKKyAgICB2b2lkIHB1c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxvb3AqKTsKKyAgICB2
b2lkIHBvcE5lc3RlZE1haW5Mb29wKCk7Citwcml2YXRlOgorICAgIEdSZWZQdHI8R01haW5Db250
ZXh0PiBtX3J1bkxvb3BDb250ZXh0OworICAgIFZlY3RvcjxHUmVmUHRyPEdNYWluTG9vcD4+IG1f
cnVuTG9vcE1haW5Mb29wczsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3Vz
aW5nIFdURjo6UnVuTG9vcDsKKworI2VuZGlmIC8vIFJ1bkxvb3BfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmI4NmI1
YjUxMTg1MTc3MDQyNWY0ZDkyOGYzZGY4NWRmMWRlNDZiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvYmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKQEAgLTAsMCArMSw0
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVt
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorCituYW1lc3BhY2UgV1RGIHsKKworUnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL2NmL1J1bkxvb3BDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk2NzU4NjcwMjYxMTRjMjU4MmE3MTE5YmYzZDYzNTk0Mjk4NjMxY2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCkBAIC0wLDAgKzEs
MTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+
CisjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KKyNpbmNsdWRlIDx3dGYvQXV0b2RyYWlu
ZWRQb29sLmg+CisKK25hbWVzcGFjZSBXVEYgeworCit2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3Jr
KHZvaWQqIGNvbnRleHQpCit7CisgICAgQXV0b2RyYWluZWRQb29sIHBvb2w7CisgICAgc3RhdGlj
X2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5wZXJmb3JtV29yaygpOworfQorCitSdW5Mb29wOjpS
dW5Mb29wKCkKKyAgICA6IG1fcnVuTG9vcChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpCisgICAgLCBt
X25lc3RpbmdMZXZlbCgwKQoreworICAgIENGUnVuTG9vcFNvdXJjZUNvbnRleHQgY29udGV4dCA9
IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsKKyAgICBtX3J1
bkxvb3BTb3VyY2UgPSBhZG9wdENGKENGUnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCAwLCAmY29udGV4dCkpOworICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3Au
Z2V0KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30K
KworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRhdGUo
bV9ydW5Mb29wU291cmNlLmdldCgpKTsKK30KKwordm9pZCBSdW5Mb29wOjpydW5Gb3JEdXJhdGlv
bihkb3VibGUgZHVyYXRpb24pCit7CisgICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BE
ZWZhdWx0TW9kZSwgZHVyYXRpb24sIHRydWUpOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgp
Cit7CisgICAgQ0ZSdW5Mb29wU291cmNlU2lnbmFsKG1fcnVuTG9vcFNvdXJjZS5nZXQoKSk7Cisg
ICAgQ0ZSdW5Mb29wV2FrZVVwKG1fcnVuTG9vcC5nZXQoKSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6
cnVuKCkKK3sKKyAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsKys7CisgICAgCisgICAgewor
ICAgICAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKKyAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7Cisg
ICAgfQorICAgIAorICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwtLTsKK30KKwordm9pZCBS
dW5Mb29wOjpzdG9wKCkKK3sKKyAgICBBU1NFUlQobV9ydW5Mb29wID09IENGUnVuTG9vcEdldEN1
cnJlbnQoKSk7CisgICAgQ0ZSdW5Mb29wU3RvcChtX3J1bkxvb3AuZ2V0KCkpOworfQorCisvLyBS
dW5Mb29wOjpUaW1lcgorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChDRlJ1
bkxvb3BUaW1lclJlZiwgdm9pZCogY29udGV4dCkKK3sKKyAgICBUaW1lckJhc2UqIHRpbWVyID0g
c3RhdGljX2Nhc3Q8VGltZXJCYXNlKj4oY29udGV4dCk7CisKKyAgICBBdXRvZHJhaW5lZFBvb2wg
cG9vbDsKKyAgICB0aW1lci0+ZmlyZWQoKTsKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1l
ckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQoreworfQor
CitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwor
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBi
b29sIHJlcGVhdCkKK3sKKyAgICBpZiAobV90aW1lcikKKyAgICAgICAgc3RvcCgpOworICAgIAor
ICAgIENGUnVuTG9vcFRpbWVyQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwIH07
CisgICAgQ0ZUaW1lSW50ZXJ2YWwgcmVwZWF0SW50ZXJ2YWwgPSByZXBlYXQgPyBuZXh0RmlyZUlu
dGVydmFsIDogMDsKKyAgICBtX3RpbWVyID0gYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIG5leHRGaXJl
SW50ZXJ2YWwsIHJlcGVhdEludGVydmFsLCAwLCAwLCB0aW1lckZpcmVkLCAmY29udGV4dCkpOwor
ICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wLmdldCgpLCBtX3RpbWVy
LmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX3RpbWVyKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgQ0ZSdW5Mb29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIuZ2V0KCkpOworICAgIG1fdGlt
ZXIgPSBudWxscHRyOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBj
b25zdAoreworICAgIHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3Rp
bWVyLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9lZmwvUnVuTG9vcEVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvUnVuTG9vcEVm
bC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGEzODQ5N2ViMzU1NGMyZTYwMGEzNmZlYjQ4OTMxZjVkZmMxYWU4
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9SdW5Mb29wRWZsLmNwcApA
QCAtMCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJT04gZW1i
ZWRkZWQgc3lzdGVtcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8RWNvcmUuaD4KKyNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworc3RhdGlj
IGNvbnN0IGludCBlY29yZVBpcGVNZXNzYWdlU2l6ZSA9IDE7CitzdGF0aWMgY29uc3QgY2hhciB3
YWt1cEVjb3JlUGlwZU1lc3NhZ2VbXSA9ICJXIjsKKworbmFtZXNwYWNlIFdURiB7CisKK1J1bkxv
b3A6OlJ1bkxvb3AoKQorICAgIDogbV9pbml0RWZsKGZhbHNlKQorICAgICwgbV93YWtlVXBFdmVu
dFJlcXVlc3RlZChmYWxzZSkKK3sKKyAgICBtX3BpcGUgPSBhZG9wdFB0cihlY29yZV9waXBlX2Fk
ZCh3YWtlVXBFdmVudCwgdGhpcykpOworICAgIG1faW5pdEVmbCA9IHRydWU7Cit9CisKK1J1bkxv
b3A6On5SdW5Mb29wKCkKK3sKK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAgIGVjb3Jl
X21haW5fbG9vcF9iZWdpbigpOworfQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIGVj
b3JlX21haW5fbG9vcF9xdWl0KCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwRXZlbnQodm9p
ZCogZGF0YSwgdm9pZCosIHVuc2lnbmVkKQoreworICAgIFJ1bkxvb3AqIGxvb3AgPSBzdGF0aWNf
Y2FzdDxSdW5Mb29wKj4oZGF0YSk7CisKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihsb29wLT5tX3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jayk7CisgICAgICAgIGxvb3AtPm1fd2Fr
ZVVwRXZlbnRSZXF1ZXN0ZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBsb29wLT5wZXJmb3JtV29y
aygpOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgeworICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV93YWtlVXBFdmVudFJlcXVlc3RlZExvY2spOworICAgICAgICBpZiAo
bV93YWtlVXBFdmVudFJlcXVlc3RlZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV93
YWtlVXBFdmVudFJlcXVlc3RlZCA9IHRydWU7CisgICAgfQorCisgICAgeworICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9waXBlTG9jayk7CisgICAgICAgIGVjb3JlX3BpcGVfd3JpdGUobV9w
aXBlLmdldCgpLCB3YWt1cEVjb3JlUGlwZU1lc3NhZ2UsIGVjb3JlUGlwZU1lc3NhZ2VTaXplKTsK
KyAgICB9Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqKQorICAg
IDogbV90aW1lcigwKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKK3sKK30KKworUnVuTG9v
cDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK2Jvb2wgUnVu
TG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHZvaWQqIGRhdGEpCit7CisgICAgUnVuTG9vcDo6
VGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFJ1bkxvb3A6OlRpbWVyQmFzZSo+KGRhdGEp
OworCisgICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykKKyAgICAgICAgdGltZXItPm1fdGlt
ZXIgPSAwOworCisgICAgdGltZXItPmZpcmVkKCk7CisKKyAgICByZXR1cm4gdGltZXItPm1faXNS
ZXBlYXRpbmcgPyBFQ09SRV9DQUxMQkFDS19SRU5FVyA6IEVDT1JFX0NBTExCQUNLX0NBTkNFTDsK
K30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVy
dmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBpZiAoaXNBY3RpdmUoKSkKKyAgICAgICAgc3RvcCgp
OworCisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBBU1NFUlQoIW1fdGltZXIpOwor
ICAgIG1fdGltZXIgPSBlY29yZV90aW1lcl9hZGQobmV4dEZpcmVJbnRlcnZhbCwgcmVpbnRlcnBy
ZXRfY2FzdDxFY29yZV9UYXNrX0NiPih0aW1lckZpcmVkKSwgdGhpcyk7Cit9CisKK3ZvaWQgUnVu
TG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBpZiAobV90aW1lcikgeworICAgICAgICBl
Y29yZV90aW1lcl9kZWwobV90aW1lcik7CisgICAgICAgIG1fdGltZXIgPSAwOworICAgIH0KK30K
KworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gKG1fdGltZXIpID8gdHJ1ZSA6IGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2d0ay9SdW5Mb29wR3RrLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL2d0ay9SdW5Mb29wR3RrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTJlYTIyMGNkZWM4ZDg4YWE0MTIz
ODEwMzM0MjY2NzdlNmQ4YjRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvZ3Rr
L1J1bkxvb3BHdGsuY3BwCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdo
dCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKwor
I2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3Bh
Y2UgV1RGIHsKKworUnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAgLy8gZ19tYWluX2NvbnRleHRf
ZGVmYXVsdCgpIGRvZXNuJ3QgYWRkIGFuIGV4dHJhIHJlZmVyZW5jZS4KKyAgICBtX3J1bkxvb3BD
b250ZXh0ID0gaXNNYWluVGhyZWFkKCkgPyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgOiBhZG9w
dEdSZWYoZ19tYWluX2NvbnRleHRfbmV3KCkpOworICAgIEFTU0VSVChtX3J1bkxvb3BDb250ZXh0
KTsKKyAgICBHUmVmUHRyPEdNYWluTG9vcD4gaW5uZXJtb3N0TG9vcCA9IGFkb3B0R1JlZihnX21h
aW5fbG9vcF9uZXcobV9ydW5Mb29wQ29udGV4dC5nZXQoKSwgRkFMU0UpKTsKKyAgICBBU1NFUlQo
aW5uZXJtb3N0TG9vcCk7CisgICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChpbm5lcm1vc3RM
b29wKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIGZvciAoaW50IGkgPSBtX3J1
bkxvb3BNYWluTG9vcHMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgaWYgKCFn
X21haW5fbG9vcF9pc19ydW5uaW5nKG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWlu
TG9vcHNbaV0uZ2V0KCkpOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAg
IFJ1bkxvb3AqIG1haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworICAgIEdNYWluTG9v
cCogaW5uZXJtb3N0TG9vcCA9IG1haW5SdW5Mb29wLT5pbm5lcm1vc3RMb29wKCk7CisgICAgaWYg
KCFnX21haW5fbG9vcF9pc19ydW5uaW5nKGlubmVybW9zdExvb3ApKSB7CisgICAgICAgIGdfbWFp
bl9sb29wX3J1bihpbm5lcm1vc3RMb29wKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IC8vIENyZWF0ZSBhbmQgcnVuIGEgbmVzdGVkIGxvb3AgaWYgdGhlIGlubmVybW9zdCBvbmUgd2Fz
IGFscmVhZHkgcnVubmluZy4KKyAgICBHTWFpbkxvb3AqIG5lc3RlZE1haW5Mb29wID0gZ19tYWlu
X2xvb3BfbmV3KDAsIEZBTFNFKTsKKyAgICBtYWluUnVuTG9vcC0+cHVzaE5lc3RlZE1haW5Mb29w
KG5lc3RlZE1haW5Mb29wKTsKKyAgICBnX21haW5fbG9vcF9ydW4obmVzdGVkTWFpbkxvb3ApOwor
ICAgIG1haW5SdW5Mb29wLT5wb3BOZXN0ZWRNYWluTG9vcCgpOworfQorCitHTWFpbkxvb3AqIFJ1
bkxvb3A6OmlubmVybW9zdExvb3AoKQoreworICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29w
IHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCisgICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMu
aXNFbXB0eSgpKTsKKyAgICByZXR1cm4gbV9ydW5Mb29wTWFpbkxvb3BzWzBdLmdldCgpOworfQor
Cit2b2lkIFJ1bkxvb3A6OnB1c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxvb3AqIG5lc3RlZExvb3Ap
Cit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVy
ZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOworICAgIG1fcnVu
TG9vcE1haW5Mb29wcy5hcHBlbmQoYWRvcHRHUmVmKG5lc3RlZExvb3ApKTsKK30KKwordm9pZCBS
dW5Mb29wOjpwb3BOZXN0ZWRNYWluTG9vcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWlu
IGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5M
b29wcy5pc0VtcHR5KCkpOworICAgIG1fcnVuTG9vcE1haW5Mb29wcy5yZW1vdmVMYXN0KCk7Cit9
CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxv
b3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KKyAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29w
cy5pc0VtcHR5KCkpOworICAgIEdSZWZQdHI8R01haW5Mb29wPiBsYXN0TWFpbkxvb3AgPSBtX3J1
bkxvb3BNYWluTG9vcHMubGFzdCgpOworICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKGxh
c3RNYWluTG9vcC5nZXQoKSkpCisgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobGFzdE1haW5Mb29w
LmdldCgpKTsKK30KKworZ2Jvb2xlYW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxv
b3ApCit7CisgICAgcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsKKyAgICByZXR1cm4gRkFMU0U7Cit9
CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJj
ZSA9IGFkb3B0R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKKyAgICBnX3NvdXJjZV9zZXRfcHJp
b3JpdHkoc291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0RFRkFVTFQpOworICAgIGdfc291cmNlX3Nl
dF9jYWxsYmFjayhzb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZS
dW5Mb29wOjpxdWV1ZVdvcmspLCB0aGlzLCAwKTsKKyAgICBnX3NvdXJjZV9hdHRhY2goc291cmNl
LmdldCgpLCBtX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKKworICAgIGdfbWFpbl9jb250ZXh0X3dh
a2V1cChtX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpU
aW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQorICAg
ICwgbV90aW1lclNvdXJjZSgwKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJh
c2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFy
VGltZXJTb3VyY2UoKQoreworICAgIG1fdGltZXJTb3VyY2UgPSAwOworfQorCitnYm9vbGVhbiBS
dW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2Uq
IHRpbWVyKQoreworICAgIEdTb3VyY2UqIGN1cnJlbnRUaW1lclNvdXJjZSA9IHRpbWVyLT5tX3Rp
bWVyU291cmNlLmdldCgpOworICAgIGJvb2wgaXNSZXBlYXRpbmcgPSB0aW1lci0+aXNSZXBlYXRp
bmcoKTsKKyAgICAvLyBUaGlzIGNhbiBjaGFuZ2UgdGhlIHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5n
IGEgbmV3IHRpbWVyIHdpdGhpbiB0aGUgY2FsbGJhY2suCisgICAgaWYgKCFpc1JlcGVhdGluZyAm
JiBjdXJyZW50VGltZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCisgICAg
ICAgIHRpbWVyLT5jbGVhclRpbWVyU291cmNlKCk7CisKKyAgICB0aW1lci0+ZmlyZWQoKTsKKyAg
ICByZXR1cm4gaXNSZXBlYXRpbmc7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFy
dChkb3VibGUgZmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBpZiAobV90aW1lclNv
dXJjZSkKKyAgICAgICAgc3RvcCgpOworCisgICAgbV90aW1lclNvdXJjZSA9IGFkb3B0R1JlZihn
X3RpbWVvdXRfc291cmNlX25ldyhzdGF0aWNfY2FzdDxndWludD4oZmlyZUludGVydmFsICogMTAw
MCkpKTsKKyAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OworICAgIGdfc291cmNlX3NldF9jYWxs
YmFjayhtX3RpbWVyU291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigm
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spLCB0aGlzLCAwKTsKKyAgICBn
X3NvdXJjZV9hdHRhY2gobV90aW1lclNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BD
b250ZXh0LmdldCgpKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQorewor
ICAgIGlmICghbV90aW1lclNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ19zb3VyY2Vf
ZGVzdHJveShtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICBjbGVhclRpbWVyU291cmNlKCk7Cit9
CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fdGltZXJTb3VyY2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL1J1
bkxvb3BXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzNTMxYjYzOTRjNDgyZmMyZDM5ZWZkNmQwODE2YmFk
NWZmMGQ0NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdp
bi5jcHAKQEAgLTAsMCArMSwxNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Cisj
aW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwor
bmFtZXNwYWNlIFdURiB7CisKK3N0YXRpYyBjb25zdCBVSU5UIFBlcmZvcm1Xb3JrTWVzc2FnZSA9
IFdNX1VTRVIgKyAxOworc3RhdGljIGNvbnN0IExQV1NUUiBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dD
bGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdlV2luZG93IjsKKworTFJFU1VMVCBDQUxMQkFDSyBS
dW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQ
YXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAgICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9IHN0YXRp
Y19jYXN0PFJ1bkxvb3AqPihnZXRXaW5kb3dQb2ludGVyKGhXbmQsIDApKSkKKyAgICAgICAgcmV0
dXJuIHJ1bkxvb3AtPnduZFByb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworCisg
ICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JFQVRFKSB7CisgICAgICAgIExQQ1JFQVRFU1RSVUNUIGNy
ZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TFBDUkVBVEVTVFJVQ1Q+KGxQYXJhbSk7CisK
KyAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBSdW5Mb29wIHdpdGggdGhlIHdpbmRvdy4KKyAgICAg
ICAgc2V0V2luZG93UG9pbnRlcihoV25kLCAwLCBjcmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFyYW1z
KTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDo6RGVmV2luZG93UHJv
YyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisKK0xSRVNVTFQgUnVuTG9vcDo6
d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQ
YXJhbSkKK3sKKyAgICBzd2l0Y2ggKG1lc3NhZ2UpIHsKKyAgICBjYXNlIFBlcmZvcm1Xb3JrTWVz
c2FnZToKKyAgICAgICAgcGVyZm9ybVdvcmsoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgY2Fz
ZSBXTV9USU1FUjoKKyAgICAgICAgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHRoaXMs
IHdQYXJhbSk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiA6OkRlZldp
bmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworfQorCit2b2lkIFJ1bkxv
b3A6OnJ1bigpCit7CisgICAgTVNHIG1lc3NhZ2U7CisgICAgd2hpbGUgKEJPT0wgcmVzdWx0ID0g
OjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAwLCAwLCAwKSkgeworICAgICAgICBpZiAocmVzdWx0ID09
IC0xKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbWVz
c2FnZSk7CisgICAgICAgIDo6RGlzcGF0Y2hNZXNzYWdlKCZtZXNzYWdlKTsKKyAgICB9Cit9CisK
K3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgOjpQb3N0UXVpdE1lc3NhZ2UoMCk7Cit9CisK
K2Jvb2wgUnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCkKK3sKKyAg
ICAvLyBGSVhNRTogVGhpcyByZWFsbHkgb25seSBuZWVkcyB0byBiZSBjYWxsZWQgb25jZS4KKwor
ICAgIFdORENMQVNTIHdpbmRvd0NsYXNzID0geyAwIH07CisgICAgd2luZG93Q2xhc3MubHBmbldu
ZFByb2MgICAgID0gUnVuTG9vcDo6UnVuTG9vcFduZFByb2M7CisgICAgd2luZG93Q2xhc3MuY2JX
bmRFeHRyYSAgICAgID0gc2l6ZW9mKFJ1bkxvb3AqKTsKKyAgICB3aW5kb3dDbGFzcy5scHN6Q2xh
c3NOYW1lICAgPSBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWU7CisKKyAgICByZXR1cm4g
ISE6OlJlZ2lzdGVyQ2xhc3MoJndpbmRvd0NsYXNzKTsKK30KKworUnVuTG9vcDo6UnVuTG9vcCgp
Cit7CisgICAgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7CisKKyAgICBtX3J1
bkxvb3BNZXNzYWdlV2luZG93ID0gOjpDcmVhdGVXaW5kb3coa1J1bkxvb3BNZXNzYWdlV2luZG93
Q2xhc3NOYW1lLCAwLCAwLAorICAgICAgICBDV19VU0VERUZBVUxULCAwLCBDV19VU0VERUZBVUxU
LCAwLCBIV05EX01FU1NBR0UsIDAsIDAsIHRoaXMpOworICAgIEFTU0VSVCg6OklzV2luZG93KG1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3cpKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAg
IC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBoZXJlLgorfQorCit2b2lk
IFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgLy8gRklYTUU6IE5vIG5lZWQgdG8gd2FrZSB1cCB0
aGUgcnVuIGxvb3AgaWYgd2UndmUgYWxyZWFkeSBjYWxsZWQgZGlzcGF0Y2gKKyAgICAvLyBiZWZv
cmUgdGhlIHJ1biBsb29wIGhhcyBoYWQgdGhlIHRpbWUgdG8gcmVzcG9uZC4KKyAgICA6OlBvc3RN
ZXNzYWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRl
cnByZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAwKTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwor
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgdWlu
dDY0X3QgSUQpCit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3Rp
dmVUaW1lcnMuZmluZChJRCk7CisgICAgaWYgKGl0ID09IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJz
LmVuZCgpKSB7CisgICAgICAgIC8vIFRoZSB0aW1lciBtdXN0IGhhdmUgYmVlbiBzdG9wcGVkIGFm
dGVyIHRoZSBXTV9USU1FUiBtZXNzYWdlIHdhcyBwb3N0ZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUu
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnZh
bHVlOworCisgICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgeworICAgICAgICBydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOworICAgICAgICA6OktpbGxUaW1lcihydW5Mb29w
LT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBJRCk7CisgICAgfQorCisgICAgdGltZXItPmZpcmVk
KCk7Cit9CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVRpbWVySUQoKQoreworICAgIHN0YXRp
YyB1aW50NjRfdCB1bmlxdWVUaW1lcklEID0gMTsKKyAgICByZXR1cm4gdW5pcXVlVGltZXJJRCsr
OworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQor
ICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBtX0lEKGdlbmVyYXRlVGltZXJJRCgpKQor
ICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKK3sKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+
VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgbV9p
c1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldCht
X0lELCB0aGlzKTsKKyAgICA6OlNldFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdp
bmRvdywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAsIDApOworfQorCit2b2lkIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9y
dW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOworICAgIGlmIChpdCA9PSBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAgOjpLaWxsVGltZXIobV9ydW5Mb29w
LT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lEKTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1l
ckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5jb250YWlucyhtX0lEKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDNmOWFkMjEyY2M3OTg0MThjY2YyYWJlMjY0ZDgzODRjNmMyZWY0MWQu
LmJkNTE0ZjFkNTIwZjdmNTc4Y2Y0NjJjOTU4MGJkOGQwMjExYjgzMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0xNzg0LDcgKzE3ODQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxh
dGZvcm0vTm90SW1wbGVtZW50ZWQuY3BwCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5jcHAK
ICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCi0gICAgcGxhdGZvcm0vUnVuTG9v
cC5jcHAKICAgICBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAgcGxh
dGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA2NzdkYTM3YjA2MDVjODZlMjZjNzE1
Y2ExYjM0ZWY3MWEyZmI0NmQxLi4wZGMxMWQ5MzBjY2Q1MDk5YzA3ZWI0MTY2ZWQyZTA1ZjM1N2E4
YTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYwMjksOCArNjAyOSw2IEBA
IHBsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJs
YWNrVHJlZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZlcnJlclBvbGljeS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5oIFwKLQlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVuTG9vcC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmgg
XApAQCAtNjE4NCw3ICs2MTgyLDYgQEAgcGxhdGZvcm1ndGtfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwIFwKLQlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TaGFyZWRCdWZmZXJHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtQmxhY2tCZXJyeS5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJy
eS5jbWFrZQppbmRleCA4Y2QyZmRjZjdlY2U3OTY5NDQ5MTAzNDVmOTU2ZDUzMjRhNzJlYjYxLi4x
YTA0NDUwZmM5OWVjZDhhN2VlNTNhMDhlNWM0Y2Y0ZDNkOGM2ZmRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCkBAIC0xMjAsNyArMTIwLDYgQEAgbGlzdChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9QbGF0Zm9ybVRvdWNoUG9p
bnRCbGFja0JlcnJ5LmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvUG9wdXBNZW51QmxhY2tC
ZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lQmxhY2tCZXJyeS5j
cHAKLSAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BCbGFja0JlcnJ5LmNwcAogICAgIHBs
YXRmb3JtL2JsYWNrYmVycnkvU1NMS2V5R2VuZXJhdG9yQmxhY2tCZXJyeS5jcHAKICAgICBwbGF0
Zm9ybS9ibGFja2JlcnJ5L1Njcm9sbGJhclRoZW1lQmxhY2tCZXJyeS5jcHAKICAgICBwbGF0Zm9y
bS9ibGFja2JlcnJ5L1NlYXJjaFBvcHVwTWVudUJsYWNrQmVycnkuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlCmluZGV4IDI3ZDJhNWIwMTZlZmNiYmQzMmIwMmViZTQ1YWRiZTUwZjA1NTE0NDUu
LjEyZDhlMGJhMDdkYzc5ZGYyYTA1YWExNzU2ODNmYmYzNzA5ODVlMmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtRWZsLmNtYWtlCkBAIC04Myw3ICs4Myw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAKICAgICBwbGF0Zm9ybS9l
ZmwvUGxhdGZvcm1XaGVlbEV2ZW50RWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9SZW5kZXJUaGVt
ZUVmbC5jcHAKLSAgICBwbGF0Zm9ybS9lZmwvUnVuTG9vcEVmbC5jcHAKICAgICBwbGF0Zm9ybS9l
ZmwvU2Nyb2xsYmFyRWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9TY3JvbGxiYXJUaGVtZUVmbC5j
cHAKICAgICBwbGF0Zm9ybS9lZmwvU2hhcmVkVGltZXJFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RL
LmNtYWtlCmluZGV4IDhiZTA3YTAxNTU5ODJiYTBmNzY0OGM0M2I0ZmQ5Y2JhMGJhZjFkMjkuLjE5
N2UxZDZjYjFkYWRkMjY3ZmMyZTIwOWZjMjdkZjIyMzIzMjZjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
R1RLLmNtYWtlCkBAIC0xNjQsNyArMTY0LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VT
CiAgICAgcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9S
ZW5kZXJUaGVtZUd0azIuY3BwCiAgICAgcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAK
LSAgICBwbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvU2Nyb2xs
Vmlld0d0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCiAgICAg
cGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21h
a2UKaW5kZXggNzUyZTg0MWU4YTcyYTI0OWYxMGVjNmFlMjhlMGNhM2I1MTg4YjFlNi4uYTBmYTAy
MjVhZmMyNzI4ZDlhNjg4ZWZkOTU3OTY2NmE4OWQ5YzliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4u
Y21ha2UKQEAgLTUyLDcgKzUyLDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vd2luL1BsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4v
UGxhdGZvcm1TY3JlZW5XaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAK
LSAgICBwbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vU1NMS2V5
R2VuZXJhdG9yV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9TY3JvbGxiYXJUaGVtZVdpbi5jcHAK
ICAgICBwbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCBmMGVlNDM0N2ZiZWVhNzRlZjYxZTlmZWUyNDIxZWY2NjI0OTM0NzIzLi44NDJjYTc2
YWZhZTE0NDU4YjIzOTE1ZmE3NjNjNGMxNDU2ZTY3MTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtMTExMCwxOCArMTExMCw2IEBAIF9fWk43V2ViQ29yZTdJbnRSZWN0OWludGVyc2VjdEVSS1Mw
XwogX19aTjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzEwTGF5b3V0UmVjdEUKIF9fWk43V2ViQ29y
ZTdJbnRSZWN0QzFFUktOU185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlN0ludFNpemVDMUVSSzZD
R1NpemUKLV9fWk43V2ViQ29yZTdSdW5Mb29wMTRydW5Gb3JEdXJhdGlvbkVkCi1fX1pON1dlYkNv
cmU3UnVuTG9vcDIxaW5pdGlhbGl6ZU1haW5SdW5Mb29wRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29w
M3J1bkV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDRtYWluRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29w
NHN0b3BFdgotX19aTjdXZWJDb3JlN1J1bkxvb3A2aXNNYWluRXYKLV9fWk43V2ViQ29yZTdSdW5M
b29wNndha2VVcEV2Ci1fX1pON1dlYkNvcmU3UnVuTG9vcDdjdXJyZW50RXYKLV9fWk43V2ViQ29y
ZTdSdW5Mb29wOVRpbWVyQmFzZTRzdG9wRXYKLV9fWk43V2ViQ29yZTdSdW5Mb29wOVRpbWVyQmFz
ZTVzdGFydEVkYgotX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlQzJFUFMwXwotX19aTjdX
ZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlRDJFdgogX19aTjdXZWJDb3JlN1RleHRSdW4xOWFsbG93
c1JvdW5kaW5nSGFja3NFdgogX19aTjdXZWJDb3JlN1RleHRSdW4yMXNfYWxsb3dzUm91bmRpbmdI
YWNrc0UKIF9fWk43V2ViQ29yZTdUZXh0UnVuMjJzZXRBbGxvd3NSb3VuZGluZ0hhY2tzRWIKQEAg
LTE3NDUsNyArMTczMyw2IEBAIF9fWk5LN1dlYkNvcmU3RWxlbWVudDE5YmVmb3JlUHNldWRvRWxl
bWVudEV2CiBfX1pOSzdXZWJDb3JlN0ludFJlY3QxMGludGVyc2VjdHNFUktTMF8KIF9fWk5LN1dl
YkNvcmU3SW50UmVjdDhjb250YWluc0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0Y3Y2Q0dS
ZWN0RXYKLV9fWk5LN1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2U4aXNBY3RpdmVFdgogX19aTks3
V2ViQ29yZThEb2N1bWVudDExY29tcGxldGVVUkxFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJD
b3JlOERvY3VtZW50MTNheE9iamVjdENhY2hlRXYKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQzMWRp
c3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmdFUktOM1dURjZTdHJpbmdFCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCAwOWNlMDkwMmMx
YzE5NGI3YzBhODM2ZTg5ODQyYWNkMzNhNjQwOGEwLi4zMmMzYTRjNDRlNGMxNmMyMjU3YmQ5MWFm
Y2I2MWRkNTZmNjhjODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKQEAgLTcyOTQsNyArNzI5NCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxOb3RJbXBsZW1lbnRlZC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwbGF0Zm9ybVxQbGF0Zm9ybUV2ZW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFBsYXRmb3JtU3RyYXRlZ2llcy5jcHAiIC8+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxSdW5Mb29wLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxTY2hlbWVSZWdpc3RyeS5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxTY3JvbGxhYmxlQXJlYS5j
cHAiIC8+CkBAIC03MzUzLDcgKzczNTIsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cd2luXFBsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cUGxhdGZvcm1TY3JlZW5XaW4uY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFBvcHVwTWVudVdpbi5jcHAiIC8+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cUnVuTG9vcFdpbi5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cU2Nyb2xsYmFyVGhl
bWVTYWZhcmkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2lu
XFNjcm9sbGJhclRoZW1lV2luLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXHdpblxTZWFyY2hQb3B1cE1lbnVXaW4uY3BwIiAvPgpAQCAtMTg4ODgsNyArMTg4ODYs
NiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUG9wdXBNZW51U3R5bGUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFB1cmdlYWJsZUJ1ZmZl
ci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cUmVmZXJyZXJQb2xp
Y3kuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFJ1bkxvb3AuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cU2NoZW1l
UmVnaXN0cnkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNjcm9s
bGFibGVBcmVhLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYzVkYmUzODA3ZGUxZmQ5ZjQwMTNjNzlmZDcyYmIyYmJjNGE2
YWVlYy4uNzkzZTg3MTc2MWNhMmM2ZWJhMTMyYzE4MTlmOWQyMGQ5YWIzMGU5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTIw
LDcgKzkyMCw2IEBACiAJCTI5N0JFM0Q3MTZDMDNDMEUwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyOUU0RDhERjE2QjA5NDBGMDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ci5oICovOyB9OwogCQkyOTdCRTNEODE2QzAzQ0NFMDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyTWFjLm1tICovOyB9OwogCQkyOTdCRTNEQTE2QzA0M0Q4MDAzMzE2QkQgLyogUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyOTdCRTNEOTE2QzA0M0Q4MDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplci5jcHAgKi87IH07Ci0JCTI5QTMwOUFDMTU2MUM5OUIwMEJCRDhFNSAvKiBSdW5Mb29w
Q0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlB
MzA5QUIxNTYxQzk5QjAwQkJEOEU1IC8qIFJ1bkxvb3BDRi5jcHAgKi87IH07CiAJCTI5QTgxMjJC
MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjBEMEZCQjlDMUQwMDUxMDI5MyAv
KiBBY2Nlc3NpYmlsaXR5VGFibGUuaCAqLzsgfTsKIAkJMjlBODEyMkMwRkJCOUMxRDAwNTEwMjkz
IC8qIEFjY2Vzc2liaWxpdHlMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOUE4MTIwRTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUxp
c3QuaCAqLzsgfTsKIAkJMjlBODEyMkUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlB
UklBR3JpZENlbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5QTgxMjEwMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxs
LmggKi87IH07CkBAIC00NzI3LDggKzQ3MjYsNiBAQAogCQlCQzA2RUUwNDBCRkQ3MUFBMDA4NTZF
OUQgLyogSlNIVE1MVGFibGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZFRTAyMEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJs
ZUVsZW1lbnQuY3BwICovOyB9OwogCQlCQzA2RUUwNTBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1M
VGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzA2RUUwMzBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50LmggKi87
IH07CiAJCUJDMDczQkFBMEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDczQkE5MEMzOTlC
MUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLzsgfTsKLQkJQkMwQjM1ODcxNEM0Rjk4
MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMwQjM1ODUxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwICov
OyB9OwotCQlCQzBCMzU4ODE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM1ODYxNEM0Rjk4MzAwNTVF
MjJBIC8qIFJ1bkxvb3AuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQzBCMzZBNDBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzZBMTBDRDNDNjdD
MDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi87IH07CiAJCUJDMEIzNkE1MENEM0M2N0MwMEFDN0VC
NSAvKiBDb25zb2xlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzBCMzZBMjBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMTBENzY3MTdEOEVFNkUwMDVF
MjYyNiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNGQjQ1RjQxN0Q4RTQ5NDAwNDQ0NDQ2IC8qIFJlbmRlckJsb2Nr
Rmxvdy5jcHAgKi87IH07CkBAIC03NTE1LDcgKzc1MTIsNiBAQAogCQkyOTgxQ0FBRjEzMTgyMkVD
MDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBWE9iamVj
dENhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjk4NTcwOTIxNUNDNTMy
RDAwNjM1NUNEIC8qIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjk4NTcwOTMxNUNDNTMyRDAwNjM1NUNEIC8qIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTI5QTMwOUFCMTU2MUM5OUIwMEJCRDhFNSAvKiBSdW5Mb29wQ0Yu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9vcENGLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMEQwRkJCOUMxRDAwNTEwMjkzIC8q
IEFjY2Vzc2liaWxpdHlUYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5VGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEy
MEUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlMaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTI5QTgxMjEwMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJ
QUdyaWRDZWxsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxp
dHlBUklBR3JpZENlbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNjg5LDgg
KzExNjg1LDYgQEAKIAkJQkMwNkYyNEMwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNzb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFNM
VFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJQkMwNkYyNEQwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNzb3JM
aWJ4c2x0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJDMDczQkE5MEMzOTlCMUYwMDBG
NTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZsb2F0Q29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzBC
MzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSdW5Mb29wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzBCMzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDMEIzNkEyMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDMEIzNkEzMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gQ29uc29sZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNDE4Nyw3ICsxNDE4MSw2IEBACiAJCQkJRTFBOEU1NjUxNzU1MkIyQTAwNzQ4OEU3IC8q
IENGVVJMRXh0cmFzLmggKi8sCiAJCQkJNTE2MDMwNkIwQ0M0MzYyMzAwQzhBQzI1IC8qIEZpbGVT
eXN0ZW1DRi5jcHAgKi8sCiAJCQkJMUE5ODk1NkEwQUE3OEY4MDAwNUVGNUVGIC8qIFVSTENGLmNw
cCAqLywKLQkJCQkyOUEzMDlBQjE1NjFDOTlCMDBCQkQ4RTUgLyogUnVuTG9vcENGLmNwcCAqLywK
IAkJCQk1MTJERDhFMjBEOTFFMkI0MDAwRjg5RUUgLyogU2hhcmVkQnVmZmVyQ0YuY3BwICovLAog
CQkJKTsKIAkJCXBhdGggPSBjZjsKQEAgLTIwMDkxLDggKzIwMDg0LDYgQEAKIAkJCQk3RTMzQ0Qw
MDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oICovLAogCQkJCUE3MkVBM0JBMTU4
NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oICovLAogCQkJCTk4MzFBRTQ5
MTU0MjI1QTIwMEZFMjY0NCAvKiBSZWZlcnJlclBvbGljeS5oICovLAotCQkJCUJDMEIzNTg1MTRD
NEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLywKLQkJCQlCQzBCMzU4NjE0QzRGOTgzMDA1
NUUyMkEgLyogUnVuTG9vcC5oICovLAogCQkJCTI5M0VBRTIwMTM1NkIzMkUwMDY3QUNGOSAvKiBS
dW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwICovLAogCQkJCTI5M0VBRTFFMTM1NkIyRkUwMDY3
QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLywKIAkJCQk1MTYyQzdGMjExRjc3
RUZBMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuY3BwICovLApAQCAtMjQyNTIsNyArMjQyNDMs
NiBAQAogCQkJCUE3M0Y5NUZGMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTc5QkFEQTIxNjFFN0YzRjAwQzJFNjUyIC8qIFJ1bGVGZWF0dXJlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNzlCQURBNDE2MUU3RjNGMDBDMkU2NTIgLyogUnVsZVNldC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQkMwQjM1ODgxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3Au
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTY5RDFGMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1l
X2FycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQyMTBEN0UyQjgyMDA3QzM5ODMgLyog
cnVudGltZV9tZXRob2QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTY5RDIzMEQ3RTJCODIwMDdD
Mzk4MyAvKiBydW50aW1lX29iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzQ3MSw4ICsyNzQ2
MSw2IEBACiAJCQkJQTc5QkFEQTExNjFFN0YzRjAwQzJFNjUyIC8qIFJ1bGVGZWF0dXJlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE3OUJBREEzMTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlU2V0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAyMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0
cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDMEIzNTg3MTRDNEY5ODMwMDU1RTIy
QSAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTI5QTMwOUFDMTU2MUM5OUIwMEJC
RDhFNSAvKiBSdW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MyQkREM0QxN0M3Rjk4
QzAwMzhGRjE1IC8qIEpTRE9NR2xvYmFsT2JqZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTU2OUQxRTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTU2OUQyMDBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5M
b29wLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwNTU0MTdjYzQzNmY4ZmFjZmVjYjYzNTM5OWYzZjYxOWIxMzNk
YjQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTMxICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9v
cC5oIgotCi0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9UaHJl
YWRTcGVjaWZpYy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBSdW5Mb29wKiBz
X21haW5SdW5Mb29wOwotCi0vLyBIZWxwZXIgY2xhc3MgZm9yIFRocmVhZFNwZWNpZmljRGF0YS4K
LWNsYXNzIFJ1bkxvb3A6OkhvbGRlciB7Ci1wdWJsaWM6Ci0gICAgSG9sZGVyKCkKLSAgICAgICAg
OiBtX3J1bkxvb3AoYWRvcHRSZWYobmV3IFJ1bkxvb3ApKQotICAgIHsKLSAgICB9Ci0KLSAgICBS
dW5Mb29wKiBydW5Mb29wKCkgY29uc3QgeyByZXR1cm4gbV9ydW5Mb29wLmdldCgpOyB9Ci0KLXBy
aXZhdGU6Ci0gICAgUmVmUHRyPFJ1bkxvb3A+IG1fcnVuTG9vcDsKLX07Ci0KLXZvaWQgUnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCkKLXsKLSAgICBpZiAoc19tYWluUnVuTG9vcCkKLSAg
ICAgICAgcmV0dXJuOwotICAgIHNfbWFpblJ1bkxvb3AgPSBSdW5Mb29wOjpjdXJyZW50KCk7Ci19
Ci0KLVJ1bkxvb3AqIFJ1bkxvb3A6OmN1cnJlbnQoKQotewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5Mb29wOjpIb2xkZXI+LCBydW5Mb29wSG9sZGVyLCAo
KSk7Ci0gICAgcmV0dXJuIHJ1bkxvb3BIb2xkZXItPnJ1bkxvb3AoKTsKLX0KLQotUnVuTG9vcCog
UnVuTG9vcDo6bWFpbigpCi17Ci0gICAgQVNTRVJUKHNfbWFpblJ1bkxvb3ApOwotICAgIHJldHVy
biBzX21haW5SdW5Mb29wOwotfQotCi1ib29sIFJ1bkxvb3A6OmlzTWFpbigpCi17Ci0gICAgQVNT
RVJUKHNfbWFpblJ1bkxvb3ApOwotICAgIHJldHVybiBzX21haW5SdW5Mb29wID09IFJ1bkxvb3A6
OmN1cnJlbnQoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCi17Ci0gICAgLy8g
SXQgaXMgaW1wb3J0YW50IHRvIGhhbmRsZSB0aGUgZnVuY3Rpb25zIGluIHRoZSBxdWV1ZSBvbmUg
YXQgYSB0aW1lIGJlY2F1c2Ugd2hpbGUgaW5zaWRlIG9uZSBvZiB0aGVzZQotICAgIC8vIGZ1bmN0
aW9ucyB3ZSBtaWdodCByZS1lbnRlciBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGFuZCB3ZSBuZWVk
IHRvIGJlIGFibGUgdG8gcGljayB1cCB3aGVyZSB3ZSBsZWZ0IG9mZi4KLSAgICAvLyBTZWUgaHR0
cDovL3dlYmtpdC5vcmcvYi84OTU5MCBmb3IgbW9yZSBkaXNjdXNzaW9uLgotCi0gICAgLy8gT25l
IHBvc3NpYmxlIHNjZW5hcmlvIHdoZW4gaGFuZGxpbmcgdGhlIGZ1bmN0aW9uIHF1ZXVlIGlzIGFz
IGZvbGxvd3M6Ci0gICAgLy8gLSBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGlzIGludm9rZWQgd2l0
aCAxIGZ1bmN0aW9uIG9uIHRoZSBxdWV1ZQotICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBmdW5jdGlv
biByZXN1bHRzIGluIDEgbW9yZSBmdW5jdGlvbiBiZWluZyBlbnF1ZXVlZAotICAgIC8vIC0gSGFu
ZGxpbmcgdGhhdCBvbmUgcmVzdWx0cyBpbiB5ZXQgYW5vdGhlciBiZWluZyBlbnF1ZXVlZAotICAg
IC8vIC0gQW5kIHNvIG9uCi0gICAgLy8KLSAgICAvLyBJbiB0aGlzIHNpdHVhdGlvbiBvbmUgaW52
b2NhdGlvbiBvZiBwZXJmb3JtV29yaygpIG5ldmVyIHJldHVybnMgc28gYWxsIG90aGVyIGV2ZW50
IHNvdXJjZXMgYXJlIGJsb2NrZWQuCi0gICAgLy8gQnkgb25seSBoYW5kbGluZyB1cCB0byB0aGUg
bnVtYmVyIG9mIGZ1bmN0aW9ucyB0aGF0IHdlcmUgaW4gdGhlIHF1ZXVlIHdoZW4gcGVyZm9ybVdv
cmsoKSBpcyBjYWxsZWQKLSAgICAvLyB3ZSBndWFyYW50ZWUgdG8gb2NjYXNpb25hbGx5IHJldHVy
biBmcm9tIHRoZSBydW4gbG9vcCBzbyBvdGhlciBldmVudCBzb3VyY2VzIHdpbGwgYmUgYWxsb3dl
ZCB0byBzcGluLgotCi0gICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uOwotICAgIHNp
emVfdCBmdW5jdGlvbnNUb0hhbmRsZSA9IDA7Ci0KLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2Z1bmN0aW9uUXVldWVMb2NrKTsKLSAgICAgICAgZnVuY3Rpb25zVG9IYW5kbGUg
PSBtX2Z1bmN0aW9uUXVldWUuc2l6ZSgpOwotCi0gICAgICAgIGlmIChtX2Z1bmN0aW9uUXVldWUu
aXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZ1bmN0aW9uID0gbV9m
dW5jdGlvblF1ZXVlLnRha2VGaXJzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uKCk7Ci0KLSAg
ICBmb3IgKHNpemVfdCBmdW5jdGlvbnNIYW5kbGVkID0gMTsgZnVuY3Rpb25zSGFuZGxlZCA8IGZ1
bmN0aW9uc1RvSGFuZGxlOyArK2Z1bmN0aW9uc0hhbmRsZWQpIHsKLSAgICAgICAgewotICAgICAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotCi0gICAgICAg
ICAgICAvLyBFdmVuIGlmIHdlIHN0YXJ0IG9mZiB3aXRoIE4gZnVuY3Rpb25zIHRvIGhhbmRsZSBh
bmQgd2UndmUgb25seSBoYW5kbGVkIGxlc3MgdGhhbiBOIGZ1bmN0aW9ucywgdGhlIHF1ZXVlCi0g
ICAgICAgICAgICAvLyBzdGlsbCBtaWdodCBiZSBlbXB0eSBiZWNhdXNlIHRob3NlIGZ1bmN0aW9u
cyBtaWdodCBoYXZlIGJlZW4gaGFuZGxlZCBpbiBhbiBpbm5lciBSdW5Mb29wOjpwZXJmb3JtV29y
aygpLgotICAgICAgICAgICAgLy8gSW4gdGhhdCBjYXNlIHdlIHNob3VsZCBiYWlsIGhlcmUuCi0g
ICAgICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAg
ICBicmVhazsKLQotICAgICAgICAgICAgZnVuY3Rpb24gPSBtX2Z1bmN0aW9uUXVldWUudGFrZUZp
cnN0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9uKCk7Ci0gICAgfQot
fQotCi12b2lkIFJ1bkxvb3A6OmRpc3BhdGNoKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rp
b24pCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAg
IG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQoc3RkOjptb3ZlKGZ1bmN0aW9uKSk7Ci0KLSAgICB3YWtl
VXAoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9v
cC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzkzNDkwYjU2NWYwZDU2NzM5NTBi
ZTgwMmZmNDAyMzM1ZTlhZWU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaAorKysgL2Rldi9udWxs
CkBAIC0xLDE3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqIFBvcnRpb25zIENvcHlyaWdodCAo
YykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBSdW5Mb29wX2gKLSNkZWZpbmUgUnVuTG9vcF9oCi0KLSNpbmNsdWRl
IDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbkRpc3BhdGNoZXIuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KLQotI2lmIFVTRShHTElCKQotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dSZWZQdHIuaD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oRUZMKQotI2luY2x1ZGUgPEVjb3Jl
Lmg+Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSdW5Mb29wIDogcHVi
bGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7Ci1wdWJsaWM6Ci0gICAgLy8gTXVzdCBiZSBjYWxsZWQg
ZnJvbSB0aGUgbWFpbiB0aHJlYWQgKGV4Y2VwdCBmb3IgdGhlIE1hYyBwbGF0Zm9ybSwgd2hlcmUg
aXQKLSAgICAvLyBjYW4gYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZCkuCi0gICAgc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7Ci0KLSAgICBzdGF0aWMgUnVuTG9vcCogY3VycmVu
dCgpOwotICAgIHN0YXRpYyBSdW5Mb29wKiBtYWluKCk7Ci0gICAgc3RhdGljIGJvb2wgaXNNYWlu
KCk7Ci0gICAgflJ1bkxvb3AoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaChzdGQ6OmZ1
bmN0aW9uPHZvaWQgKCk+KSBPVkVSUklERTsKLQotICAgIHN0YXRpYyB2b2lkIHJ1bigpOwotICAg
IHZvaWQgc3RvcCgpOwotICAgIHZvaWQgd2FrZVVwKCk7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0g
ICAgdm9pZCBydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOwotI2VuZGlmCi0gICAgCi0g
ICAgY2xhc3MgVGltZXJCYXNlIHsKLSAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3A7Ci0gICAg
cHVibGljOgotICAgICAgICBleHBsaWNpdCBUaW1lckJhc2UoUnVuTG9vcCopOwotICAgICAgICB2
aXJ0dWFsIH5UaW1lckJhc2UoKTsKLQotICAgICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJs
ZSByZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1ZSk7IH0KLSAgICAg
ICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0KGludGVydmFsLCBm
YWxzZSk7IH0KLQotICAgICAgICB2b2lkIHN0b3AoKTsKLSAgICAgICAgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0OwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKLQotICAgIHByaXZh
dGU6Ci0gICAgICAgIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KTsKLQotICAgICAgICBSdW5Mb29wKiBtX3J1bkxvb3A7Ci0KLSNpZiBQTEFURk9STShXSU4p
Ci0gICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90IElEKTsK
LSAgICAgICAgdWludDY0X3QgbV9JRDsKLSAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOwotI2Vs
aWYgUExBVEZPUk0oTUFDKQotICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9v
cFRpbWVyUmVmLCB2b2lkKik7Ci0gICAgICAgIFJldGFpblB0cjxDRlJ1bkxvb3BUaW1lclJlZj4g
bV90aW1lcjsKLSNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICAgICAgc3RhdGljIGJvb2wgdGltZXJG
aXJlZCh2b2lkKiBkYXRhKTsKLSAgICAgICAgRWNvcmVfVGltZXIqIG1fdGltZXI7Ci0gICAgICAg
IGJvb2wgbV9pc1JlcGVhdGluZzsKLSNlbGlmIFVTRShHTElCKQotICAgICAgICBzdGF0aWMgZ2Jv
b2xlYW4gdGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOwotICAgICAgICBn
Ym9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRpbmc7IH0KLSAg
ICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7Ci0gICAgICAgIEdSZWZQdHI8R1NvdXJjZT4g
bV90aW1lclNvdXJjZTsKLSAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsKLSNlbmRpZgot
ICAgIH07Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENsYXNzPgotICAgIGNs
YXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICB0eXBl
ZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlvbikoKTsKLQotICAg
ICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xhc3MqIG8sIFRpbWVyRmly
ZWRGdW5jdGlvbiBmKQotICAgICAgICAgICAgOiBUaW1lckJhc2UocnVuTG9vcCkKLSAgICAgICAg
ICAgICwgbV9vYmplY3QobykKLSAgICAgICAgICAgICwgbV9mdW5jdGlvbihmKQotICAgICAgICB7
Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgp
IHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQotCi0gICAgICAgIFRpbWVyRmlyZWRDbGFz
cyogbV9vYmplY3Q7Ci0gICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBtX2Z1bmN0aW9uOwotICAg
IH07Ci0KLSAgICBjbGFzcyBIb2xkZXI7Ci0KLXByaXZhdGU6Ci0gICAgUnVuTG9vcCgpOwotCi0g
ICAgdm9pZCBwZXJmb3JtV29yaygpOwotCi0gICAgTXV0ZXggbV9mdW5jdGlvblF1ZXVlTG9jazsK
LSAgICBEZXF1ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PiBtX2Z1bmN0aW9uUXVldWU7Ci0KLSNp
ZiBQTEFURk9STShXSU4pCi0gICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdp
bmRvd0NsYXNzKCk7Ci0gICAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcFduZFByb2Mo
SFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOwotICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhX
bmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7Ci0gICAgSFdO
RCBtX3J1bkxvb3BNZXNzYWdlV2luZG93OwotCi0gICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90
LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKLSAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKLSNl
bGlmIFBMQVRGT1JNKE1BQykKLSAgICBzdGF0aWMgdm9pZCBwZXJmb3JtV29yayh2b2lkKik7Ci0g
ICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4gbV9ydW5Mb29wOwotICAgIFJldGFpblB0cjxDRlJ1
bkxvb3BTb3VyY2VSZWY+IG1fcnVuTG9vcFNvdXJjZTsKLSAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7
Ci0jZWxpZiBQTEFURk9STShFRkwpCi0gICAgYm9vbCBtX2luaXRFZmw7Ci0KLSAgICBNdXRleCBt
X3BpcGVMb2NrOwotICAgIE93blB0cjxFY29yZV9QaXBlPiBtX3BpcGU7Ci0KLSAgICBNdXRleCBt
X3dha2VVcEV2ZW50UmVxdWVzdGVkTG9jazsKLSAgICBib29sIG1fd2FrZVVwRXZlbnRSZXF1ZXN0
ZWQ7Ci0KLSAgICBzdGF0aWMgdm9pZCB3YWtlVXBFdmVudCh2b2lkKiBkYXRhLCB2b2lkKiwgdW5z
aWduZWQgaW50KTsKLSNlbGlmIFVTRShHTElCKQotcHVibGljOgotICAgIHN0YXRpYyBnYm9vbGVh
biBxdWV1ZVdvcmsoUnVuTG9vcCopOwotICAgIEdNYWluTG9vcCogaW5uZXJtb3N0TG9vcCgpOwot
ICAgIHZvaWQgcHVzaE5lc3RlZE1haW5Mb29wKEdNYWluTG9vcCopOwotICAgIHZvaWQgcG9wTmVz
dGVkTWFpbkxvb3AoKTsKLXByaXZhdGU6Ci0gICAgR1JlZlB0cjxHTWFpbkNvbnRleHQ+IG1fcnVu
TG9vcENvbnRleHQ7Ci0gICAgVmVjdG9yPEdSZWZQdHI8R01haW5Mb29wPj4gbV9ydW5Mb29wTWFp
bkxvb3BzOwotI2VuZGlmCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVy
cnkvUnVuTG9vcEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2ti
ZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGU4MjA3ODhkNmFiYjA5MzgyZTllMThjY2VlZGU2NzUzMTExMTc1NjMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YmxhY2tiZXJyeS9SdW5Mb29wQmxhY2tCZXJyeS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0OCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0
ZW1zLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUnVuTG9vcDo6UnVuTG9vcCgpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9SdW5Mb29wQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2YvUnVuTG9vcENGLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjYxOGUwMjg3OTIyNDgzNzRmYTIyYmVjODAxNjNhOTcxNWI2Nzk1Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
Zi9SdW5Mb29wQ0YuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTI5ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0j
aW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KLSNpbmNsdWRlIDxkaXNw
YXRjaC9kaXNwYXRjaC5oPgotI2luY2x1ZGUgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKHZvaWQqIGNvbnRl
eHQpCi17Ci0gICAgQXV0b2RyYWluZWRQb29sIHBvb2w7Ci0gICAgc3RhdGljX2Nhc3Q8UnVuTG9v
cCo+KGNvbnRleHQpLT5wZXJmb3JtV29yaygpOwotfQotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLSAg
ICA6IG1fcnVuTG9vcChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpCi0gICAgLCBtX25lc3RpbmdMZXZl
bCgwKQotewotICAgIENGUnVuTG9vcFNvdXJjZUNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsKLSAgICBtX3J1bkxvb3BTb3VyY2Ug
PSBhZG9wdENGKENGUnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAm
Y29udGV4dCkpOwotICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1fcnVu
TG9vcFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLX0KLQotUnVuTG9vcDo6
flJ1bkxvb3AoKQotewotICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRhdGUobV9ydW5Mb29wU291
cmNlLmdldCgpKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVy
YXRpb24pCi17Ci0gICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwg
ZHVyYXRpb24sIHRydWUpOwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgQ0ZS
dW5Mb29wU291cmNlU2lnbmFsKG1fcnVuTG9vcFNvdXJjZS5nZXQoKSk7Ci0gICAgQ0ZSdW5Mb29w
V2FrZVVwKG1fcnVuTG9vcC5nZXQoKSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAg
ICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsKys7Ci0gICAgCi0gICAgewotICAgICAgICBBdXRv
ZHJhaW5lZFBvb2wgcG9vbDsKLSAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7Ci0gICAgfQotICAgIAot
ICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwtLTsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9w
KCkKLXsKLSAgICBBU1NFUlQobV9ydW5Mb29wID09IENGUnVuTG9vcEdldEN1cnJlbnQoKSk7Ci0g
ICAgQ0ZSdW5Mb29wU3RvcChtX3J1bkxvb3AuZ2V0KCkpOwotfQotCi0vLyBSdW5Mb29wOjpUaW1l
cgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJl
Ziwgdm9pZCogY29udGV4dCkKLXsKLSAgICBUaW1lckJhc2UqIHRpbWVyID0gc3RhdGljX2Nhc3Q8
VGltZXJCYXNlKj4oY29udGV4dCk7Ci0KLSAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKLSAgICB0
aW1lci0+ZmlyZWQoKTsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9v
cCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29wKQotewotfQotCi1SdW5Mb29wOjpU
aW1lckJhc2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29w
OjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkK
LXsKLSAgICBpZiAobV90aW1lcikKLSAgICAgICAgc3RvcCgpOwotICAgIAotICAgIENGUnVuTG9v
cFRpbWVyQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwIH07Ci0gICAgQ0ZUaW1l
SW50ZXJ2YWwgcmVwZWF0SW50ZXJ2YWwgPSByZXBlYXQgPyBuZXh0RmlyZUludGVydmFsIDogMDsK
LSAgICBtX3RpbWVyID0gYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIG5leHRGaXJlSW50ZXJ2YWwsIHJl
cGVhdEludGVydmFsLCAwLCAwLCB0aW1lckZpcmVkLCAmY29udGV4dCkpOwotICAgIENGUnVuTG9v
cEFkZFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wLmdldCgpLCBtX3RpbWVyLmdldCgpLCBrQ0ZS
dW5Mb29wQ29tbW9uTW9kZXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgp
Ci17Ci0gICAgaWYgKCFtX3RpbWVyKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgQ0ZSdW5M
b29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIuZ2V0KCkpOwotICAgIG1fdGltZXIgPSBudWxscHRy
OwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAotewotICAg
IHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVyLmdldCgpKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1J1bkxvb3BFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1J1bkxvb3BFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTJkY2RmZTcy
MzFlZDUyMTJiZjBiNTk2YTRmNzJhNzQ2OTI1ODYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SdW5Mb29w
RWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNp
bmNsdWRlIDxFY29yZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgotCi1zdGF0aWMgY29uc3QgaW50IGVjb3JlUGlwZU1lc3NhZ2VTaXplID0g
MTsKLXN0YXRpYyBjb25zdCBjaGFyIHdha3VwRWNvcmVQaXBlTWVzc2FnZVtdID0gIlciOwotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotICAgIDogbV9pbml0RWZs
KGZhbHNlKQotICAgICwgbV93YWtlVXBFdmVudFJlcXVlc3RlZChmYWxzZSkKLXsKLSAgICBtX3Bp
cGUgPSBhZG9wdFB0cihlY29yZV9waXBlX2FkZCh3YWtlVXBFdmVudCwgdGhpcykpOwotICAgIG1f
aW5pdEVmbCA9IHRydWU7Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLX0KLQotdm9pZCBS
dW5Mb29wOjpydW4oKQotewotICAgIGVjb3JlX21haW5fbG9vcF9iZWdpbigpOwotfQotCi12b2lk
IFJ1bkxvb3A6OnN0b3AoKQotewotICAgIGVjb3JlX21haW5fbG9vcF9xdWl0KCk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6d2FrZVVwRXZlbnQodm9pZCogZGF0YSwgdm9pZCosIHVuc2lnbmVkIGludCkK
LXsKLSAgICBSdW5Mb29wKiBsb29wID0gc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGRhdGEpOwotCi0g
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobG9vcC0+bV93YWtlVXBFdmVudFJlcXVl
c3RlZExvY2spOwotICAgICAgICBsb29wLT5tX3dha2VVcEV2ZW50UmVxdWVzdGVkID0gZmFsc2U7
Ci0gICAgfQotCi0gICAgbG9vcC0+cGVyZm9ybVdvcmsoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3
YWtlVXAoKQotewotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fd2FrZVVwRXZl
bnRSZXF1ZXN0ZWRMb2NrKTsKLSAgICAgICAgaWYgKG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQgPSB0cnVl
OwotICAgIH0KLQotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGlwZUxvY2sp
OwotICAgICAgICBlY29yZV9waXBlX3dyaXRlKG1fcGlwZS5nZXQoKSwgd2FrdXBFY29yZVBpcGVN
ZXNzYWdlLCBlY29yZVBpcGVNZXNzYWdlU2l6ZSk7Ci0gICAgfQotfQotCi1SdW5Mb29wOjpUaW1l
ckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKikKLSAgICA6IG1fdGltZXIoMCkKLSAgICAsIG1faXNS
ZXBlYXRpbmcoZmFsc2UpCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgp
Ci17Ci0gICAgc3RvcCgpOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJl
ZCh2b2lkKiBkYXRhKQotewotICAgIFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIgPSBzdGF0aWNf
Y2FzdDxSdW5Mb29wOjpUaW1lckJhc2UqPihkYXRhKTsKLQotICAgIGlmICghdGltZXItPm1faXNS
ZXBlYXRpbmcpCi0gICAgICAgIHRpbWVyLT5tX3RpbWVyID0gMDsKLQotICAgIHRpbWVyLT5maXJl
ZCgpOwotCi0gICAgcmV0dXJuIHRpbWVyLT5tX2lzUmVwZWF0aW5nID8gRUNPUkVfQ0FMTEJBQ0tf
UkVORVcgOiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJC
YXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0gICAg
aWYgKGlzQWN0aXZlKCkpCi0gICAgICAgIHN0b3AoKTsKLQotICAgIG1faXNSZXBlYXRpbmcgPSBy
ZXBlYXQ7Ci0gICAgQVNTRVJUKCFtX3RpbWVyKTsKLSAgICBtX3RpbWVyID0gZWNvcmVfdGltZXJf
YWRkKG5leHRGaXJlSW50ZXJ2YWwsIHJlaW50ZXJwcmV0X2Nhc3Q8RWNvcmVfVGFza19DYj4odGlt
ZXJGaXJlZCksIHRoaXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17
Ci0gICAgaWYgKG1fdGltZXIpIHsKLSAgICAgICAgZWNvcmVfdGltZXJfZGVsKG1fdGltZXIpOwot
ICAgICAgICBtX3RpbWVyID0gMDsKLSAgICB9Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNl
Ojppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIChtX3RpbWVyKSA/IHRydWUgOiBmYWxz
ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGI0NTZkNGY1ZmVhZWIwY2Y2
NGVjZmViNzY5MDA0YmU1ZTc3NzhhYWIuLmRkOWFmMjhhNzk1ZjIxNDJlY2RmNzlmY2VjMGY1ZGRi
YjE5MjI1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJHcmFwaGljc0xheWVy
VHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCi0j
aW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlLmgiCiAjaW5j
bHVkZSAiVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlv
bk1hdHJpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZS5oCmluZGV4IDAyNTA1ZDBiYTdkNjI4OWVlN2FmNjg2NzAyMjJlYmZhNmI0NTk1
YzguLjA3Y2Q1NjM0ZmNjN2Q5YTUxMTdlYWFiNzU2ZDllYzhlZTY5YWVmODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKQEAgLTMw
LDcgKzMwLDYgQEAKICNpbmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNs
dWRlICJUZXh0dXJlTWFwcGVyLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9y
ZS5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJGUFNDb3VudGVyLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZlMzI5MmQ0ZTk0OGIyOGJkYjhjMDg1YzVhNTQ1YWE4NjBmNjFkMjIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1J1bkxvb3BHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTcxICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSA8Z2RrL2dkay5oPgotI2luY2x1ZGUgPGdsaWIu
aD4KLQotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotUnVuTG9vcDo6UnVuTG9vcCgpCi17Ci0gICAgLy8gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgp
IGRvZXNuJ3QgYWRkIGFuIGV4dHJhIHJlZmVyZW5jZS4KLSAgICBtX3J1bkxvb3BDb250ZXh0ID0g
aXNNYWluVGhyZWFkKCkgPyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgOiBhZG9wdEdSZWYoZ19t
YWluX2NvbnRleHRfbmV3KCkpOwotICAgIEFTU0VSVChtX3J1bkxvb3BDb250ZXh0KTsKLSAgICBH
UmVmUHRyPEdNYWluTG9vcD4gaW5uZXJtb3N0TG9vcCA9IGFkb3B0R1JlZihnX21haW5fbG9vcF9u
ZXcobV9ydW5Mb29wQ29udGV4dC5nZXQoKSwgRkFMU0UpKTsKLSAgICBBU1NFUlQoaW5uZXJtb3N0
TG9vcCk7Ci0gICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChpbm5lcm1vc3RMb29wKTsKLX0K
LQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIGZvciAoaW50IGkgPSBtX3J1bkxvb3BNYWlu
TG9vcHMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgaWYgKCFnX21haW5fbG9v
cF9pc19ydW5uaW5nKG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSkpCi0gICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluTG9vcHNbaV0u
Z2V0KCkpOwotICAgIH0KLX0KLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIFJ1bkxvb3Aq
IG1haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOwotICAgIEdNYWluTG9vcCogaW5uZXJt
b3N0TG9vcCA9IG1haW5SdW5Mb29wLT5pbm5lcm1vc3RMb29wKCk7Ci0gICAgaWYgKCFnX21haW5f
bG9vcF9pc19ydW5uaW5nKGlubmVybW9zdExvb3ApKSB7Ci0gICAgICAgIGdfbWFpbl9sb29wX3J1
bihpbm5lcm1vc3RMb29wKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIENyZWF0
ZSBhbmQgcnVuIGEgbmVzdGVkIGxvb3AgaWYgdGhlIGlubmVybW9zdCBvbmUgd2FzIGFscmVhZHkg
cnVubmluZy4KLSAgICBHTWFpbkxvb3AqIG5lc3RlZE1haW5Mb29wID0gZ19tYWluX2xvb3BfbmV3
KDAsIEZBTFNFKTsKLSAgICBtYWluUnVuTG9vcC0+cHVzaE5lc3RlZE1haW5Mb29wKG5lc3RlZE1h
aW5Mb29wKTsKLSAgICBnX21haW5fbG9vcF9ydW4obmVzdGVkTWFpbkxvb3ApOwotICAgIG1haW5S
dW5Mb29wLT5wb3BOZXN0ZWRNYWluTG9vcCgpOwotfQotCi1HTWFpbkxvb3AqIFJ1bkxvb3A6Omlu
bmVybW9zdExvb3AoKQotewotICAgIC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBh
bHdheXMgYmUgdGhlcmUuCi0gICAgQVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgp
KTsKLSAgICByZXR1cm4gbV9ydW5Mb29wTWFpbkxvb3BzWzBdLmdldCgpOwotfQotCi12b2lkIFJ1
bkxvb3A6OnB1c2hOZXN0ZWRNYWluTG9vcChHTWFpbkxvb3AqIG5lc3RlZExvb3ApCi17Ci0gICAg
Ly8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAgICBB
U1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwotICAgIG1fcnVuTG9vcE1haW5M
b29wcy5hcHBlbmQoYWRvcHRHUmVmKG5lc3RlZExvb3ApKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpw
b3BOZXN0ZWRNYWluTG9vcCgpCi17Ci0gICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hv
dWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0Vt
cHR5KCkpOwotICAgIG1fcnVuTG9vcE1haW5Mb29wcy5yZW1vdmVMYXN0KCk7Ci19Ci0KLXZvaWQg
UnVuTG9vcDo6c3RvcCgpCi17Ci0gICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxk
IGFsd2F5cyBiZSB0aGVyZS4KLSAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5
KCkpOwotICAgIEdSZWZQdHI8R01haW5Mb29wPiBsYXN0TWFpbkxvb3AgPSBtX3J1bkxvb3BNYWlu
TG9vcHMubGFzdCgpOwotICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKGxhc3RNYWluTG9v
cC5nZXQoKSkpCi0gICAgICAgIGdfbWFpbl9sb29wX3F1aXQobGFzdE1haW5Mb29wLmdldCgpKTsK
LX0KLQotZ2Jvb2xlYW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3ApCi17Ci0g
ICAgcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsKLSAgICByZXR1cm4gRkFMU0U7Ci19Ci0KLXZvaWQg
UnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFkb3B0
R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKLSAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkoc291
cmNlLmdldCgpLCBHX1BSSU9SSVRZX0RFRkFVTFQpOwotICAgIGdfc291cmNlX3NldF9jYWxsYmFj
ayhzb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpx
dWV1ZVdvcmspLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgpLCBt
X3J1bkxvb3BDb250ZXh0LmdldCgpKTsKLQotICAgIGdfbWFpbl9jb250ZXh0X3dha2V1cChtX3J1
bkxvb3BDb250ZXh0LmdldCgpKTsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2Uo
UnVuTG9vcCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgICwgbV90aW1l
clNvdXJjZSgwKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQotewot
ICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3Vy
Y2UoKQotewotICAgIG1fdGltZXJTb3VyY2UgPSAwOwotfQotCi1nYm9vbGVhbiBSdW5Mb29wOjpU
aW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRpbWVyKQot
ewotICAgIEdTb3VyY2UqIGN1cnJlbnRUaW1lclNvdXJjZSA9IHRpbWVyLT5tX3RpbWVyU291cmNl
LmdldCgpOwotICAgIGJvb2wgaXNSZXBlYXRpbmcgPSB0aW1lci0+aXNSZXBlYXRpbmcoKTsKLSAg
ICAvLyBUaGlzIGNhbiBjaGFuZ2UgdGhlIHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5nIGEgbmV3IHRp
bWVyIHdpdGhpbiB0aGUgY2FsbGJhY2suCi0gICAgaWYgKCFpc1JlcGVhdGluZyAmJiBjdXJyZW50
VGltZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCi0gICAgICAgIHRpbWVy
LT5jbGVhclRpbWVyU291cmNlKCk7Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsKLSAgICByZXR1cm4g
aXNSZXBlYXRpbmc7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUg
ZmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBpZiAobV90aW1lclNvdXJjZSkKLSAg
ICAgICAgc3RvcCgpOwotCi0gICAgbV90aW1lclNvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRf
c291cmNlX25ldyhzdGF0aWNfY2FzdDxndWludD4oZmlyZUludGVydmFsICogMTAwMCkpKTsKLSAg
ICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3Rp
bWVyU291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9h
dHRhY2gobV90aW1lclNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BDb250ZXh0Lmdl
dCgpKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIGlmICgh
bV90aW1lclNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ19zb3VyY2VfZGVzdHJveSht
X3RpbWVyU291cmNlLmdldCgpKTsKLSAgICBjbGVhclRpbWVyU291cmNlKCk7Ci19Ci0KLWJvb2wg
UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGlt
ZXJTb3VyY2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2Y2OWMwNjQ5YzczZDI1NjhhMTFjNzdlODM4NjRjOTIyNzQ4MGIxYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUnVuTG9vcFdpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNzkgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJhcy5oPgot
Ci11c2luZyBuYW1lc3BhY2Ugc3RkOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBj
b25zdCBVSU5UIFBlcmZvcm1Xb3JrTWVzc2FnZSA9IFdNX1VTRVIgKyAxOwotc3RhdGljIGNvbnN0
IExQV1NUUiBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdl
V2luZG93IjsKLQotTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05E
IGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsKLSAg
ICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9IHN0YXRpY19jYXN0PFJ1bkxvb3AqPihnZXRXaW5kb3dQ
b2ludGVyKGhXbmQsIDApKSkKLSAgICAgICAgcmV0dXJuIHJ1bkxvb3AtPnduZFByb2MoaFduZCwg
bWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwotCi0gICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JFQVRF
KSB7Ci0gICAgICAgIExQQ1JFQVRFU1RSVUNUIGNyZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8TFBDUkVBVEVTVFJVQ1Q+KGxQYXJhbSk7Ci0KLSAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBS
dW5Mb29wIHdpdGggdGhlIHdpbmRvdy4KLSAgICAgICAgc2V0V2luZG93UG9pbnRlcihoV25kLCAw
LCBjcmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFyYW1zKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAg
fQotCi0gICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQ
YXJhbSk7Ci19Ci0KLUxSRVNVTFQgUnVuTG9vcDo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsKLSAgICBzd2l0Y2ggKG1lc3Nh
Z2UpIHsKLSAgICBjYXNlIFBlcmZvcm1Xb3JrTWVzc2FnZToKLSAgICAgICAgcGVyZm9ybVdvcmso
KTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2FzZSBXTV9USU1FUjoKLSAgICAgICAgUnVuTG9v
cDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHRoaXMsIHdQYXJhbSk7Ci0gICAgICAgIHJldHVybiAw
OwotICAgIH0KLQotICAgIHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1Bh
cmFtLCBsUGFyYW0pOwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgTVNHIG1lc3Nh
Z2U7Ci0gICAgd2hpbGUgKEJPT0wgcmVzdWx0ID0gOjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAwLCAw
LCAwKSkgewotICAgICAgICBpZiAocmVzdWx0ID09IC0xKQotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbWVzc2FnZSk7Ci0gICAgICAgIDo6RGlzcGF0Y2hN
ZXNzYWdlKCZtZXNzYWdlKTsKLSAgICB9Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0g
ICAgOjpQb3N0UXVpdE1lc3NhZ2UoMCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6cmVnaXN0ZXJSdW5M
b29wTWVzc2FnZVdpbmRvd0NsYXNzKCkKLXsKLSAgICAvLyBGSVhNRTogVGhpcyByZWFsbHkgb25s
eSBuZWVkcyB0byBiZSBjYWxsZWQgb25jZS4KLQotICAgIFdORENMQVNTIHdpbmRvd0NsYXNzID0g
eyAwIH07Ci0gICAgd2luZG93Q2xhc3MubHBmblduZFByb2MgICAgID0gUnVuTG9vcDo6UnVuTG9v
cFduZFByb2M7Ci0gICAgd2luZG93Q2xhc3MuY2JXbmRFeHRyYSAgICAgID0gc2l6ZW9mKFJ1bkxv
b3AqKTsKLSAgICB3aW5kb3dDbGFzcy5scHN6Q2xhc3NOYW1lICAgPSBrUnVuTG9vcE1lc3NhZ2VX
aW5kb3dDbGFzc05hbWU7Ci0KLSAgICByZXR1cm4gISE6OlJlZ2lzdGVyQ2xhc3MoJndpbmRvd0Ns
YXNzKTsKLX0KLQotUnVuTG9vcDo6UnVuTG9vcCgpCi17Ci0gICAgcmVnaXN0ZXJSdW5Mb29wTWVz
c2FnZVdpbmRvd0NsYXNzKCk7Ci0KLSAgICBtX3J1bkxvb3BNZXNzYWdlV2luZG93ID0gOjpDcmVh
dGVXaW5kb3coa1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lLCAwLCAwLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDV19VU0VERUZBVUxULCAwLCBDV19V
U0VERUZBVUxULCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBIV05EX01FU1NBR0UsIDAsIDAsIHRoaXMpOwotICAgIEFTU0VSVCg6OklzV2luZG93KG1fcnVu
TG9vcE1lc3NhZ2VXaW5kb3cpKTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIC8v
IEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBoZXJlLgotfQotCi12b2lkIFJ1
bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgLy8gRklYTUU6IE5vIG5lZWQgdG8gd2FrZSB1cCB0aGUg
cnVuIGxvb3AgaWYgd2UndmUgYWxyZWFkeSBjYWxsZWQgZGlzcGF0Y2gKLSAgICAvLyBiZWZvcmUg
dGhlIHJ1biBsb29wIGhhcyBoYWQgdGhlIHRpbWUgdG8gcmVzcG9uZC4KLSAgICA6OlBvc3RNZXNz
YWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRlcnBy
ZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAwKTsKLX0KLQotLy8gUnVuTG9vcDo6VGltZXIKLQotdm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgdWludDY0
X3QgSUQpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZmluZChJRCk7Ci0gICAgaWYgKGl0ID09IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVu
ZCgpKSB7Ci0gICAgICAgIC8vIFRoZSB0aW1lciBtdXN0IGhhdmUgYmVlbiBzdG9wcGVkIGFmdGVy
IHRoZSBXTV9USU1FUiBtZXNzYWdlIHdhcyBwb3N0ZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUuCi0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnZhbHVl
OwotCi0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgewotICAgICAgICBydW5Mb29wLT5t
X2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwotICAgICAgICA6OktpbGxUaW1lcihydW5Mb29wLT5t
X3J1bkxvb3BNZXNzYWdlV2luZG93LCBJRCk7Ci0gICAgfQotCi0gICAgdGltZXItPmZpcmVkKCk7
Ci19Ci0KLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVRpbWVySUQoKQotewotICAgIHN0YXRpYyB1
aW50NjRfdCB1bmlxdWVUaW1lcklEID0gMTsKLSAgICByZXR1cm4gdW5pcXVlVGltZXJJRCsrOwot
fQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAg
IDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX0lEKGdlbmVyYXRlVGltZXJJRCgpKQotICAg
ICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGlt
ZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpz
dGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0gICAgbV9pc1Jl
cGVhdGluZyA9IHJlcGVhdDsKLSAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lE
LCB0aGlzKTsKLSAgICA6OlNldFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRv
dywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAsIDApOwotfQotCi12b2lkIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5M
b29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOwotICAgIGlmIChpdCA9PSBtX3J1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3J1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgOjpLaWxsVGltZXIobV9ydW5Mb29wLT5t
X3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lEKTsKLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJh
c2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRp
bWVycy5jb250YWlucyhtX0lEKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRleCAzOGYx
MzQ3YTM0YmE0YzIwNDE0NjFmZWM0ZmU0NGE4ZWRmMGEyNjIyLi5lMTEyODc1YzFkN2EyMjlkMDdh
MDRhZmMwY2M5MDZiZWFhYTY3MWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJi
b24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24v
Q2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtNzMsOSArNzMsOSBAQAogI2ltcG9ydCA8YXNzZXJ0
Lmg+CiAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+
CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAog
I2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViTlNPYmplY3RFeHRyYXMuaCIK
QEAgLTI3Miw3ICsyNzIsNyBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVF
dmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogewogICAgIEpTQzo6
aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1By
b2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5S
dW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2Vi
Q29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQppbmRleCA2NjE1NWRiYjhhOWZj
Njc3M2MxZmRiN2RlOTQ4MmQ3YmRkYTgwMTAyLi40YmVmZTY2OTY3ZjBhNTQ0MzczZjc1NTMxYmM0
M2MwMTM3YWRlZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJh
Y2tGb3J3YXJkTGlzdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tG
b3J3YXJkTGlzdC5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5
SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VD
YWNoZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Nl
dHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CkBAIC01MCw2ICs0OSw3IEBACiAjaW1wb3J0IDx3dGYv
QXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTA1LDcgKzEwNSw3IEBA
IFdlYkJhY2tGb3J3YXJkTGlzdCAqa2l0KEJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0
KQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6
ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6
aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5M
b29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KaW5kZXggNTc5ZmY2
Y2M1MWExODU5M2FmMDgzODUxZTQ0OGI2NjY3ZTFmYmQ2My4uNTUwZTZlMWEyMzVmMWQ1ODFmMTM2
MDM1YTg0NDkzODgyMjkxZGJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9y
eS9XZWJIaXN0b3J5SXRlbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhp
c3RvcnlJdGVtLm1tCkBAIC00NywxMiArNDcsMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvSW1hZ2Uu
aD4KICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDYWNoZS5o
PgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENo
ZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxy
dW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+
CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNp
bXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgV0tOb3RpZnlIaXN0b3J5SXRlbUNoYW5nZWQoSGlz
dG9yeUl0ZW0qKQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6
aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6
UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6
ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxm
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2FjaGUubW0KaW5kZXggMGNiZWQwMTIyZjg5NjEy
ZDdjMDQ2YzdkNzk3MTBmMWZiN2Q5NTg4MC4uNzY1MTg3NjU3MmUxNzczZWM0MGQ4ODY5NzUzNTU4
NjBlNWM4MDZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCkBAIC0zMyw5ICszMyw5
IEBACiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaD4KICNpbXBvcnQgPFdl
YkNvcmUvTWVtb3J5Q2FjaGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9y
dCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVh
ZC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogQGltcGxlbWVudGF0aW9uIFdlYkNhY2hl
CiAKQEAgLTQzLDcgKzQzLDcgQEAKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsK
ICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAg
IFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6
OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
KCk7ICAgCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVu
dERpY3Rpb25hcnkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkVsZW1lbnREaWN0aW9u
YXJ5Lm1tCmluZGV4IDE3ZjIyMDE5MDcwYzQwMTE2NTU3YmUwY2E2M2Y3YzRkOGQyZGVmZjYuLjkw
OTRhMzhiMjZkOWE4MmY2NTc2NTYxODE1ZjgxNDQxMmY5N2UwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbQpAQCAtMzksMTIgKzM5LDEyIEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpdFRlc3RSZXN1
bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW1hZ2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9v
cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2Vi
S2l0L0RPTUNvcmUuaD4KICNpbXBvcnQgPFdlYktpdC9ET01FeHRlbnNpb25zLmg+CiAjaW1wb3J0
IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgdm9pZCBjYWNoZVZhbHVlRm9yS2V5KGNvbnN0IHZv
aWQgKmtleSwgY29uc3Qgdm9pZCAqdmFsdWUsIHZvaWQgKnNlbGYpCiB7CiAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vz
c01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3Jl
T2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViSWNvbkRhdGFiYXNlLm1tCmluZGV4IDdmODczYWIxZWRjNmNlMjk2OGIzNzcyZmQ1ZTkw
YjQxYzRlMDhiODUuLjFlMzk5MWIwYzllZTc3NDNkZTE1OWY1NTkwMjg3NDYyZTkzMjM2YjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCkBAIC0zOSwxMSArMzks
MTEgQEAKICNpbXBvcnQgPFdlYkNvcmUvSWNvbkRhdGFiYXNlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0ltYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
UnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05MCw3ICs5MCw3IEBAIHN0YXRpYyBX
ZWJJY29uRGF0YWJhc2VDbGllbnQqIGRlZmF1bHRDbGllbnQoKQogewogICAgIEpTQzo6aW5pdGlh
bGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NN
YWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiB9CiAKICsgKFdlYklj
b25EYXRhYmFzZSAqKXNoYXJlZEljb25EYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCmluZGV4IDdlMDViMzQ4YTFjZDRmMDBkNTc3NTYyMWQ5ODAwZmYxM2IwMWM2OTMuLjE4MWFi
NzA1OTEzM2NkNTNmNjIyMTJiYmUxYzk1ZGI2NzRhNWVmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBs
dWdpblZpZXcubW0KQEAgLTQ2LDEyICs0NiwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJF
bWJlZGRlZE9iamVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvcnVudGltZV9yb290Lmg+CiAjaW1wb3J0IDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1w
b3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+
CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC03Myw3ICs3Myw3IEBAIGV4dGVybiAiQyIgewogewog
ICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5U
aHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICBXS1NlbmRV
c2VyQ2hhbmdlTm90aWZpY2F0aW9ucygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IGFiY2M4MmIyNGJh
MmViMmEzN2UyMTZjZmZlMTYxMzEwNzkyNDA2OGUuLjE0Nzc1YjUyY2E4OGFlNmUxYjFhM2FmYTM2
MzAwMTU2OWUxNjI2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
QmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTU1LDEzICs1NSwxMyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmll
dy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJXaWRnZXQuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
UnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTVByaXZhdGUu
aD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3Rm
L0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYv
UnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVmaW5lIExvZ2lu
V2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24gICAgQCJXZWJMb2dpbldpbmRvd0Rp
ZFN3aXRjaEZyb21Vc2VyTm90aWZpY2F0aW9uIgpAQCAtNzUsNyArNzUsNyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBX
VEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNv
cmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRp
YWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQo
c2VsZik7CiAgICAgV0tTZW5kVXNlckNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCmluZGV4IDVi
MDdiOTgwNTkyZGUyM2MwYWYyN2M5MGJkMGQ5NzQ0ZDJlMjI5NzQuLjI0MGM0OThjZDBhZTlkMWE5
M2UyZDU3M2UzY2YzZjhmMDAwZGQ4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbQpAQCAtMjksNyArMjksNiBAQAogI2ltcG9ydCA8
V2ViS2l0L1dlYkJhc2VQbHVnaW5QYWNrYWdlLmg+CiAKICNpbXBvcnQgPGFsZ29yaXRobT4KLSNp
bXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4
dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdE5TU3RyaW5nRXh0cmFzLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLmg+CkBAIC0zOCw2ICszNyw3IEBACiAj
aW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNp
bXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApA
QCAtNjgsNyArNjgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHsKICAgICBKU0M6Omlu
aXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9j
ZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVu
TG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNv
cmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggN2Y0Yzg4YTVi
ZWYwMmM5ZTExMjAyMGM1NzQyOGI5NzA1YmYxNjBmOC4uNmQwZjNkZDhhZDkxMzZiZDgyYmUzZjM4
MjVlNTViNDMzOGY4ZDk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTY3LDcgKzY3LDYgQEAKICNpbXBvcnQgPFdlYkNv
cmUvUGFnZS5oPiAKICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Qcm94eVNlcnZlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4g
CkBAIC04Miw2ICs4MSw3IEBACiAjaW1wb3J0IDxydW50aW1lL0pTTG9jay5oPgogI2ltcG9ydCA8
d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVmaW5lIExv
Z2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24gICAgQCJXZWJMb2dpbldpbmRv
d0RpZFN3aXRjaEZyb21Vc2VyTm90aWZpY2F0aW9uIgpAQCAtMTk0LDcgKzE5NCw3IEBAIHR5cGVk
ZWYgc3RydWN0IHsKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6
OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6
OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2Vs
Zik7CiAgICAgV0tTZW5kVXNlckNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCBl
MmNlYTBjMGM2OGZhYTM5ZjU1NzRlM2MxNmU2NTg0ZWQyMjZiNmFkLi5kYzI2OGUyNjYxY2YzMDcx
MjgwOWQ1MWE1YTFiNTBhMzg1ZDIwNzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02MSw3ICs2MSw2IEBACiAjaW1w
b3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0eVNl
dC5oPgpAQCAtNzEsNiArNzAsNyBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDcsNyArMTA3LDcgQEAgc3Rh
dGljIFdlYlZpZXdJbnNlcnRBY3Rpb24ga2l0KEVkaXRvckluc2VydEFjdGlvbiBjb3JlQWN0aW9u
KQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6
ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6
aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5M
b29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQppbmRleCBmOGNiMTM0YmE3NDNiYzI2NGZlM2ViY2M4MWZiY2I3NWVjNjNi
OTM0Li4xODc1YWMwYmJkYzE1YWZlYjE3NjY0NjJmNzM0MTY5MzlmNTY5NjY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbQpAQCAtMTE1LDcgKzExNSw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlSGFu
ZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVk
QnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CkBAIC0xMjcs
NiArMTI2LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW1w
b3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNp
ZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKQEAgLTIwMDksNyArMjAwOSw3IEBAIFBh
c3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0CiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7
CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAg
ICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29w
Ojppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWlu
VGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkFyY2hpdmUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0K
aW5kZXggOTg5MGY4ZGZhOGM3MjM4YzlhN2I0NzhkM2VkMjdiMDJiZTgzZDNmNi4uNzIzMzE2Zjlj
YTczODRkMzZiZmU2ZjkzZDFjODA0ZDE5ZTI5MGFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViQXJjaGl2ZS5tbQpAQCAtMzYsMTAgKzM2LDEwIEBACiAjaW1wb3J0IDxKYXZhU2NyaXB0
Q29yZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FyY2hpdmVSZXNv
dXJjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtNjksNyArNjksNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJTdWJmcmFtZUFy
Y2hpdmVzS2V5ID0gQCJXZWJTdWJmcmFtZUFyY2hpdmVzIjsKIHsKICAgICBKU0M6OmluaXRpYWxp
emVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFp
blRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpD
RmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRGF0YVNvdXJjZS5tbQppbmRleCAwZWZiMmFkMDZlZTYxYzg2OWZlOGMyM2ZjMjhjNTky
YmFjYzhhNzMzLi42MDI5OGRmN2UzZjAyYjM3NzlhNDRhNDc2ZDE3MzVmODEzMzg0MTUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCkBAIC01NCw3ICs1NCw2
IEBACiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVm
ZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVVUkxSZXNwb25zZS5oPgpAQCAtNjUsNiArNjQsNyBAQAogI2ltcG9ydCA8
d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVz
RnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAg
ICBpZiAoc2VsZiA9PSBbV2ViRGF0YVNvdXJjZSBjbGFzc10pIHsKICAgICAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1By
b2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVN
YWluUnVuTG9vcCgpOworICAgICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsK
ICAgICAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCBhMmFlZjJhYmRm
MjYxNGZiMTg1ZDBkYWZjMjQ2ZTY1YWY2YWM3YzgwLi40ODYyODBlNDdiNmE1NWQ2OTNmODRhMzUx
NDJkYTMzOGUyYmY3OWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcu
bW0KQEAgLTExMSw3ICsxMTEsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1JlbmRlcldpZGdldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJj
ZUJ1ZmZlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZm
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2ltcGxlRm9udERhdGEuaD4KQEAgLTEzMSw2ICsxMzAs
NyBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3
dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CisjaW1w
b3J0IDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
I2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CkBAIC01NjQsNyArNTY0LDcgQEAgc3Rh
dGljIE5TQ2VsbFN0YXRlVmFsdWUga2l0KFRyaVN0YXRlIHN0YXRlKQogewogICAgIEpTQzo6aW5p
dGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nl
c3NNYWluVGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5M
b29wKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29y
ZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICAKICAgICBpZiAoIW9sZFNldEN1
cnNvckZvck1vdXNlTG9jYXRpb25JTVApIHsKQEAgLTIyNzMsNyArMjI3Myw3IEBAIHN0YXRpYyBi
b29sIG1vdXNlRXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlczpbW3NlbGYgY2xhc3NdIF9pbnNlcnRh
YmxlUGFzdGVib2FyZFR5cGVzXV07CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAg
ICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBX
ZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjpp
bml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhy
ZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbQppbmRleCA3NzVjMmYzMmNhYWIzZDJjOWU5OTYzOTcwY2JkOTczYzViYWY1OTQwLi42ZjBl
OGM5ODE3OWFmMzQyZTUxY2VjMjNkYTNiNjhiOWY1NmEzYmRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTQzLDEwICs0MywxMCBAQAogI2ltcG9y
dCA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFs
aXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKQEAgLTMwNiw3ICszMDYsNyBAQCBwdWJsaWM6CiB7CiAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vz
c01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAogICAgIE5TRGlj
dGlvbmFyeSAqZGljdCA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5
czoKICAgICAgICAgQCJUaW1lcyIsICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRTdGFuZGFy
ZEZvbnRQcmVmZXJlbmNlS2V5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJSZXNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2Uu
bW0KaW5kZXggYTRlYzM1MzE1YWZkNGJmNDVkYzJjNWRlNjQ3MjBhMzE2MDdjOTBjZC4uYWMyZTBh
NjVlZTJlOGUxMGNjNzQwOTkyNWEzODViY2UxM2FlMTYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlJlc291cmNlLm1tCkBAIC0zOCwxMyArMzgsMTMgQEAKICNpbXBvcnQgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3Au
aD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1RleHRFbmNvZGluZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlVVJMUmVzcG9uc2UuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1w
b3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjgs
NyArNjgsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJSZXNvdXJjZVJlc3BvbnNlS2V5
ID0gICAgICAgICAgQCJXZWJSZXNvdXJjZVJlc3BvbnNlIgogewogICAgIEpTQzo6aW5pdGlhbGl6
ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWlu
VGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNG
aW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJUZXh0SXRlcmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlRleHRJdGVyYXRvci5tbQppbmRleCA5YjFiZDhmZWI1NTNmZDhkMTEwYWRlMmNmNjM2
NWRhNDI0MTA1NzZjLi5lODkxNGQ5NzJkNjkwMzI0MjlkZDQ1MWVjNDQ4MjVlNTczOTY0ZGQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbQpAQCAtMjgs
MTIgKzI4LDEyIEBACiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVJh
bmdlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKLSNpbXBvcnQgPHd0
Zi9WZWN0b3IuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9UZXh0SXRlcmF0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4K
ICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01h
aW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvVmVjdG9y
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTUwLDcgKzUwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB7CiAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vz
c01haW5UaHJlYWQoKTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxv
b3AoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICAgICBXZWJDb3Jl
T2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KaW5kZXggMjk1MzYyN2M1YTMyYTM3MDI4YjQyOTQ3NWY0ZGU4YzU2YTAwZjRm
My4uOTQ5MDIxMDA0NGE5YTlhYmM5ZmEyYjBjZTNkMjYyMDJmNDRhNTcwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTY1LDcgKzE2NSw2IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlTG9hZFNjaGVk
dWxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgpAQCAtMjAwLDYgKzE5OSw3IEBACiAjaW1wb3J0
IDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVkTGVha0Nv
dW50ZXIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+
CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NV
UFBPUlQpCkBAIC0zMzYxLDcgKzMzNjEsNyBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gdG9TdHJp
bmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMpCiAgICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UoKTsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxp
emVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVu
TG9vcCgpOwogCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxsVGVybWluYXRl
KSBuYW1lOk5TQXBwbGljYXRpb25XaWxsVGVybWluYXRlTm90aWZpY2F0aW9uIG9iamVjdDpOU0Fw
cF07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZl
cjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfY2FjaGVNb2RlbENoYW5nZWROb3RpZmljYXRpb246
KSBuYW1lOldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlv
biBvYmplY3Q6bmlsXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmlu
ZGV4IGQ3MWZkNjUzYjQ1NzFlN2IzMWUzYmU3MTM1OGRmNjVhZWRmZjVlMDMuLjAzNDNhOWM0NzYw
YTI3MzgzNWI1OTVkZWRhZWU5OTNjM2Q4MjNkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3RGF0YS5tbQpAQCAtMzQsMTAgKzM0LDEwIEBACiAjaW1wb3J0IDxXZWJDb3JlL0Fs
dGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2Jq
Q0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2ltcG9ydCA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxvYmpjL29iamMtYXV0by5oPgogI2ltcG9ydCA8cnVu
dGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgor
I2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogQk9PTCBhcHBsaWNhdGlvbklzVGVybWluYXRpbmcg
PSBOTzsKIGludCBwbHVnaW5EYXRhYmFzZUNsaWVudENvdW50ID0gMDsKQEAgLTc0LDcgKzc0LDcg
QEAgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OldlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVy
KExheWVyRmx1c2hDb250cm9sbGVyKiBmbHUKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRp
bmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgp
OwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1
bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVP
bk1haW5UaHJlYWQoc2VsZik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKaW5kZXggMjI5N2I5NGVhNzZjYTE2NmQ4MTg1NDZk
YjEwNTFjNzNiMjg4MWQzYy4uYTVjMDg0MjEwZGQ5YmVmMzA2MWQzNTU0MzZkMDdkZWViN2VkNzhj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJv
Y2Vzcy5jcHAKQEAgLTMxLDggKzMxLDYgQEAKIAogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNT
KQogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIERh
dGFiYXNlUHJvY2VzcyYgRGF0YWJhc2VQcm9jZXNzOjpzaGFyZWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCAxZTk0MWZiYWNmOTBjOTRmMzdhZDc1ZWU0MmE2MWY2YWYz
YzNlMmM4Li5hNmZlNzNhYjMyMmI4ZjU0YTEzZjQxMDZmM2UwNTdlOGFhNmNmM2IxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUg
IkRhdGFiYXNlUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZC5oIgogI2luY2x1ZGUgIkRhdGFiYXNl
UHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BS
T0NFU1MpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAwM2FmMWM0ZmYyMThm
OWRhZmZlNmIyZTI1ZmY1OWIxNDNhYjBkMjE2Li5lMDA3ZmQ2Mzc1YzY0MjkzN2E3ODg0Y2ZkNWI5
ZjFmMzM1MTYzZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zOSw3ICsz
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDQ0NDll
MTczNWM5MGQ0MWI3MTI3YjBiOTY3OWJlYzM5OTY4NTkyZjEuLmEzYTYwYmRlOWVhOWVjYzc0YWVh
ZDFkMDU0MGY3YzI5Y2IzMmVjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJD
b29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
KyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogI2lmIFVTRShTRUNVUklUWV9GUkFNRVdPUkspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAwMTI4MTc0YTM2ODExYzFkY2QyNzJiZjAz
Y2VjMTA0MDVlZGQxMTAwLi5jYTZmOGZiYjVmMzgzNWNiYWE0YTIwOTZlMjc1ZDkzNDhiOThlOGYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTM1LDEwICszNSw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxl
ci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAg
ICBjbGFzcyBSdW5Mb29wOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQXV0aGVu
dGljYXRpb25NYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA4Y2EyMjdhMjFmZjc5MGU5ZjA0M2E5NzRk
MmM3MjUyZWIxZDI3ZDM0Li4zMjdhZTM0Y2M3YjRkMmE1NGJhMWUxYTU3M2I0YmE1NGIwYmJmMThj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VIYW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9u
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZDYWNoZWRVUkxSZXNwb25z
ZSogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKaW5kZXggYzEzNzk5NWU1YjhlNTBm
ZTlkNjBlNGFkMWZkNDc4MDFiZWQ2MTNhZC4uNDlkMGMwZjZlNjBjMzdmMTA1MDY3Y2Y4ZmU0YjQ2
MjUyZTA5YzFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L0Rpc2tDYWNoZU1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9t
YWMvRGlza0NhY2hlTW9uaXRvci5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBfQ0ZDYWNoZWRVUkxSZXNwb25zZSogQ0ZDYWNoZWRVUkxSZXNwb25z
ZVJlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9O
ZXR3b3JrUHJvY2Vzc01haW5Vbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5jcHAKaW5kZXggZDA4MGI3ODQwYTMyNjNiMTRj
OTE4Y2JiN2IxZmM5MmU1M2M3NWNlZi4uMGI4M2E0YTQ5NzJjNGZhMjQ3ZTkzYmE2YjQzMGE2YTUz
ZjkwMTEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9O
ZXR3b3JrUHJvY2Vzc01haW5Vbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguY3BwCkBAIC0zMiwxMiArMzIsMTIgQEAK
ICNpbmNsdWRlICJQcm94eVJlc29sdmVyU291cC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2lu
Y2x1ZGUgIldlYktpdDJJbml0aWFsaXplLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy5oPgogI2luY2x1ZGUgPGVycm9yLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8c3Rk
bGliLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KIAogI2lmIFBMQVRGT1JNKEVG
TCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCmlu
ZGV4IGUyOTE0MTBiNTBkZTJhMDRmZmIyNTA5ODY0YjBlYjE1NmJhZjQ2YWQuLjUyZjJiZjI4ZmEw
YmIxMzg0YjRjMGI5MWI0MmE2NDBjOGEyMDk3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtMjYsMTQgKzI2LDEyIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogCi0jaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgog
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIENvcmVJUEMgewogCiBjbGFz
cyBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPENvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggN2YwNzNiZjM2ZDY3MzEzYjBlNmI4MmQ2
NzBlYWUyNWYyNDMwMzM5NS4uMTQ1MzhjNTE0NGRkZDFiMmQ3NGE5MDA0YjkyNTkyMzY0Y2NlYWQ0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAg
LTQ5LDcgKzQ5LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgiCiAj
ZW5kaWYKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdURiB7CiBjbGFzcyBSdW5M
b29wOwogfQogCkBAIC0xMTcsOCArMTE3LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlk
ZW50aWZpZXJJc051bGwoSWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiAhaWRlbnRpZmll
cjsgfQogI2VuZGlmCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVT
ZXJ2ZXJDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVudCosIFdlYkNvcmU6OlJ1bkxvb3AqIGNs
aWVudFJ1bkxvb3ApOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZUNs
aWVudENvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xp
ZW50UnVuTG9vcCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlU2Vy
dmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBXVEY6OlJ1bkxvb3AqIGNsaWVudFJ1
bkxvb3ApOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZUNsaWVudENv
bm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV1RGOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29w
KTsKICAgICB+Q29ubmVjdGlvbigpOwogCiAgICAgQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudDsgfQpAQCAtMTY3LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlu
U2VuZFN5bmMoKSBjb25zdCB7IHJldHVybiBtX2luU2VuZFN5bmNDb3VudDsgfQogCiBwcml2YXRl
OgotICAgIENvbm5lY3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50KiwgV2Vi
Q29yZTo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CisgICAgQ29ubmVjdGlvbihJZGVudGlmaWVy
LCBib29sIGlzU2VydmVyLCBDbGllbnQqLCBXVEY6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwog
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKElkZW50aWZpZXIpOwogICAgIHZvaWQgcGxhdGZv
cm1JbnZhbGlkYXRlKCk7CiAgICAgCkBAIC0yMTMsNyArMjEzLDcgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgbV9pc0Nvbm5lY3RlZDsKICAgICBSZWZQdHI8V29ya1F1ZXVlPiBtX2Nvbm5lY3Rpb25R
dWV1ZTsKLSAgICBXZWJDb3JlOjpSdW5Mb29wKiBtX2NsaWVudFJ1bkxvb3A7CisgICAgV1RGOjpS
dW5Mb29wKiBtX2NsaWVudFJ1bkxvb3A7CiAKICAgICBIYXNoTWFwPFN0cmluZ1JlZmVyZW5jZSwg
c3RkOjpwYWlyPFJlZlB0cjxXb3JrUXVldWU+LCBSZWZQdHI8V29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyPj4+IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyczsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcAppbmRleCAyN2Jj
MmNjZDE2YmRmZjM1MjFjZjQ2Yjg0MTUwNDQ1NTRhMjMyZjllLi4xMWM4ZjFmYTEzNGE4OWU1NjMy
YWFmNGUwMTE3OWYxN2M3MzE0ZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcApAQCAtMzAsMTMgKzMwLDExIEBACiAj
aW5jbHVkZSAiSW1wb3J0YW5jZUFzc2VydGlvbi5oIgogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAj
aW5jbHVkZSAiTWFjaFV0aWxpdGllcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgog
I2luY2x1ZGUgPG1hY2gvbWFjaF9lcnJvci5oPgogI2luY2x1ZGUgPG1hY2gvdm1fbWFwLmg+Cisj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx4cGMveHBjLmg+CiAKLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKIHN0YXRpYyBjb25zdCBz
aXplX3QgaW5saW5lTWVzc2FnZU1heFNpemUgPSA0MDk2OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblBy
b2Nlc3NNYWluLm1tIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCmluZGV4IGE4NzFmMTIxYTk3MzQ5
ZDdmZjg1ODhkZGJjYTQ0NzdkNTE2ZDJkNGMuLmVhYmFiZGQ5MzljMTZkNDMyNDhiZTk3MmM0YzNh
NjM4ZGJjNTkwMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50
cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1
Z2luUHJvY2Vzc01haW4ubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgIk5ldHNjYXBlUGx1
Z2luTW9kdWxlLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCiAjaW1wb3J0ICJXS0Jhc2Uu
aCIKLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
IAogI2lmIFVTRShBUFBLSVQpCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKFdlYk5TQXBwbGlj
YXRpb25EZXRhaWxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9F
bnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdp
blNlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IDBjNGJkZDNlMTEwYWQwMTQyNWIzNjQ1MWNjYTM2
OTA2M2RhNDZkNzEuLjA3ODIyZTY4MGU5MjRlOTlhMmI5ZGRlZDQwZjA5NmYzNWJhMDdkZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBD
U2VydmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5
UG9pbnQubW0KQEAgLTI5LDcgKzI5LDcgQEAKICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKICNp
bXBvcnQgIldLQmFzZS5oIgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKLSNpbXBv
cnQgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTU5LDcgKzU5LDYgQEAgcHVibGljOgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogCiBleHRlcm4gIkMiIFdLX0VYUE9SVCB2b2lkIFBsdWdpblNlcnZpY2VJbml0aWFsaXpl
cih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1l
c3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5D
b250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5LmgKaW5kZXggY2U0ZWYxNjBiNjUwNWZhZDgzNmI3Yzc5YzAxNzU3NDlkNDFj
NGY5My4uZTg3YzdhN2E0ZGUwZjI1Zjk2NjE3N2NjNDEyN2QxNGMwZWQxZWY1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5o
CkBAIC0zNCw5ICszNCw5IEBACiAjaW5jbHVkZSAiUGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKICAg
ICBjbGFzcyBEYXRhUmVmZXJlbmNlOwpAQCAtMTgzLDE0ICsxODMsMTQgQEAgcHJpdmF0ZToKICAg
ICBXZWJDb3JlOjpJbnRSZWN0IG1fZGlydHlSZWN0OwogCiAgICAgLy8gVGhlIHBhaW50IHRpbWVy
LCB1c2VkIGZvciBjb2FsZXNjaW5nIHBhaW50aW5nLgotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRp
bWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wYWludFRpbWVyOworICAgIFJ1bkxvb3A6OlRp
bWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wYWludFRpbWVyOwogICAgIAogICAgIC8vIEEg
Y291bnRlciB1c2VkIHRvIHByZXZlbnQgdGhlIHBsdWctaW4gZnJvbSBiZWluZyBkZXN0cm95ZWQu
CiAgICAgdW5zaWduZWQgbV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RDb3VudDsKIAogICAgIC8v
IEEgdGltZXIgdGhhdCB3ZSB1c2UgdG8gcHJldmVudCBkZXN0cnVjdGlvbiBvZiB0aGUgcGx1Zy1p
biB3aGlsZSBwbHVnLWluCiAgICAgLy8gY29kZSBpcyBvbiB0aGUgc3RhY2suCi0gICAgV2ViQ29y
ZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BsdWdpbkRlc3Ryb3lU
aW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1Z2lu
RGVzdHJveVRpbWVyOwogCiAgICAgLy8gV2hldGhlciB3ZSdyZSB3YWl0aW5nIGZvciB0aGUgcGx1
Zy1pbiBwcm94eSBpbiB0aGUgd2ViIHByb2Nlc3MgdG8gZHJhdyB0aGUgY29udGVudHMgb2YgaXRz
CiAgICAgLy8gYmFja2luZyBzdG9yZSBpbnRvIHRoZSB3ZWIgcHJvY2VzcyBiYWNraW5nIHN0b3Jl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKaW5k
ZXggMzZkMWZjNGExNjVlNTViMTA2ZjZhM2IzNjU3NDg1N2MyY2Y3MWNmYy4uOGZlYjlmZmU3MmFj
NjczOGVjNWQwOGY1MmZkZjMxYzIxYjY0YTc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeVByZXNzdXJl
SGFuZGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgUExB
VEZPUk0oTUFDKQogI2luY2x1ZGUgPGNydF9leHRlcm5zLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IDdhMjBlZDA1YjJhYTlkYzVlYmVkMjg1
MmFiNjE2NWI5MzVlZGIyZmYuLjE2ZjMyMzg4NWE1NzM0OTUwMGExMzcyODY5MTc3NjZhOTBkMWVl
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCkBA
IC0xMDksNyArMTA5LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fc3VwcG9ydHNBc3lu
Y2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbjsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRp
bWVyPFBsdWdpblByb2Nlc3M+IG1fbWluaW11bUxpZmV0aW1lVGltZXI7CisgICAgUnVuTG9vcDo6
VGltZXI8UGx1Z2luUHJvY2Vzcz4gbV9taW5pbXVtTGlmZXRpbWVUaW1lcjsKIAogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oTUFDKQogICAgIC8vIFRoZSBNYWNo
IHBvcnQgdXNlZCBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGM3
MWMxZDQ4MmRjZDRmMjZlY2E1OTJkMTllN2I3YzIzNjhjNzU4NTQuLjNhNGQxNWFkNTlmZDI1ZDIx
ZDI1OTUwYzU1OWE4ZjY2M2MxMTNjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zOSw4ICszOSw4IEBACiAj
aW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBs
dWdpblByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9j
ZXNzTWFpblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdp
blByb2Nlc3NNYWluVW5peC5jcHAKaW5kZXggMGE1NjQ2MWM5OGMxZGNlMDg5ZjYzZDFkOTQzMjU0
YjFlMjZjZWI2Ni4uMDY3ZDVkMGY1ZjMxNGNiMDI5ZjE2MmY2NWQ0NDVmOTU4MjJmZjJhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NN
YWluVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdp
blByb2Nlc3NNYWluVW5peC5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJOZXRzY2Fw
ZVBsdWdpbi5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJLaXQy
SW5pdGlhbGl6ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNp
ZiBQTEFURk9STShYMTEpICYmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19YMTEpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCmluZGV4IGIyMjMzYTM1YTFhMTM5NjhhMDAwNGEyMGMx
MTg4NzI0YmFiMDgxMjUuLjhlMGRiOGI0M2UwYjk0NzZhZGU3ZmUzM2ZjZGZiODY0YzMzOWU1MGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCkBAIC0yOSw4ICsyOSw2IEBA
CiAjaW5jbHVkZSAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUg
PHVuaXN0ZC5oPgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIENoaWxkUHJvY2Vzczo6Q2hpbGRQcm9jZXNzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGls
ZFByb2Nlc3MuaAppbmRleCBiYTcyMjYyZmExZmM4ZWZmZTc5NjQ3MDAyOTAwZGRmM2EwMzRlYmE5
Li4zNjRmODNlOWZjMDIyNDkzYmNmYTgxZDBjMDU3NTA1NWQ5ZmIxMTk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VTZW5kZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTE0LDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgLy8g
YWZ0ZXIgYSBnaXZlbiBwZXJpb2Qgb2YgdGltZS4KICAgICB1bnNpZ25lZCBtX3Rlcm1pbmF0aW9u
Q291bnRlcjsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPENoaWxkUHJvY2Vzcz4gbV90
ZXJtaW5hdGlvblRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPENoaWxkUHJvY2Vzcz4gbV90ZXJt
aW5hdGlvblRpbWVyOwogCiAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKICAgICBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJN
YXA7CkBAIC0xMjQsNyArMTI0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFByb2Nlc3NTdXBw
cmVzc2lvbkVuYWJsZWRJbnRlcm5hbChib29sKTsKICAgICBzaXplX3QgbV9hY3RpdmVUYXNrQ291
bnQ7CiAgICAgYm9vbCBtX3Nob3VsZFN1c3BlbmQ7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGlt
ZXI8Q2hpbGRQcm9jZXNzPiBtX3N1c3BlbnNpb25IeXN0ZXJlc2lzVGltZXI7CisgICAgUnVuTG9v
cDo6VGltZXI8Q2hpbGRQcm9jZXNzPiBtX3N1c3BlbnNpb25IeXN0ZXJlc2lzVGltZXI7CiAgICAg
UmV0YWluUHRyPGlkPiBtX3Byb2Nlc3NTdXBwcmVzc2lvbkFzc2VydGlvbjsKICNlbmRpZgogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU5YmFm
OTE2NGJkODk5OGZkZmRiZjQ5ZjY1OWM3NTU3NTc2NDU5MDQuLjExZTA4NjgyZWE1ZjBjMTIyMTcx
YjBlZDlhYjU2MzZiM2M2NTQ2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
aGlsZFByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtMjYsOSArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3Au
aD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5
UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9M
ZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaAppbmRleCBjNGM4NTgyOTRmZjVl
MjgxYjg3ZjIzMDMwMTg4YzViNTU5NTdmZmM3Li45MWUyOTc2ODUwZjRiODM1YzMyNDUxZjMxMzQ3
NmE3YzVkNDY1MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2lu
dFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVBy
b2Nlc3MvQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oCkBAIC0yOSw5ICsyOSw5IEBACiAjaW1wb3J0
ICJDaGlsZFByb2Nlc3MuaCIKICNpbXBvcnQgIkNvbW1hbmRMaW5lLmgiCiAjaW1wb3J0ICJXZWJL
aXQySW5pdGlhbGl6ZS5oIgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxX
ZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHN5c2V4aXRzLmg+CisjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hp
bGRQcm9jZXNzRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc0VudHJ5UG9pbnQubW0KaW5k
ZXggOTZhNzgxZTc1MzUzNjlmNTdiZDQ1NmVhZDE3NTY1MWIwNDFkMDJjOS4uNWY4ZmY0ZTAzMWFj
MjlmZWE1Yjc2ZWM2MWI5ZDVkYjc1MmRlOWMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNz
RW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxp
dGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NFbnRyeVBvaW50Lm1tCkBAIC0zNCw4
ICszNCw2IEBACiAKICNkZWZpbmUgU0hPV19DUkFTSF9SRVBPUlRFUiAxCiAKLXVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogQ2hpbGRQcm9jZXNzTWFpbkRl
bGVnYXRlOjp+Q2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94eS5jcHAKaW5kZXggZTc0Y2EyYzZhZWI3ZmU4ZDcw
N2FhYWU3MTMyNGViNGM5ZWQxZDRlZS4uYTM0ZjE5ZGM1ODQ0NmZkZjFiZTJmM2I2OTNmZjQwNTY2
NzlkMDY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmpl
Y3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQ
cm94eS5jcHAKQEAgLTM1LDEwICszNSw4IEBACiAjaW5jbHVkZSAiTlBSZW1vdGVPYmplY3RNYXAu
aCIKICNpbmNsdWRlICJOUFJ1bnRpbWVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJOUFZhcmlhbnRE
YXRhLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSA8d3RmL1J1bkxv
b3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
S2l0MkluaXRpYWxpemUuY3BwCmluZGV4IGM4ODgyZDhhZTFmNDliYjY5MDVhOGUwMTM0NzgyYmVm
ZmRiMDc1ZDAuLmZlOWY1YWU3YmJmM2MwYThiMDU0YmEzMGViYjMxZTY0OWZlNjBjMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcApAQCAtMjgsOSArMjgs
OSBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJXZWJTeXN0ZW1J
bnRlcmZhY2UuaCIKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBJbml0aWFsaXplV2ViS2l0MigpCiAK
ICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWlu
VGhyZWFkKCk7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAKICNpZiAhTE9HX0RJU0FC
TEVECiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGYXZp
Y29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
RmF2aWNvbkRhdGFiYXNlLmNwcAppbmRleCBiNTMxNTVmOWQ1Yjk4N2I1ODYyNjQwZjhjNWIzZjEx
OGY1NzdjNTAxLi42N2M4ZmQ0MzA0OTJlMjFkMThhOGQ3YTEzNzZkNTI2MzNhMzBjMTliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGYXZpY29uRGF0
YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZh
dmljb25EYXRhYmFzZS5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL0lt
YWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWZQdHJDYWlyby5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPGds
aWIvZ2kxOG4tbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
Z29iamVjdC9HT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCA4ZTQ3ODAxNjkzMjA5
ZmJmMTdmMzUzZGU0MmQxMzNhZjQ2ZmZmMDU0Li42ODY0YjY0OWJmMDExOWMzMGY3MDUwOTFmNDA3
MmM5MjI2MDZkYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9GaW5kSW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCkBAIC0yNywxMCArMjcsMTAgQEAKICNkZWZpbmUg
RmluZEluZGljYXRvcldpbmRvd19oCiAKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5o
IgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvTm9uY29weWFibGUu
aD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNp
bXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIEBjbGFzcyBXS0ZpbmRJbmRpY2F0b3JXaW5kb3dBbmlt
YXRpb247CiBAY2xhc3MgV0tWaWV3OwpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIFdL
V2luZG93Qm91bmNlQW5pbWF0aW9uQ29udGV4dFJlZiBtX2JvdW5jZUFuaW1hdGlvbkNvbnRleHQ7
CiAgICAgUmV0YWluUHRyPFdLRmluZEluZGljYXRvcldpbmRvd0FuaW1hdGlvbj4gbV9ib3VuY2VB
bmltYXRpb247CiAKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxGaW5kSW5kaWNhdG9yV2lu
ZG93PiBtX3N0YXJ0RmFkZU91dFRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPEZpbmRJbmRpY2F0
b3JXaW5kb3c+IG1fc3RhcnRGYWRlT3V0VGltZXI7CiAgICAgUmV0YWluUHRyPFdLRmluZEluZGlj
YXRvcldpbmRvd0FuaW1hdGlvbj4gbV9mYWRlT3V0QW5pbWF0aW9uOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbQppbmRleCAw
ZWNiODFjOWFiMzI3MDBmMzZjZGZiNjhiZDhmNDQ2NDlkNzhkYjY0Li42YTkyZTQ3YjU1YmVmM2M1
NTNlYjQyNTE5OTNlMTY0MTU3MjUzYTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbQpAQCAtMzQsOCArMzQsOCBAQAogI2ltcG9y
dCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0IDxQREZLaXQvUERGS2l0Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9v
cC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggMmZhMWFj
NDhiNGU2OWE5ZTcwMDIzODUzNGQ5MDEzOTY3MTU1MWRlMS4uOTNjZjBlMWI0NDNkODhkNGIzZWIw
MzMwYTU5Y2I5N2IxZDEyNGYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQpAQCAtNzksNyArNzksNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2
ZW50RmFjdG9yeU1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2lt
cG9ydCA8V2ViQ29yZS9SZWdpb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVy
bmF0aXZlV2l0aFJhbmdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1N0cmluZ0V4dHJh
cy5oPgpAQCAtOTAsNiArODksNyBAQAogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0
Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5M
b29wLmg+CiAKIC8qIEFQSSBpbnRlcm5hbHMuICovCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXJJbnRlcm5hbC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERy
YXdpbmdBcmVhUHJveHkuaAppbmRleCAxYzRjNGRkODdjZjAwOGJjMmJlM2Q3NzFlN2ExYjVkNGNi
Y2ZkOTIyLi4zYjI1ZmMxZWNkZTQyNjY4NTZiNWIxZjc4NDAzNjEwMGIxMWY4ZDZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZERyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuaApAQCAtMzIsOCAr
MzIsOCBAQAogI2luY2x1ZGUgIkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVh
UHJveHkuaCIKICNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCi0jaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlZ2lvbjsKQEAgLTExNiw3ICsx
MTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0JhY2tpbmdTdG9yZURpc2NhcmRhYmxlOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxCYWNraW5nU3RvcmU+IG1fYmFja2luZ1N0b3JlOwogCi0gICAg
V2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8Q29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5PiBtX2Rp
c2NhcmRCYWNraW5nU3RvcmVUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxDb29yZGluYXRlZERy
YXdpbmdBcmVhUHJveHk+IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5SW1wbC5oCmluZGV4IGQzMTBlNTcyYWQwYmQ2NjkwN2VkNzQ5NjlhNzYyMzcwZDI4YjZh
ZmMuLjQzYzkzMjFjYTk5N2E2MmUxZmVlZGM3ZGVmZGRkM2JhODc0NWI3YTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCkBAIC0yOSw4ICsy
OSw4IEBACiAjaW5jbHVkZSAiQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQ
cm94eS5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKLSNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxv
b3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVnaW9uOwpAQCAtMTA5LDcgKzEw
OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQmFja2luZ1N0b3JlRGlzY2FyZGFibGU7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKLSAgICBX
ZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5SW1wbD4gbV9kaXNjYXJkQmFj
a2luZ1N0b3JlVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFQcm94eUltcGw+
IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nl
c3NMYXVuY2hlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZs
L1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKaW5kZXggM2JkMWVhNjAzZTMxODhiNDNjMzA1OTU1NTE2
ZjcxNzFmZWE2ZDQyMi4uNjllNmI4M2JjZDI0N2EwYTNlOTdkNGI0MDZhMWQ1OTRkMjYyZjRhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNz
TGF1bmNoZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9l
ZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcApAQCAtMjcsOCArMjcsOCBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3Rr
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5j
aGVyR3RrLmNwcAppbmRleCAzMTY5MTgwNTkxMThmODRiZjg5OWU0YWQwMWI5ZmVjMTUyYTQ1M2Mw
Li5hYmU4MjA0NTdlOGVmZjc1ZWU2OTgzNTc2Y2JlMjhhNGY1N2Y4MTQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1
bmNoZXJHdGsuY3BwCkBAIC0zMywxMCArMzMsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVT
eXN0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGxvY2Fs
ZS5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dPd25QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggZDhjMTIyM2FlZWQ1MWJm
NWZmYWI5MDAwMjVlZWQyYTNiODEwYmZlOC4uNTIwMmU3YzVkYzgwMTdjMzBkZGRjZGNhZTg2ZWI2
ZTM1MjQ4M2Y3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTI5LDcgKzI5LDYgQEAKICNp
bXBvcnQgIkR5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oIgogI2ltcG9ydCAiRW52
aXJvbm1lbnRWYXJpYWJsZXMuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgot
I2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxjcnRfZXh0ZXJucy5oPgogI2lt
cG9ydCA8bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPG1hY2gvbWFjaGluZS5oPgpAQCAtNDAsMTMg
KzM5LDEyIEBACiAjaW1wb3J0IDxzeXMvc3RhdC5oPgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAj
aW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNpbXBvcnQgPHhwYy94cGMuaD4KIAotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgZG9pbmcgdGhp
cyBhbm90aGVyIHdheS4KIGV4dGVybiAiQyIga2Vybl9yZXR1cm5fdCBib290c3RyYXBfcmVnaXN0
ZXIyKG1hY2hfcG9ydF90LCBuYW1lX3QsIG1hY2hfcG9ydF90LCB1aW50NjRfdCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKaW5kZXggMDk0MGRiNGIwMDUzODA4MTdkYTkxZTllNzg4YzYwNjlhMmYyODQ0Zi4u
ZmRmNmM3OWUyNGU0ZjU0NjYwMzA1NDIzYjE3NWMxMDNlZjdlZGJmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5o
IgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAKICNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKQogI2luY2x1ZGUgIlNlY0l0ZW1TaGltUHJv
eHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkuY3BwCmluZGV4IDdhZDE3MmE0MDdiMmE2NjYzZDI3MTc2YzkzYWViMGVk
YzgyYTRhNGEuLmRhNjM3YzQxNTVmZGVlNmY4NjY1NWNlMzIwMjQ3OTMzMDU4NDI4Y2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMzcsNyArMzcsNyBAQAogI2luY2x1ZGUgIldlYlBsdWdpblNpdGVEYXRh
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQ
b3J0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5l
c3NUaW1lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1l
ci5jcHAKaW5kZXggNzY2YWUwZTIwYzI3ZWRiNDkxN2U3NmZiMTU2MjFkNjcxNGY1YmFiYi4uOTcz
OWZhM2ExMWY1NDA4YTYxMDBiMDYzOGViYjEwM2E1OTg0NmZiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcApAQCAtMjYsOCArMjYsNiBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIuaCIK
IAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0
aWMgY29uc3QgZG91YmxlIHJlc3BvbnNpdmVuZXNzVGltZW91dCA9IDM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaAppbmRleCA4ZGIyODcyZmRlYWZl
Nzk3YzlhZjRlN2VjNzEyOTE2ZTI2YjdlZWVjLi5mNzVjMGE5OThmZjQ2N2RhYzkzYmE3M2FiYzBl
MmE1NmI2YzgxNTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9u
c2l2ZW5lc3NUaW1lci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZl
bmVzc1RpbWVyLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUmVzcG9uc2l2ZW5lc3NUaW1l
cl9oCiAjZGVmaW5lIFJlc3BvbnNpdmVuZXNzVGltZXJfaAogCi0jaW5jbHVkZSA8V2ViQ29yZS9S
dW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKICAgICBSZXNwb25zaXZlbmVzc1RpbWVyOjpD
bGllbnQqIG1fY2xpZW50OwogICAgIGJvb2wgbV9pc1Jlc3BvbnNpdmU7CiAKLSAgICBXZWJDb3Jl
OjpSdW5Mb29wOjpUaW1lcjxSZXNwb25zaXZlbmVzc1RpbWVyPiBtX3RpbWVyOworICAgIFJ1bkxv
b3A6OlRpbWVyPFJlc3BvbnNpdmVuZXNzVGltZXI+IG1fdGltZXI7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVk
TGlua1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92
aWRlci5oCmluZGV4IGUwZTUzMTAyNWIxZGE3MDIzYTU4ZDIzMzE5ZGVhYzFiODQyZGM2YTkuLmMw
ZDRlYzk2MzcxMDI0ZmVmY2UxOGYyNDkzNzY2YjBjODZiYjhmODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaApAQCAtMjgsOSArMjgsOSBAQAog
CiAjaW5jbHVkZSAiVmlzaXRlZExpbmtUYWJsZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hh
c2guaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICBW
aXNpdGVkTGlua1RhYmxlIG1fdGFibGU7CiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OkxpbmtIYXNo
LCBXZWJDb3JlOjpMaW5rSGFzaEhhc2g+IG1fcGVuZGluZ1Zpc2l0ZWRMaW5rczsKLSAgICBXZWJD
b3JlOjpSdW5Mb29wOjpUaW1lcjxWaXNpdGVkTGlua1Byb3ZpZGVyPiBtX3BlbmRpbmdWaXNpdGVk
TGlua3NUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxWaXNpdGVkTGlua1Byb3ZpZGVyPiBtX3Bl
bmRpbmdWaXNpdGVkTGlua3NUaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDVlZWY1Y2Y1MmY2ZDFjZGFk
ZTkzMzU3ZjRkOTM5NjhiOGRkYjRlNDEuLmVkNjI2YWRkN2UxZWM0OTQyMzZlN2NhYWM0NDdjOTk5
YTNjMmQ2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTYw
LDExICs2MCwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKICNpbmNsdWRl
ICJXZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDBjM2NlYzBkMzM2NTZlODkwODQ4MDFiODJkYmY4NWM5
NDcyMzJmMzUuLmJlMWJkNzRkOThlZjNkMTYxZmRhMDc3NTliZTNiN2JmMTJhMmVjMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC00MSwxMCAr
NDEsMTAgQEAKICNpbmNsdWRlICJXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWRkZW5UZXJtaW5hdGlvbi5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvVVJMLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5k
ZXggMGVhMTA5YjIzNDBiOTIzODQ5NjQ3ZWYxODA4OWJhNGU4ZTZmOWYwYi4uNDRhYTY1ZjgxMzk3
MDY4YzU1OTk0N2ZhNTQ3MThmMTdmZDRhNDZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZC5oIgotI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9X
ZWJDb250ZW50UHJvY2Vzc01haW4ubW0KaW5kZXggMzY1Y2IzNjEyNTU5MDljODMxZTNmYWRkMzg1
Y2JhZDZhODcyMjU0Zi4uZjUwZGZiNzY2YjIwMWUwNzFjMWFlMzI0MzQ2YzQ4OGViNjhmZWI1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdh
Y3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NN
YWluLm1tCkBAIC0zMSwxMiArMzEsMTIgQEAKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgog
I2ltcG9ydCAiV0tCYXNlLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCi0jaW1wb3J0IDxXZWJD
b3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPG1hY2gvbWFjaF9lcnJvci5oPgogI2ltcG9ydCA8c2Vy
dmVycy9ib290c3RyYXAuaD4KICNpbXBvcnQgPHNwYXduLmg+CiAjaW1wb3J0IDxzdGRpby5oPgog
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQ
Q1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50
cnlQb2ludC5tbQppbmRleCAyMmM4ZmY1ODE4NTA2NjUwNDNkZDI5NzU5MDFjMmFkOWE0YTY3YzUy
Li5jZWU3NTFhNTA2ZDhlMTEzYWJmODQ5MWE4MDdiOTg5MWUyMzI5YTQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29u
dGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0K
QEAgLTI5LDcgKzI5LDcgQEAKICNpbXBvcnQgIldLQmFzZS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vz
cy5oIgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKLSNpbXBvcnQgPFdlYkNvcmUv
UnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCmlu
ZGV4IDdlZTJhN2VkMTNiMTIzMmRlMDBkZjkyN2ZiNmJmNmM4NDk4MTJlYjYuLjI2YzJkODEzZWUz
MGViYzE0YzIxOGFmNTIxZjE0Njk0YmZmYTg3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgK
QEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFByaW9yaXR5
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CiAKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludGVybmFsbHlGYWlsZWRM
b2FkVGltZXJGaXJlZCgpOwogICAgIAogICAgIEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyPj4gbV9pbnRlcm5hbGx5RmFpbGVkUmVzb3VyY2VMb2FkZXJzOwotICAgIFdlYkNv
cmU6OlJ1bkxvb3A6OlRpbWVyPFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcj4gbV9pbnRlcm5hbGx5
RmFpbGVkTG9hZFRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlJlc291cmNlTG9hZFNjaGVk
dWxlcj4gbV9pbnRlcm5hbGx5RmFpbGVkTG9hZFRpbWVyOwogICAgIAogICAgIEhhc2hNYXA8dW5z
aWduZWQgbG9uZywgUmVmUHRyPFdlYlJlc291cmNlTG9hZGVyPj4gbV93ZWJSZXNvdXJjZUxvYWRl
cnM7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmgKaW5kZXggZTUxNzhhZDE3NDY3
NWM1ZGMyNzhiYWI5NDc1NzEyODBmMTc0NzQ4Mi4uZmFkZTQxZGY1OGQ0Nzk4MWQzMTRjOWE4ZjQ0
YWQzMWE3MGZhZWVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaApAQCAtMjgsMTEg
KzI4LDExIEBACiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAotI2luY2x1ZGUg
PFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgogI2luY2x1ZGUgPGhl
YXAvV2Vha0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogc3RydWN0IE5QT2JqZWN0
OwogdHlwZWRlZiBzdHJ1Y3QgX05QVmFyaWFudCBOUFZhcmlhbnQ7CkBAIC05OCw3ICs5OCw3IEBA
IHByaXZhdGU6CiAgICAgSGFzaE1hcDxKU0M6OkpTT2JqZWN0KiwgTlBKU09iamVjdCo+IG1fbnBK
U09iamVjdHM7CiAgICAgSGFzaE1hcDxOUE9iamVjdCosIEpTQzo6V2VhazxKU05QT2JqZWN0Pj4g
bV9qc05QT2JqZWN0czsKICAgICBWZWN0b3I8TlBPYmplY3QqPiBtX25wT2JqZWN0c1RvRmluYWxp
emU7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8TlBSdW50aW1lT2JqZWN0TWFwPiBtX2Zp
bmFsaXphdGlvblRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPE5QUnVudGltZU9iamVjdE1hcD4g
bV9maW5hbGl6YXRpb25UaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uaAppbmRleCBiNjQ5YTIwZTA4Zjc2MDE4ZmVkMDcxYjEyNmE0ZGQxNjdjNjRk
ODJlLi4yOTE1N2YyNWM2OGU2MmRiODkzNDlkNDFjMWRhYTdhY2U2ZDRiMWVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVn
aW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uaApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5l
VHJhbnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JbnRSZWN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAK
QEAgLTMzMCw3ICszMzAsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIG1fcmVwZWF0OwogICAg
ICAgICBUaW1lckZ1bmMgbV90aW1lckZ1bmM7CiAKLSAgICAgICAgV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXI8VGltZXI+IG1fdGltZXI7CisgICAgICAgIFJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBtX3Rp
bWVyOwogICAgIH07CiAgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBzdGQ6OnVuaXF1ZV9w
dHI8VGltZXI+PiBUaW1lck1hcDsKICAgICBUaW1lck1hcCBtX3RpbWVyczsKQEAgLTM3Nyw3ICsz
NzcsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gRklYTUU6IEl0J3MgYSBiaXQgd2FzdGVmdWwgdG8g
aGF2ZSBvbmUgbnVsbCBldmVudCB0aW1lciBwZXIgcGx1Zy1pbi4KICAgICAvLyBXZSBzaG91bGQg
aW52ZXN0aWdhdGUgaGF2aW5nIG9uZSBwZXIgd2luZG93LgotICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyPE5ldHNjYXBlUGx1Z2luPiBtX251bGxFdmVudFRpbWVyOworICAgIFJ1bkxvb3A6OlRp
bWVyPE5ldHNjYXBlUGx1Z2luPiBtX251bGxFdmVudFRpbWVyOwogICAgIE5QX0NHQ29udGV4dCBt
X25wQ0dDb250ZXh0OwogI2VuZGlmCiAjZWxpZiBQTFVHSU5fQVJDSElURUNUVVJFKFdJTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZVBsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKaW5kZXggYjM1MDE4NjM1NmU0OTU2MDNmNGNl
MDJmMTk5NGU4Yjk5MzkxYzE1Ny4uYWQ4MmM3YWEzMjhmNTMxNWZhYTI4ZjFiNmRkYTI4MjdjZGIy
Y2NkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKQEAgLTI5LDEyICsyOSwx
MiBAQAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCiAjaW5jbHVkZSA8V2ViQ29y
ZS9GaWxlU3lzdGVtLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwNSw3
ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIENTdHJpbmcgbV9taW1lVHlwZTsKICAgICBDU3RyaW5n
IG1faGVhZGVyczsKIAotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2lu
U3RyZWFtPiBtX2RlbGl2ZXJ5RGF0YVRpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBl
UGx1Z2luU3RyZWFtPiBtX2RlbGl2ZXJ5RGF0YVRpbWVyOwogICAgIE93blB0cjwgVmVjdG9yPHVp
bnQ4X3Q+PiBtX2RlbGl2ZXJ5RGF0YTsKICAgICBib29sIG1fc3RvcFN0cmVhbVdoZW5Eb25lRGVs
aXZlcmluZzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuaAppbmRleCAyZDA0MzNkNTgzOTZkMTBlZDI4YjU3YjViOGNlOTk1MmYyZTE2Njk3Li44
OTFlODQ5NzZhOGFjZmVlNWM4NzdiN2U1NjZkYWQ4YzYzNjBiYzA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTM2LDkgKzM2LDkgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpblZpZXdCYXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgog
I2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIC8vIEZJ
WE1FOiBFdmVudHVhbGx5IHRoaXMgc2hvdWxkIG1vdmUgdG8gV2ViQ29yZS4KIApAQCAtMjM0LDcg
KzIzNCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBQZW5kaW5nIFVSTFJlcXVlc3RzIHRoYXQgdGhl
IHBsdWctaW4gaGFzIG1hZGUuCiAgICAgRGVxdWU8UmVmUHRyPFVSTFJlcXVlc3Q+PiBtX3BlbmRp
bmdVUkxSZXF1ZXN0czsKLSAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5WaWV3PiBt
X3BlbmRpbmdVUkxSZXF1ZXN0c1RpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpblZpZXc+
IG1fcGVuZGluZ1VSTFJlcXVlc3RzVGltZXI7CiAKICAgICAvLyBQZW5kaW5nIGZyYW1lIGxvYWRz
IHRoYXQgdGhlIHBsdWctaW4gaGFzIG1hZGUuCiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxX
ZWJGcmFtZT4sIFJlZlB0cjxVUkxSZXF1ZXN0Pj4gRnJhbWVMb2FkTWFwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWREcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oCmluZGV4IDI0MmQ5
ZGMyMjczMDM2ZDM5NTI1OWM0MGJiMzYxNDkwOGM4OGRlZDAuLjkzOTYyNmNmODE4MzVmYjZjYWEx
NzY3NDdlYTBkMDY5ZTA5OWEzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmgKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJE
cmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL1JlZ2lvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xMjQsOCArMTI0LDggQEAg
cHJpdmF0ZToKICAgICAvLyB3b24ndCBwYWludCB1bnRpbCBwYWludGluZyBoYXMgcmVzdW1lZCBh
Z2Fpbi4KICAgICBib29sIG1faXNQYWludGluZ1N1c3BlbmRlZDsKIAotICAgIFdlYkNvcmU6OlJ1
bkxvb3A6OlRpbWVyPENvb3JkaW5hdGVkRHJhd2luZ0FyZWE+IG1fZGlzcGxheVRpbWVyOwotICAg
IFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPENvb3JkaW5hdGVkRHJhd2luZ0FyZWE+IG1fZXhpdENv
bXBvc2l0aW5nVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8Q29vcmRpbmF0ZWREcmF3aW5nQXJl
YT4gbV9kaXNwbGF5VGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8Q29vcmRpbmF0ZWREcmF3aW5n
QXJlYT4gbV9leGl0Q29tcG9zaXRpbmdUaW1lcjsKIAogICAgIC8vIFRoZSBsYXllciB0cmVlIGhv
c3QgdGhhdCBoYW5kbGVzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgogICAgIFJlZlB0cjxMYXll
clRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKaW5kZXggM2U1YTg5MGFhMGJkZWViNGM4
M2E2Mzk5MDE4MDY4MDA1ZjEwYjA0MS4uMWIxM2VkMDc1ZTAwZWE3M2M2NDIwZDNlMTg4MzVhNWNh
MGYzZmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYUltcGwuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkRyYXdpbmdBcmVh
LmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9u
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKQEAg
LTEyNyw4ICsxMjcsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1BhaW50aW5nU3VzcGVuZGVk
OwogICAgIGJvb2wgbV9hbHdheXNVc2VDb21wb3NpdGluZzsKIAotICAgIFdlYkNvcmU6OlJ1bkxv
b3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9kaXNwbGF5VGltZXI7Ci0gICAgV2ViQ29yZTo6
UnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBtX2V4aXRDb21wb3NpdGluZ1RpbWVyOwor
ICAgIFJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9kaXNwbGF5VGltZXI7CisgICAg
UnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBtX2V4aXRDb21wb3NpdGluZ1RpbWVyOwog
CiAgICAgLy8gVGhlIGxheWVyIHRyZWUgaG9zdCB0aGF0IGhhbmRsZXMgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmcuCiAgICAgUmVmUHRyPExheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHAKaW5kZXggMWMxZTIxNDVhMTEzNjFjZWJlMmM5ZmI3ODE3YmI3YjEwN2U2ZTZjNC4uNzIw
MTc4N2NiNGMwMTA0ZmFkY2ZjYzNiYjczMmEwZWJiNzgyZmRjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTMz
LDggKzMzLDggQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQogI2luY2x1ZGUg
PFdlYkNvcmUvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKaW5kZXggODk2ZjEyNjc1ODE4NTU3ZTY5NTIw
YjM2YTlmYjQzMmEwN2RhNTg4OS4uNjFjNjgxOGRkNmI1ZmJjMGM1Yzk0NDM2NjlmOGY5OTY3OWRj
NzE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VP
dmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVy
bGF5LmgKQEAgLTI4LDggKzI4LDggQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1
ZGUgIldLQmFzZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKQEAgLTkwLDcgKzkwLDcgQEAgcHJp
dmF0ZToKICAgICBDbGllbnQqIG1fY2xpZW50OwogICAgIFdlYlBhZ2UqIG1fd2ViUGFnZTsKIAot
ICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBhZ2VPdmVybGF5PiBtX2ZhZGVBbmltYXRpb25U
aW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxQYWdlT3ZlcmxheT4gbV9mYWRlQW5pbWF0aW9uVGlt
ZXI7CiAgICAgZG91YmxlIG1fZmFkZUFuaW1hdGlvblN0YXJ0VGltZTsKICAgICBkb3VibGUgbV9m
YWRlQW5pbWF0aW9uRHVyYXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCBjYjBjMTUzMzQzN2IwNjZiNjlmODY1MDdkNGIyZjJkZDNi
OGFhNjY2Li5kM2ZlMDVkOGEzOWFkYmY1NTQyYTRmNWRlNjE3MjBmMzRkMDUwZjYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjUsNyAr
MTI1LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVz
cG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lz
dHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CkBAIC0xNDIsNiAr
MTQxLDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDxydW50
aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgorI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoTUhUTUwpCiAjaW5jbHVkZSA8V2ViQ29yZS9N
SFRNTEFyY2hpdmUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDg2YzUxYTMzMWI3ODdiMmE4MzQyNGExOGZjMjcxM2Q3OTZlODVhOWIuLjBkNDdi
ZjZhYjQ3YzVmZGU3NDEwNGI3NDI1MDVlZjY1NmY2MWZmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtODYyLDcgKzg2Miw3IEBAIHByaXZhdGU6
CiAgICAgU3RyaW5nIG1fcHJpbWFyeVBsdWdJblBhZ2VPcmlnaW47CiAgICAgU3RyaW5nIG1fcHJp
bWFyeVBsdWdJbk9yaWdpbjsKICAgICBTdHJpbmcgbV9wcmltYXJ5UGx1Z0luTWltZVR5cGU7Ci0g
ICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9kZXRlcm1pbmVQcmltYXJ5U25h
cHNob3R0ZWRQbHVnSW5UaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX2RldGVy
bWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblRpbWVyOwogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShNQUMpCkBAIC05MDEsOCArOTAxLDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UGFnZUJhbm5l
cj4gbV9oZWFkZXJCYW5uZXI7CiAgICAgUmVmUHRyPFBhZ2VCYW5uZXI+IG1fZm9vdGVyQmFubmVy
OwogCi0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZXRDYW5TdGFydE1l
ZGlhVGltZXI7Ci0gICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZW5kRGlk
VXBkYXRlVmlld1N0YXRlVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZXRD
YW5TdGFydE1lZGlhVGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZW5kRGlk
VXBkYXRlVmlld1N0YXRlVGltZXI7CiAgICAgYm9vbCBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5k
b3c7CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViVW5kb1N0ZXA+PiBtX3VuZG9T
dGVwTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYzA5
MGY0NDU1NTYzYTg4YmZkMWU2ODA5ODM1OGNjYjc4YWJhZDNjMi4uMzQ0NDM0N2E4YmEyNWM1MzNl
OTUyNjA1MTU2YjZmOGM2NzBmMzg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCkBAIC03NCw3ICs3NCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VIYW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTgzLDYgKzgyLDcgQEAKICNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgRU5BQkxFKE5FVFdPUktf
SU5GTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nl
c3NNYWluRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NN
YWluRWZsLmNwcAppbmRleCA1YjM0ODBkYTRmZGEzYmQzYzg0YjAxZjM3YWY1ZmVkMDNhZGQwZTAy
Li40ZDI0OWRiZDIzOGEyODIyODdmMTE3ZWI3ZWMzMzFhNmFmNDA3M2ZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCkBAIC0z
NiwxMSArMzYsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDxXZWJLaXQyL1dlYlByb2Nlc3MuaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4K
ICNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAog
I2lmZGVmIEhBVkVfRUNPUkVfWApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9n
dGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCmluZGV4IDU0YzhkZjNlMGNiY2VjNzVkNzA5MmMyYjI0
MjZhYzdmZjUxYzRlZjguLmI0ODFlZTM0ZjIzZTNhYjhhZmVlNGViYjUyYWViNTBlMDIzNzUzM2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWlu
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFp
bkd0ay5jcHAKQEAgLTMyLDEyICszMiwxMiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
UnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV2ViUHJvY2Vzcy5oPgogI2luY2x1ZGUgPGd0
ay9ndGsuaD4KICNpbmNsdWRlIDxsaWJpbnRsLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+
CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvZ29iamVjdC9HT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5o
PgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>